Yusefnejad

یوسف نژاد

Yusefnejad

یوسف نژاد

تو مطلب «ساخت اسمبلی های مدیریت شده» نحوه تولید یه اسمبلی شرح داده شد. برای این فرایند یه مثالی هم آورده شد که درنهایت فایل اجرایی program.exe برای اون تولید شد. خوب حالا ممکنه این سوال پیش بیاد که این فایل تولید شده دقیقا چیه و از چه قسمتهایی تشکیل شده؟ تو این مطلب سعی شده تا به این سوالات پاسخ داده بشه.

تو این مطلب کامپایل کد سی شارپ به کد IL با کامپایلر سی شارپ یا CSC (مخفف C# Compiler) و ساخت ماژول یا اسمبلی مدیریت شده (Managed Assembly) و ذخیره نتیجه تو یه فایل که قابلیت توزیع و انتشار داره، شرح داده میشه.

امروزه تمامی اپلیکیشن ها در نهایت از چندین «نوع» مرتبط یا غیر مرتبط با هم تشکیل شدن که ممکنه توسط افراد یا گروهها و یا شرکتهای مختلفی توسعه داده شده باشن. درضمن شرکتهای زیادی تو دنیا کتابخونه ها و کمپوننت ها و نوع های مختلفی تولید میکنن که به عنوان اجزای تشکیل دهنده محصولات شرکتهای مختلف در سرتاسر دنیا مورد استفاده قرار میگیرن. استفاده از این نوع های آماده زمان نهایی تولید محصولات نرم افزاری رو بطور قابل ملاحظه ای کاهش میده، اما ریسک هایی هم داره.

تو مطالبی که تا الان تو این سری آورده شده (1 و 2 و 3 و 4 و 5 و 6 و 7 و 8) سعی شده تا CLR و برخی مفاهیم و بخشهای مهم مرتبط با اون شناسونده بشه. تو قسمت پایانی این سری درباره ارتباط با کدهای مدیریت نشده تو CLR و اجرای اونا بحث میشه.

تا اینجا (1 و 2 و 3 و 4 و 5 و 6 و 7) مطالب نسبتا مفصلی راجع به CLR ارائه شده. تو این قسمت هم درباره یکی دیگه از قسمتهای مرتبط با CLR به نام CLS یا Common Language Specification صحبت میشه.

تو قسمتهای قبلی (1 و 2 و 3 و 4 و 5 و 6) بحث های اولیه CLR به جاهای خوبی رسید. تو این قسمت درباره دو بخش مهم دیگه پلتفرم دات نت فریمورک، یعنی FCL که مخفف عبارت Framework Class Library و CTS که مخفف Common Type System هستن، مطالبی ارائه میشه.

تو قسمتهای قبلی (1 و 2 و 3 و 4 و 5) بحث های نسبتا عمیقی راجع به بخشهای مهم CLR ارائه شد. تو این قسمت درباره یکی از ابزارهای مرتبط با فعالیت CLR، یعنی NGen.exe بحث میشه. این ابزار که به اون Native Generator یا Native Image Generator هم گفته میشه، برای تهیه کد native استفاده میشه.

تو قسمتهای قبلی (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.) که مستقیما قابل اجرا نیستن اما حاوی انواعی هستن که تو سایر اسمبلی ها استفاده میشن.

آخرین نظرات