تا %60 تخفیف خرید برای 7 نفر با صدور مدرک فقط تا
00 00 00

آموزش سی شارپ (#C) قسمت 3 : آشنایی با ساختار .NET Framework

در ادامه سری آموزشی سی شارپ، به بررسی ساختار .NET Framwork خواهیم پرداخت. مواردی که در این بخش مطرح می شوند، بیشتر جنبه تئوریک دارند، اما یادگیری مباحث به ما کمک میکنه که درک درستری از محیطی که قصد داریم با اون کار کنیم داشته باشیم. به دلیل زیاد بودن مطالب این بخش، در دو یا سه بخش ارائه خواهند شد.در این بخش مطالبی که مطرح خواهند شد به شرح زیر هستند:

  1. تاریخچه .NET Framework
  2. مروری بر ساختار کلی دات نت و سرویس های آن
  3. آشنایی با ساختار CLR و کاربرد آن
  4. نحوه کار JIT در اجرای برنامه های دات نت
  5. اجرای مدیریت شده برنامه ها و مدیریت حافظه در دات نت
  6. برخی ابزارهای کاربردی در دات نت

تاریخچه .NET Framework

افرادی که قبل از عرضه .NET Framework کار برنامه نویسی انجام داده باشند، با مفهومی به نام COM آشنایی دارند. COM یا Component Object Model تکنولوژی بود که مایکروسافت برای نوشتن برنامه های تحت ویندوز ارائه داده بود. اگه با Visual Basic نسخه 6 به قبل برنامه نوشته باشید با این تکنولوژی آشنایی دارید. COM این قابلیت رو به اجزای مختلف نرم افزار میداد که با همدیگه ارتباط داشته باشند. نوشتن کامپوننت های Re-Usable و لینک کردن بخش های مختلف نرم افزار به همدیگه از کاربرد های COM بود. زبان هایی مثل C++، Visual Basic قابلیت استفاده از COM رو فراهم می کردند. اما برنامه نویسانی که از COM استفاده می کردند مشکلاتی هم روبروشون قرار داشت.

برای مثال، مدیریت حافظه یکی از مسائلی بود که برنامه نویس ها باهاش درگیر بودند. همچنین مشکلات فایل های DLL و استفاده از این فایل ها در سیستم مقصد از دیگر مشکلات تکنولوژی COM بود که در ادامه سری مقالات به تفصیل در مورد مسائل COM و راه حل های .NET خواهیم پرداخت. در سال 1990 مایکروسافت پروژه دات نت رو برای رفع مشکلات COM استارت زد و در سال 2002 به صورت رسمی .NET رو ارائه داد. در حقیقت .NET Framework لایه ای هست که بر روی روی COM قرار گرفته و دسترسی به سرویس های ویندوز و کامپوننت های اون و راحت تر کرده. تا این لحظه نسخه های زیر از دات نت ارائه شده:

  1. نسخه 1.0 در سال 2002
  2. نسخه 1.1 در سال 2003
  3. نسخه 2.0 در سال 2005
  4. نسخه 3.0 در سال 2006
  5. نسخه 3.5 در سال 2007
  6. نسخه 4.0 در سال 2010
  7. نسخه 4.5 در سال 2012
  8. نسخه 4.5.1 در سال 2013
  9. نسخه 4.5.2 در سال 2014

نسخه مورد استفاده در این سری، نسخه آخر یعنی 4.5.2 هست که به همراه Visual Studio 2013 ارائه شده.

مروری بر ساختار کلی دات نت و سرویس های آن

.NET Framework از دو بخش اصلی تشکیل شده، کتابخانه دات نت یا .NET Framework Class Library و Common Language Runtime یا CLR.کتابخانه دات نت مجموعه ای از کلاس های آماده از پیش نوشته شده است که در تمامی زبان های مبتنی بر .NET قابل استفاده هستند.اما CLR وظیفه اجرا و مدیریت برنامه های تحت دات نت رو داره. تبدیل کدهای IL به کد ماشین، کنترل و مدیریت اجرای برنامه ها، مدیریت حافظه و کنترل و مدیریت امنیت در برنامه های دات نت از وظایف CLR هست. در حقیقت میشه گفت CLR قلب تپنده دات نت هست. برای درک بهتر ساختار دات نت به تصویر زیر توجه کنید:

وب سایت توسینسو

در ابتدای تصویر بالا زبان هایی قرار دارند که شما می توانید بوسیله آنها برنامه های خود را مبتنی بر دات بنویسید. برنامه های تحت وب، ویندوز، موبایل، سرویس های وب و ...، در مرحله بعد، کتابخانه دات نت قرار داره. این کتابخانه مجموعه ای از کدهای از پیش نوشته شده است که نوشتن کدها رو برای شما راحت تر می کنه. بعد از کتابخانه، CLR قرار داره که وظیفه تبدیل کدهای شما به زبان ماشین و اجرای برنامه ها رو به عهده داره. در پایین ترین لایه، سرویس های ویندوز قرار داره که وظیفه ارتباط با این لایه، به عهده CLR و کتابخانه دات نت هست.

آشنایی با نقش .NET Framework

همانطور که در بالا اشاره شد، دات نت از دو بخش اصلی یعنی کتابخانه دات ت و CLR تشکیل شده است. CLR پایه و مبنای دات نت می باشد. وظایف CLR رو به اختصار در بالا مطرح کردیم که در این دوره به تفصیل به بررسی سرویس های آن خواهیم پرداخت.اما کتابخانه دات نت، همانطور که اشاره شد، مجموعه ای از کدهای Reusable (کدهایی که یکبار نوشته شده و قابلیت استفاده مجدد را دارند) می باشند که در اختیار برنامه نویسان دات نت قرار گرفته اند. از این کدها می تواند در کلیه برنامه های دات نت، از برنامه های Console گرفته تا برنامه های ویندوز، وب، ارتباط با بانک های اطلاعاتی و سرویس های وب و ویندوز استفاده کرد.

اما یکی از اصطلاحات در دات نت CLS یا Common Language Specification هست. موسسه European Computer Manufacturers Assoscian یا ECMA، استانداردی رو تدوین کرده که CLS مبتنی بر این استاندارد پیاده سازی شده است. در حقیقت CLS استانداردی هست که با رعایت این استاندارد، کلیه زبان های برنامه نویسی مبتنی بر دات نت، قابلیت ارتباط با یکدیگر را خواهند داشت. برای مثال زبان های VB.NET و C# دو زبان مبتنی بر دات نت هستند. زمانی که شما کدی را با زبان C# نوشته اید، با CTS این قابلیت به شما داده میشه که بتونید از کد نوشته شده در زبان C# در زبان VB.NET نیز استفاده کنید.

کدهایی که با استاندارد CLS تطابق داشته باشند، بعد از کامپایل به یک کد میانی به نام IL ترجمه می شوند، کد IL کدی شبیه به کد Assembly هست. بعد از ایجاد کد IL توسط کامپایلر، کد IL توسط CLR به کد ماشین ترجمه شده و اجرا می شود. در حقیقت بعد از کامپایل کردن دو برنامه که یکی به زبان C# و دیگری به زبان VB.NET نوشته شده، کدی که ایجاد می شود کد IL هست.

کدی میانی که توسط کامپایلرهای مبتنی بر دات نت ایجاد می شوند Microsoft Intermediate Language یا MSIL نام دارند که به برنامه ها قابلیت برقراری ارتباط با یکدیگر را می دهد.

استاندارد دیگری که توسط ECMA تدوین شده، استاندارد CLI یا Common Language Infrastructure هست. این استاندارد یک سری خصوصیات مشترک در بین کدهای میانی ایجاد شده توسط کامپایلرها رو تعریف میکند که برای اجرای کد IL به آنها نیاز است. برای مثال سیستم نوع داده مشترک (Common Type System) یا سرویس های از قبیل Type Safety و اجرای مدیریت شده کدها از خصوصیات تدوین شده هستند. لیست زیر خلاصه ای از استاندارد های ECMA تحت دات نت می باشد:

  1. CLS یا Common Language Specification
  2. CTS یا Common Type System
  3. TS یا Type Safety
  4. IL یا Intermediate Language

در این قسمت به اولیه .NET Framework و ساختار اون پرداختیم. در بخش بعدی به بررسی سرویس ها و خصوصیات CLR، نحوه اجرای کدها در دات نت و سرویس JIT، اجرای مدیریت شده کدها و مدیریت حافظه در دات نت خواهیم پرداخت.

نویسنده : حسین احمدی

منبع : جزیره برنامه نویسی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

#آموزش_دات_نت #آموزش_زبان_سی_شارپ #آموزش_سی_شارپ #فریم_ورک_دات_نت #دوره_آموزشی_سی_شارپ #آموزش_برنامه_نویسی #زبان_برنامه_نویسی_سی_شارپ

عنوان
1 آموزش سی شارپ (#C) قسمت 1 : مقدمه رایگان
2 آموزش سی شارپ (#C) قسمت 2 : ابزارهای مورد نیاز دوره رایگان
3 آموزش سی شارپ (#C) قسمت 3 : آشنایی با ساختار .NET Framework رایگان
4 آموزش سی شارپ (#C) قسمت 4 : آشنایی با CLR و JIT و مدیریت حافظه رایگان
5 آموزش سی شارپ (#C) قسمت 5 : آشنایی با محیط Visual Studio رایگان
6 آموزش سی شارپ (#C) قسمت 6 : ساختار برنامه ها و کامپایلر سی شارپ رایگان
7 آموزش سی شارپ (#C) قسمت 7 : دستورات کنسول و متغیرها رایگان
8 آموزش سی شارپ (#C) قسمت 8 : نوع های داده اولیه رایگان
9 آموزش سی شارپ (#C) قسمت 9 : آشنایی با عملگرها رایگان
10 آموزش سی شارپ (#C) قسمت 10 : دستور if رایگان
11 آموزش سی شارپ (#C) قسمت 11 : دستور switch رایگان
12 آموزش سی شارپ (#C) قسمت 12 : حلقه ها (دستور for) رایگان
13 آموزش سی شارپ (#C) قسمت 13 : حلقه ها (دستور while و do-while) رایگان
14 آموزش سی شارپ (#C) قسمت 14 : آرایه ها و دستور foreach رایگان
15 آموزش سی شارپ (#C) قسمت 15 : آشنایی با متدها یک رایگان
16 آموزش سی شارپ (#C) قسمت 16 : آشنایی با متدها دو رایگان
زمان و قیمت کل 0″ 0
7 نظر
محمد نصیری

نویسنده و منبع مقاله کجاست دوست من ؟

حسین احمدی

اضافه شد دوست من :دی

فرهاد خانلری

Base Class Library شامل کلاس‌های پایه در دات نت فریم‌ورک می‌باشد

تمامی زبان های دات نتی نظیر #C#، VB.Net و... که تعدادشون هم کم نیست جهت اجرای برنامه های خود نیاز به بسته دات نت فریم ورک دارند.

دات نت فریم ورک درون خود دارای بخش هایی است که مدیریت برنامه شما را به عهده خواهند گرفت. مانند CLR یا Common Language Runtime که قلب اصلی دات نت فریم ورک به شمار می رود.

همچنین BCL یا Base Class Library که به کتابخانه دات نت نیز معروف است و شامل دات نت اسمبلی های و کلاس های بسیار زیاد نوشته شده توسط ماکروسافت می باشد که می توانید از وجود آن ها در برنامه استفاده کنید خیلی ها میگن BCL یه دشتی از اسمبلی های موجود هست که قبلاً مایکروسافت اونا رو نوشته و ما میتونیم بار ها و بارها تو برنامه هامون از اینا استفاده کنیم

هر زبان برنامه نویسی مبتنی بر دات نت فریم ورک پس از کمپایل شدن توسط کمپایلر مخصوص به خود به زبان واسطی به نام IL یا Intermediate Language تبدیل می شود.

پس از این مرحله و یک سری مراحل دیگه کد شما به باینری تبدیل شده و روی سیستم مقصد اجرا می گردد.

فرهاد خانلری

ممنونم دوست خوبم

مهندس احمدی عزیز

فقط خواهشا ادامه دار باشه این آموزش ها و ضمن اینکه اگه ممکنه لینک آموزش های قبلی رو در هر آموزش جدید اضافه کنید.

حسین احمدی

ممنون فرهاد جان، یک ماه قبل خیلی درگیر بودم، به همین خاطر وقفه افتاد. به امید خدا آموزش ها با ریتم منظم تو سایت قرار داده میشه.

بابک رستمی

سلام دوست عزیز. 

یه اشتباه خیلی ریز تو تایپ Infrastructure .

تو متن اصلی مقاله استاندارد CLI یا Common Language Infrastructre نوشته شده است.

مورد دیگه هم که دیده شد زمان تبدیل این مقاله به فرمت pdf تصاویر حذف شده و گزینه های اشتراک گذاری رو متن درج می شوند که مانع مشاهده متن مقاله می شود.

ممنون از مقالات خوبتون

حسین احمدی

سلام، وقت بخیر

ممنون از نکته ای که گفتید، داخل متن اصلاح شد. در مورد خروجی PDF هم حتماً بررسی و رفع میشه.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر