[ بستن ]

سیستم وبلاگ پارسی باکسسیستم مدیریت فروش هاست و دامینسایت شخصی محسن داوری برنامه نویس PHPهماهنگی با موتورهای جستجو , رنکینگ گوگل , google pagerank , page rank , seo , search

  انجمن اینترنتی برنامه نویسان  
  برنامه نویسی و رفع اشکال و نرم افزارها  
 
منوی اصلی

بخش ها

نویسندگان

آرشیو

آمار
بازدید امروز : 82
بازدید دیروز : 106 ‍
بازدید این ماه : 188
بازدید امسال : 17860
بازدید کل : 28924
تعداد پست ها : 89
تعداد لینک های لینکستان : 26
تعداد نظر سنجی های وبلاگ : 2

 
سخن روز


دات نت برای شروع .. قسمت اول

دات نت برای شروع
از زمان معرفی دات نت  توسط مایکروسافت در تابستان 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 را بصورت زیر فعال می نمائیم :

csc hello.cs

بمنظور مقایسه اولیه زبان 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 و یا ویژوال بیسیک دات نت را مشاهده نمائیم به شباهت بسیار زیاد موجود بین آنها بیشتر واقف خواهیم شد .

ادامه دارد ....


نوشته شده توسط محمد حسن بهجت | نظرات [1] | لینک به این مطلب |


 
تابلوی گفتمان



نظرسنجی

پیوندها

لوگو هـــا

خبرنامه ها





خبرنامه ویژه





خبرنامه عمومی


لوگو دوستان

پیوندهای روزانه

 
Copy Right 2007 ParsiBox.com ( Designed By ParsiBox Master Design )