معرفی CLR در Net framework.

پنجشنبه 30 اردیبهشت 1395

در این مقاله با مفهوم CLR آشنا می شویم و وظایف آن را بررسی می کنیم. همچنین با سرویس هایی که CLR در اختیار کاربران قرار می دهد آشنا می شویم.

معرفی CLR در Net framework.

واژه ی CLR کوتاه شده ی عبارت Common Language Runtime است که بیانگر یک محیط اجرایی برای برنامه ها است و به عنوان یک لایه بین سیستم عامل و برنامه های نوشته شده با زبان های تحت .Net عمل می کند و از Common Language Specification (CLS) نیز پشتیبانی می کند. کار اصلی Common Language Runtime (CLR) تبدیل کدهای مدیریت شده به کدهای خام و اصلی و سپس اجرای برنامه است . ویژگی کامپایل just in time (JIT) زبان سطح متوسط (MSIL) را در زمان اجرا و در صورت نیاز به کدهای خام و اصلی تبدیل می کند.

وقتی برنامه .Net به حالت اجرا می رود، control به سیستم عامل می رود و سپس سیستم عامل یک فرآیند برای بارگذاری CLR ایجاد می کند.

برنامه ای که توسط سیستم عامل برای بارگذاری CLR استفاده می شود، runtime host نامیده می شود. نوع این برنامه می تواند بر اساس ویندوز و یا وب بودن برنامه اصلی ، تغییر کند.

runtime host برای برنامه های مبتنی بر دسکتاپ تابع API ای به نام CorbinToRuntime است. runtime host برای برنامه های مبتنی بر وب ، asp.net worker process است .( aspnet-wp.exe)

موتور CLR runtime با مجموعه ای از سرویس ها در دسترس کاربران قرار می گیرد. این سرویس ها به صورت زیر طبقه بندی شده اند:

سرویس های CLR

Assembly Resolver

Assembly Loader

Type Checker

COM marshaller

Debug Manager

Thread Support

IL to Native compiler

Exception Manager

Garbage Collector

مرور کوتاهی بر این سرویس ها خواهیم داشت:

Assembly Resolver

Assembly Resolver قسمت manifest برنامه را می خواند، و assembly های اختصاصی و مشترک مورد نیاز برای اجرای  برنامه را مشخص می کند، سپس این درخواست را به assembly loader می فرستد.

Assembly Loader

Assembly Loader ، فایل assembly را بر اساس دستورالعمل های assembly resolver  در قسمت پردازش برنامه بارگذاری می کند.

Type Checker

Type Checker انواع مختلف ورودی های برنامه را با استانداردهای CLS و یا CTS  که تحت پوشش CLR هستند، مورد ارزیابی قرار می دهد. این کار امنیت انواع داده ها را تامین می کند.

COM marshaller

COM marshaller ارتباط با بخش COM  را فراهم می کند.

Debug Manager

سرویس Debug Manager  ابزار debugger را برای اجرای خط به خط برنامه فراهم می کند، برنامه نویس می تواند تغییرات مورد نظرش را در برنامه اعمال کند.

 Thread Support

Thread Support بیش از یک مسیر اجرا را در فرآیند برنامه مدیریت می کند. این قابلیت، پشتیبانی از multithreading را نیز فراهم می کند.

IL to Native compiler

IL to Native compiler که JIT compiler(just-in-time compiler) نیز نامیده می شود، کد IL را به کدهای خالص و خام سیستم عامل تبدیل می کند.

Exception Manager

Exception Manager مدیریت exception ها را در برنامه بر عهده دارد و این کار را با به کارگیری قسمت catch انجام می دهد. اگر هیج گونه قسمت catch ای در برنامه موجود نباشد، Exception Manager برنامه را از حالت اجرا خارج می کند.

Garbage Collector 

Garbage Collector  حافظه را از شی های بلا استفاده خالی می کند و باعث مدیریت خودکار حافظه می شود.

آموزش سی شارپ

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • C#.net
  • 5k بازدید
  • 3 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید