TAHA
09-29-2009, 06:56 AM
Assembly?
برنامه های نوشته شده برای ویندوز معمولاً به یک یا چند فایل DLL(Dynamic Link Library) وابستگی دارند.
اغلب این DLL ها بصورت Component هایی هستند که بصورت مشترک توسط برنامه های دیگر نیز استفاده میشوند و گاهی اوقات این DLL ها دارای کلاسهای COM(Componet Object Model) نیز میباشند که در رجیستری ویندوز ثبت شده اند
متاسفانه وقتی این Componet ها آپدیت میشوند یا اینکه بصورت درست نصب نمی شوند اجرای برنامه هایی که وابسته به این Componet ها میباشند ممکن است دچار شکست شوند.(این حالت DLL Hell نامیده میشود)
این مشکل با استفاده از .NET Assembly رفع میگردد.ماجولهای دارای توصیف داخلی(self-describing modules)
که جایگزین فایلهای DLL و EXE در سیستم Win32 میشود.
همانطور که میدانید کدهای .NET بعد از کامپایل شدن به زبان ماشین تبدیل نمیشوند(native code) بلکه خروجی آن یک Assembly خواهد بود که فایل Assembly از دو بخش تشکیل شده است.(IL Code و Metadata )
برنامه های نوشته شده برای ویندوز معمولاً به یک یا چند فایل DLL(Dynamic Link Library) وابستگی دارند.
اغلب این DLL ها بصورت Component هایی هستند که بصورت مشترک توسط برنامه های دیگر نیز استفاده میشوند و گاهی اوقات این DLL ها دارای کلاسهای COM(Componet Object Model) نیز میباشند که در رجیستری ویندوز ثبت شده اند
متاسفانه وقتی این Componet ها آپدیت میشوند یا اینکه بصورت درست نصب نمی شوند اجرای برنامه هایی که وابسته به این Componet ها میباشند ممکن است دچار شکست شوند.(این حالت DLL Hell نامیده میشود)
این مشکل با استفاده از .NET Assembly رفع میگردد.ماجولهای دارای توصیف داخلی(self-describing modules)
که جایگزین فایلهای DLL و EXE در سیستم Win32 میشود.
همانطور که میدانید کدهای .NET بعد از کامپایل شدن به زبان ماشین تبدیل نمیشوند(native code) بلکه خروجی آن یک Assembly خواهد بود که فایل Assembly از دو بخش تشکیل شده است.(IL Code و Metadata )