معرفی CLR در Net framework.
پنجشنبه 30 اردیبهشت 1395در این مقاله با مفهوم CLR آشنا می شویم و وظایف آن را بررسی می کنیم. همچنین با سرویس هایی که CLR در اختیار کاربران قرار می دهد آشنا می شویم.
واژه ی 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 حافظه را از شی های بلا استفاده خالی می کند و باعث مدیریت خودکار حافظه می شود.
- C#.net
- 5k بازدید
- 3 تشکر