[ بستن ]

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

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

بخش ها

نویسندگان

آرشیو

آمار
بازدید امروز : 71
بازدید دیروز : 48 ‍
بازدید این ماه : 1154
بازدید امسال : 13717
بازدید کل : 24781
تعداد پست ها : 87
تعداد لینک های لینکستان : 26
تعداد نظر سنجی های وبلاگ : 2

 
سخن روز
سلام دوستان از امروز برای خواندن مطالب این وب سایت می توانید در خبرنامه ویژه ما عضو شوید تا رمز مطالب برای شما ارسال شود. هنگام عضویت در خبرنامه ویژه به جای اسم نام و استان خود را ( محمد حسن بهجت (یزد)) نوشته و بجای ایمیل هم ایمیل یاهو خود را وارد کنید. بقیه دوستان عضو هم آی دی یاهو ما را اد کنند. کلیه دوستان می توانند مقالات و نوشته های خود را در رابطه با علوم کامپیوتری به ایمیل وب سایت ارسال نمایند تا در وب سایت برای نمایش عموم گذاشته شود... خواهشمند است در پایان مقالات خود نام و نام خانوادگی و استان و رشته تحصیلی و سن خود را ذکر نمائید.به مقالات برتر مبلغ ای اهدا خواهد شد. با تشکر _ مدیریت سایت محمد حسن بهجت شماره ارسال مسیج : 09133522892


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

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