روند اجرای کدها در دات نت، کمی پیچیده ولی در عین حال، بسیار کارامد است. زیرا طراحی این قسمت توسط شرکت مایکروسافت طوری انجام شده که اجرای کدها به بهینه ترین شکل ممکن انجام شود. همانطور که در قسمت قبلی گفتیم، سرویسی که وظیفه اجرای کدها در دات نت را دارد، کامپایلر JIT یا Just-In-Time می باشد. در زیر به صورت قدم به قدم به تشریح روند کامپایل و اجرای کدها، از زمان کامپایل توسط کامپایلر زبان برنامه نویسی تا زمان اجرای کد توسط JIT می پردازیم:

۱٫در قدم اول شما کد مورد نظر خود را با زبان برنامه نویسی مورد نظرتان مانند سی شارپ می نویسید.
۲٫در ادامه، با کمک کامپایلر زبان مورد نظر، کدی که شما نوشتید به زبان IL ترجمه شده و داخل یک فایل به نام Assembly  قرار داده می شوند. Assembly ها فایل هایی هستند که بعد از کامپایل کدها توسط کامپایلر ایجاد می شوند. Assembly ها شامل کد IL برنامه، Metadata ها که اطلاعاتی در مورد کد نوشته شده توسط شما در اختیار CLR قرار می دهد و Assembly Manifest که اطلاعات اولیه در مورد اسمبلی مانند نسخه و … می باشند. (در مورد Metadata ها Manifest در بخش Reflection به تفضیل صحبت خواهیم کرد)
۳٫بعد از ایجاد Assembly توسط کامپایلر، با اجرای برنامه، CLR وارد صحنه می شود. بدین صورت که ابتدا توسط سرویس Class Loader که در بخش قبلی در مورد آن توضیح دادیم، اطلاعت اولیه مورد نیاز جهت اجرای کد مانند کد IL و Metadata را داخل حافظه بارگذاری شده، و سپس کد بارگذاری شده توسط Class Loader توسط JIT به کد ماشین تبدیل شده و اجرا می شود.
نکته ۱: هر اسمبلی دات نت برای اجرا نیاز به یک نقطه شروع یا Entiry Point دارد که Class Loader در ابتدا این بخش، یعنی Entry Point را در حافظه بارگذاری کرده و JIT آن را اجرا می کند.
نکته ۲: برنامه های نوشته شده توسط دات نت، می توانند شامل چندین هزار خط و بخش مجزا باشند، از مزیت های JIT این است که برای اجرای برنامه ها، کل کدها را یکجا به کد ماشین تبدیل نمی کند، بلکه تنها بخش مورد نیاز برای اجرا توسط Class Loader در حافظه بارگذاری شده و توسط JIT اجرا می شود. با این کار سرعت باگذاری اولیه برنامه های دات نت بسیار بالا می رود.

اما MCE یا Managed Code Execution دقیقا” به چه معناست؟ همانطور که گفتیم، CLR پروسه ای برای اجرای کدها دارد که به شرح زیر می باشد:

۱٫بارگذاری کد IL و Meta Data های مربوطه
۲٫تبدیل کد IL به کد Native و اجرای آن
۳٫کنترل و مدیریت حافظه در زمان اجرای برنامه
۴٫اعمال Type Safety
۵٫کنترل امنیت در اجرای برنامه ها
۶٫مدیریت Exception ها
پروسه ایی در بالا برای اجرای کدها در دات نت ذکر شد به MCE یا همون Managed Code Execution شناخته میشه. البته مطالب در مورد این موضوع بسیار است که به دلیل تخصصی بودن مطالب، در بخش پیشرفته آموزش سی شارپ به تفصیل به موضوعات مربوط به CLR و اجرای کدها خواهیم پرداخت.