|
دات نت برای شروع از زمان معرفی دات نت توسط مایکروسافت در تابستان 2000 ، تعداد زیادی از علاقه مندان به دنیای گسترده کامپیوتر خصوصا" طراحی و پیاد ه سازی نرم افزار، همواره با این سوال مواجه بوده و هستند که دات نت چیست و استفاده از آن چه دستاوردهائی را برای استفاده کنندگان بدنبال خواهد داشت ؟ اجازه دهید تعریف دات نت را عینا" از خود مایکروسافت نقل و قول نمائیم :" دات نت ، پلات فرم مایکروسافت برای سرویس های وب XML است " . بمنظور شناخت تمامی ابعاد دات نت لازم است به موارد زیر نیز توجه گردد : - دات نت ، پلات فرمی جدید بمنظور پیاده سازی و بکارگیری برنامه های مدیریت یافته ، شی گراء و پیشرفته است .
- بمنظور پیاده سازی برنامه های دات نت می توان از زبان های برنامه نویسی متفاوتی استفاده کرد (کد تولید شده توسط کمپایلر ، Runtim دات نت خواهد بود ) .
- دات نت ، کتابخانه کلاس گسترده ای را ارائه می نماید.
- دات نت ، روشی جدید بمنظور پیاده سازی برنامه تحت ویندوز ( Desktop application ) را با استفاده از کلاس های فرم های ویندوز ، ارائه می نماید .
- دا ت نت، امکان تشریح خودکار عناصر نرم افزاری را ارائه و حمایت می نماید .
دات نت ، امکاناتی نظیر : ارتباط بین زبان ها ، عناصر مستقل از زبان برنامه نویسی با قابلیت استفاده مجدد و توارث در بین زبان ها را ارائه می نماید . - دات نت ، روش جدیدی برای پیاده سازی برنامه های مبتنی بر مرورگر ( برنامه های وب ) را با استفاده از کلاس های ASP.NET ، ارائه می نماید.
- کلاس های ADO.NET مربوط به دات نت ، یک معماری جدید غیر متصل برای دستیابی به داده ه از طریق اینترنت را ارائه می نما یند .
- دات نت ، امکان ایجاد سرویس های وب XML مستقل از پلات فرم را با استفاده از استانداردهائی نظیر :
SOAP)Simple Object Access Protocol) و WSDL)Web Service Description Langauge ) ارائه می نماید . دات نت، یک معماری جدید برای پیاده سازی و بکارگیری اشیاء راه دور را ارائه می نماید . - دات نت ، تکنولوژی ها ی متعددی از ویندوز را حمایت می نماید.
بنظر حکایت دات نت همچنان ادامه و ما با واقعیتی بسیار بزرگ و توانمند روبر هستیم . برای شرکت مایکروسافت مهمترین تحول پس از عرضه ویندوز ، معرفی دات نت است . پیاده کنندگان نرم افزاری که تمایل به استفاده از پلات فرم فوق را دارند ، می بایست بسرعت با چارچوب و مفاهیم اولیه آن آشنا شده تا زمینه استفاده معقول و منطقی از آن فراهم گردد. پیاده سازی در دات نت برای پیاده کنندگان نرم افزار تحت ویندوز ، دات نت امکانات متعددی را از ویژوال ++ C تا ویژوال بیسیک ارائه می نماید .دات نت ،مستقل از نوع زبان برنامه نویسی بوده و در این راستا کمپایلرهای متعددی برای چندین زبان طراحی و پیاده سازی شده و تمهیدات لازم درخصوص طراحی و پیاده سازی کمپایلرهای دیگر نیز انجام شده است . در حال حاضر از زبان های C#, Visual Basic .NET, JScript .NET, COBOL, Perl, Python, Eiffel, APL ، می توان استفاده کرد. دات نت از زبان های فوق مستقیما" حمایت نمی نماید . در حقیقت ، دات نت صرفا" قادر به درک یک زبان بیشتر نیست . زبان فوق ، زبان میانی مایکروسافت ( Microsoft Intermediate Languge :IL ) نامیده می شود.
یک پلات فرم مستقل از زبان از یک کمپایلر اختصاصی هر زبان، بمنظور ترجمه کدهای نوشته شده به IL ، استفاده می گردد.خروجی فرآیند ترجمه ، شامل IL و متا دیتا است .IL ، را می توان بمنزله یک زبان اسمبلی برای یک پردازنده مجازی stack-based دات نت تصور نمود . از این زاویه ، عملکرد IL ، مشابه کدهای P تولیده شده در نسخه های اولیه ویژوال بیسیک و یا بایت کدهای منتشر شده توسط یک کمپایلر جاوا ، است . ( IL ، قبل از اجراء بطور کامل ترجمه خواهد شد) . IL ، برای یک زبان خاص طراحی نشده است . عبارات IL ، نوع های متداول به اشتراک گذاشته شده را که توسط تمامی زبانهای دات نت ،استفاده می گردد ، پردازش می نمایند . سیستم نوع فوق ، CTS ) Common Type System) ، نامیده می شود. یک نوع دات نت، چیزی بمراتب بیشتر از یک نوع داده است . نوع های دات نت ، عموما" توسط کلاس هائی شامل کد و اعضاء داده تعریف می گردند. در زمان اجراء ، CLR)Common Language Runtime) ، مسئولیت استقرار یک برنامه دات نت در حافظه و اجرای آن را برعهده خواهد داشت .بمنظور نیل به هدف فوق ، CLR از تکنیکی با نام JIT) Just-In-Time) بمنظور ترجمه IL به کد مختص و وابسته به یک ماشین استفاده می نماید . کد دات نت ،همواره ترجمه و هرگز تفسیر نمی گردد ، بنابراین دات نت از یک ماشین مجازی بمنظور اجراء برنامه استفاده نکرده و در مقابل کد IL برای هر متد براساس کمپایلر JIT در اولین فراخوانی ترجمه خواهد شد. در مرتبه بعد که یک متد صدا زده می شود ، کد ترجمه شده توسط JIT ، اجراء خواهد شد . 
ماحصل فرآیند ترجمه ، تولید یک فایل اجرائی ویندوز با فرمت PE)Portable Executable) ، است .در رابطه با فایل فوق ، ذکر دونکته ضروری است : اول اینکه ، CLR از زبان استفاده شده برای تولید برنامه و یا عنصر مورد نظر آگاهی نداشته و صرفا" به کدهای IL توجه خواهد داشت .ثانیا" ، در تئوری استفاده ازکمپایلر JIT تمام عملیات مورد نیاز بمنظور استفاده از پتانسیل های دات نت است . دات نت و کد مدیریت یافته ( اداره شده ) نحوه اجراء برنامه های دات نت تابع مدلی است که در شکل فوق ، نشان داده شده است . کد تولید شده که مقصد آن CLR فریمورک دات نت باشد را برنامه های مدیریت یافته ( managed applications ) می گویند. در مقابل،برنامه های ویندوز غیر از دات نت با نام برنامه های غیرمدیریت یافته ( unmanaged applications ) از آنان یاد می گردد. مایکروسافت بر این مسئله تاکید نموده است که در حال حاضر و طی سالیان آتی نیاز به این نوع برنامه ها وجود داشته( برنامه های غیرمدیریت یافته ) و تمهیدات لازم در خصوص ارتباط بین آنها اندیشیده شده است. متداولترین نیاز در این رابطه، همزیستی برنامه های دات نت در کنار عناصر COM است . بدین منظورمایکروسافت ، امکان فعالیت و کار برنامه های دات نت را با عناصر غیرمدیریت یافته COM ، فراهم نموده است . در این راستا می توان یک عنصر دات نت را بعنوان یک شی COM ریجستر کرد. در رویکردی مشابه ، دات نت امکان دستیابی به Win32 API برای برنامه های دات نت را فراهم تا از این طریق و در صورت تمایل و ضرورت ، عناصر مدیریت یافته قادر به فراخوانی توابع غیر مدیریت یافته موجود در یک DLL)Dynamic Link Library) ، باشند . CLR ، علاوه بر اینکه امکان ترجمه کدهای IL را به کد مختص یک ماشین فراهم می نماید ، عملیات مدیریتی لازم در خصوص برنامه ها را نیز انجام خواهد داد. استقرار یک برنامه در حافظه ، بررسی صحت کد ، حفاظت برنامه ها از یکدیگر ، تاکید بر مسائل امنیتی ، ارائه سرویس های اشکال زدائی ، نمونه هائی از خدمات ارائه شده توسط CLR می باشند . مدیریت کد توسط CLR ، یک لایه اضافه را ارائه و باعث جداسازی برنامه ها از سیستم عامل می گردد . در گذشته سرویس های ارائه شده توسط لایه فوق در خود برنامه و با استفاده از امکانات ارائه شده سیستم عامل ارائه می گردید. متا دیتا و ضرورت انتشار و همراهی آن با کد IL یکی از جنبه های کلیدی دات نت است . برای افرادیکه با COM و CORBA آشنائی دارند ، متا دیتا بمنزله شکل خاصی از یک IDL)Interface Definition Language) بوده که بصورت اتوماتیک توسط کمپایلر زبان مربوطه تولید می گردد. متادیتا مسئول تشریح نوع ها ، شامل فیلدهای مربوطه ، خصلت ها ، امضاء( تائید) متد بوده و عملیات حمایتی لازم را در این خصوص ارائه می نماید. با تولید اتوماتیک این داده در زمان ترجمه ، عناصر دات نت بصورت خود تشریح شده و نیازمند سایر اطلاعات مورد نیاز برای استفاده از عناصر دات نت نوشته شده با زبانهای برنامه نویسی متفاوت بمنظور ارتباط یین آنها وجود نخواهد داشت . اولین برنامه دات نت برنامه زیر ، یک برنامه خط دستوری نوشته شده با زبان #C بوده که به کاربر یک پیام را نمایش می دهد . برنامه نمونه دات نت نوشته شده با C# | // file : hello.cs // compile : csc hello.cs using System; class Hello { public static void Main() { Console.WriteLine("Hello from C#"); } } |
هر برنامه #C، می بایست شامل حداقل یک کلاس باشد . در مثال فوق، کلاس مورد نظر Hello بوده و متد Main نقطه ورود برنامه و محلی است که از آنجا برنامه آغاز می گردد. بمنظور نمایش پیام دلخواه از متد WriteLine کلاس Console استفاده شده است.( کلاس فوق در namespace با نام System وجود داشته و بعنوان بخشی از کتابخانه کلاس فریمورک دات نت محسوب می گردد). در ابتدای برنامه تمهیدات لازم در خصوص تعریف System namespace اندیشیده شده است ( using System ).بدین ترتیب امکان استفاده از namespace فوق ، در طول برنامه وجود داشته و می توان از کلاس های موجود در namespace فوق ، استفاده کرد.مثال فوق ، نحوه استفاده از کتابخانه کلاس فریمورک دات نت ( یک مخزن عظیم از کلاس های مفید، قابل استفاده در تمامی برنامه های دات نت ) را نشان می دهد. کلاس های فوق ، بر اساس نوع عملکرد گروه بندی و در namespace ها ، سازماندهی شده اند. بمنظور ترجمه برنامه فوق ، به یک نسخه از فایل NET SDK و یا ویژوال استودیو دات نت نیاز خواهد بود. برای ترجمه و اجراء مثال فوق ، از طریق خط دستور،کمپایلر # C را بصورت زیر فعال می نمائیم : بمنظور مقایسه اولیه زبان C# و VB.NET ، کد مثال فوق را با ویژوال بیسیک دات نت ، بازنویسی می نمائیم . برنامه نمونه دات نت نوشته شده با VB.NET | ' file : hello.vb ' compile : vbc hello.vb Imports System module Hello sub main() Console.WriteLine("Hello from VB.NET") end sub end module |
همانگونه که مشاهده می شود ، نسخه ویژوال بیسیک دات نت مثال فوق، شباهت زیادی با نسخه نوشته شده #C دارد. برنامه ویژوال بیسیک دات نت نیز از کلاس Console مربوط به System namespace استفاده می نماید. کتابخانه کلاس فریمورک دات نت بخشی از پلات فرم دات نت بوده و بمنظور استفاده در یک زبان خاص ایجاد نشده است . در حالت کلی تفاوت های اندکی بین # C و ویژوال بیسیک دات نت وجود داشته که عمدتا" به نوع گرامر برمی گردد . برنامه نویسان # C و ویژوال بیسیک دات نت از کلاس های مشابه فریمورک استفاده و با جنبه ها و مفاهیم مشترکی در رابطه با دات نت نظیر : namespace ، کلاس ها ، CLR سروکار دارند . برنامه های نوشته شده توسط هر یک از زبانهای فوق پس از ترجمه به IL تبدیل خواهد شد . در صورتیکه کد تولید شده IL هر یک از برنامه های نوشته شده با #C و یا ویژوال بیسیک دات نت را مشاهده نمائیم به شباهت بسیار زیاد موجود بین آنها بیشتر واقف خواهیم شد . ادامه دارد ....
|