تو قسمتهای قبلی (1 و 2 و 3 و 4) درباره قسمتهای مختلف پلتفرم دات نت که در اتباط با CLR هستن بحث شد. تو این قسمت بیشتر راجع به کدهای IL و فرایند بررسی و تایید اون تو CLR بحث میشه.
ساختار زبان IL برپایه stack (پشته) طراحی شده. stack رو میشه به عنوان بخشی خاص از حافظه RAM سیستم تصور کرد. اینکه این زبان stack-based هست به این معنیه که دستورالعملهای اون عملگرهای مورد استفاده رو برای اجرا به stack انتقال میدن و نتایج بدست اومده حاصل از اجرای این دستورات رو هم از همین stack میخونن.
در قسمتهای قبلی (1 و 2 و 3) درباره اسمبلی و کامپایل اون و همچنین بارگذاری CLR بحث شد. تو این قسمت درباره اجرای یه اسمبلی توسط CLR بحث میشه.
همونطور که قبلا هم اشاره شد، اسمبلی های مدیریت شده حاوی متادیتا و کد IL هستن. IL یک زبان سطح ماشین مستقل از معماری پردازنده هست که توسط مایکروسافت پس از ماهها تحقیق و بررسی و مشورت و همکاری با چندین شرکت تجاری یا آکادمیک تولیدکننده زبانهای برنامه نویسی و کامپایلر تولید شده.
در قسمتهای قبل (1 و 2) پس از مقدمه ای خلاصه وار، درباره ماژول و اسمبلی و تولیدشون بحث شد. تو این قسمت بیشتر درباره CLR و نحوه بارگذاری و اجرای اون بحث میشه.
اسمبلی ها در دنیای دات نت به دو نوع کلی تقسیم میشن:
- اسمبلی های اجرایی (با پسوند exe.) که به صورت مستقیم قابل اجرا هستن. این نوع اسمبلی ها یک ورودی خاص تو متادیتا برای معرفی متد اصلی یا Main دارن.
- اسمبلی های کتابخونه ای (با پسوند dll.) که مستقیما قابل اجرا نیستن اما حاوی انواعی هستن که تو سایر اسمبلی ها استفاده میشن.
در ادامه قسمت قبل، مفهوم اسمبلی و نحوه تولید اون در دات نت شرح داده میشه.
در قسمت قبل توضیحاتی راجع به نحوه تولید ماژولهای مدیریت شده توسط کامپایلرها داده شد. اما باید توجه داشت که در زمان اجرا، CLR با این ماژولها به صورت مستقیم سروکار نداره. چیزی که برای CLR معتبره مفهومیه با نام «اسمبلی». شاید با اسمبلی به عنوان یک زبان برنامه نویسی سطح پایین آشنا باشین، اما در دنیای دات نت کاربرد اسمبلی کاملا متفاوته.