همانطور که در بخش قبلی خدمت دوستان گفتیم، CLR قلب تپنده دات نت بوده و اکثر وظایف زمان اجرای برنامه های دات نت به عهده CLR می باشد. در حقیقت، برای اجرای برنامه های مبتنی بر دات نت، حتما” باید نسخه مربوطه .NET Framework بر روی سیستم مقصد نصب شده باشد. در این بخش قصد داریم تا برخی از سرویس های CLR را خدمت دوستان معرفی کرده و در مورد دو سرویس، یعنی JIT و GC به تفصیل صحبت کنیم. در تصویر زیر نمای کلی از سرویس های CLR را مشاهده می کنید:
سرویس های CLR
Class Loader: این سرویس وظیفه بارگذاری کلاس ها در زمان اجرا در محیط CLR را به عهده دارد.
IL to Native: در قسمت قبل گفتیم که کدهای نوشته شده در زبان های مبتنی بر دات نت، بعد از کامپایل به یک زبان میانی به نام IL تبدیل می شوند، این سرویس وظیفه تبدیل کدهای IL به کد ماشین جهت اجرای برنامه را به عهده دارد. در این بخش به تفصیل به معرفی این سرویس می پردازیم.
Code Manager: این سرویس وظیفه مدیریت کدها در زمان اجرا را به عهده دارد.
Garbage Collector: با کمک این سرویس، CLR کار مدیریت حافظه را انجام می دهد، پاک سازی حافظه از اشیاء بلااستفاده از وظایف GC می باشد. در این بخش به تفصیل به معرفی این سرویس می پردازیم.
Debug Engine: یکی از امکانات مورد نیاز برنامه نویسان، قابلیت خطا یابی برنامه ها می باشد که این سرویس، قابلیت خطایابی یا همان Debugging را به برنامه نویسان می دهد.
Type Checker: یکی از ویژگی های دات نت، Type Safety می باشد، بدین معنی که تمام Data Type ها یا نوع های داده باید مشخص باشند. برای مثال شما در دات نت نمی توانید در یک متغیر از نوع عددی، رشته ای را ذخیره کنید یا باالعکس، این سرویس وظیفه کنترل نوع های داده را به عهده دارد!
Security Engine: یکی دیگر از سرویس های CLR می باشد که وظیفه امنیت اجرای کدها در محیط دات نت را به عهده دارد. در مورد این سرویس و امنیت در دات نت به تفصیل در فصل های آتی صحبت خواهیم کرد.
Exception Manager: هنگامی که در برنامه های مبتنی بر دات نت، خطایی اتفاق می افتد، CLR یک استثنا یا Exception برای آن خطا ایجاد می کند، وظیفه کنترل و مدیریت استثناها به عهده این سرویس می باشد.
COM Marshaler: یکی از مزایای دات نت، قابلیت ارتباط با اجزای COM که در بخش قبلی در مورد آن صحبت کردیم می باشد، این سرویس وظیفه انتقال اطلاعات بین برنامه های دات نت و اجزای COM را به عهده دارد.
Thread Support: یکی از ویژگی های برنامه های امروزی، قابلیت Multi-Threading جهت همزمانی انجام وظایف و عملیات ها می باشد که باعث بالارفتن کارایی برنامه می شود، این سرویس وظیفه مدیریت اجرای کدها به صورت Multi-Thread را به عهده دارد.
Base Class Library: امکان دسترسی به کتابخانه پایه دات نت را به برنامه ها می دهد. در مورد BCL در قسمت قبلی توضیح دادیم.