تبلیغات
banner
banner
banner
تبلیغات
banner

فیلم های آموزشی : 36 +

تعداد کاربران : 44 +

تعداد کل مطالب : 338 +

تعداد نظرات : 33 +

حضرت محمد (ص) : طلب علم بر هر انسانی واجب است ،همانا خداوند علم آموزان را دوست دارد.

آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و شصت و هفتم


 به نام خداوند جان آفرین حکیم سخن در زبان آفرین



آموزش مقدماتی تا پیشرفته سی شارپ بخش صد و شصت و هفتم

سلام به همه کاربران وب‌سایت لندلرن

قسمت و صد و شصت و هفتم


استفاده از نامگذاري قوي

برنامه اي كه در مرحله ي قبل ايجاد كرديد هنگام كامپايل دو فايل مجزا توليد مي كند : ي

ك فايل exe و يك فايل dll كه هر دوي آنها به وسيله ي شما طراحي و نوشته شده است .

مسلماً مطمئن هستيد كه فرد ديگري برنامه ي خود را بـر اسـاس كلاسـهاي موجود در اين فايل dll نخواهد نوشت و يا فرد ديگري به جز شما كد هاي درون اين فايـل dll را تغييـر نخواهـد داد .

امـا در برنامه هاي واقعي معمولاً چنين شرايطي به وجود نمي آيد .

در برنامه هاي واقعي اغلب از dll هايي استفاده مي كنيد كه به وسيله ي يك گروه برنامه نويس نوشته شده و به صورت گسترده در بين ديگر برنامه نويسان توزيع شده اند و يا ممكن اسـت عـضو يـك گروه برنامه نويسي باشيد كه در آن افرادي روي يك dll و افراد ديگري روي يك فايل exe كار مي كنند.
براي مثال تصور كنيد كه فرد A در حال كار روي فايل InternetFavorites.dll است و فرد B نيز روي فايـل FavoritesViewer.exe كار مي كند .

فرد A احساس مي كند كـه نـام ScanFavorites نـام مناسـبي نيست و آن را به LoadFavorites تغيير مي دهد .

سپس برنامه را كامپايل كرده و فايل dll جديدي را توليد مي كنـد .

فرد B بدون اينكه اين مورد را بداند برنامه ي FavoritesViewer.exe را اجرا كرده و اين برنامه نيز سعي مي كنـد كه متد ScanFavorites را فراخواني كند .

اما اين متد ديگر وجود ندارد بنابراين برنامه با خطا مواجه شـده و متوقـف مـي .شود.
البته ممكن است بگوييد كه در اين مورد فرد A نبايد نام متد را در فايل dll تغيير مي داد و بايد متوجه مي بود كـه برنامـه هـايي وجود دارند كه اجراي آنها به متد ScanFavorites در اين كلاس بستگي دارد .

اما همـواره برنامـه نويـساني هـستند كـه بدون توجه به مشكلات ناشي از اين كار، به اين صورت عمل مي كند و موجب از كار افتادن برنامه ها مي شوند.

مشكل ديگري كه ممكن است در اين حالت رخ دهد اين است كه همزمان با فرد A ،فرد C نيز يـك كتابخانـه ي كـلاس بـه نـام InternetFavorites ايجاد كرده و بخواهد از آن استفاده كند .

اين كتابخانه ي كلاس با فايل نوشته شده به وسـيله ي فرد A تفاوت دارد و اگر هر دوي آنها براي كار روي يك كامپيوتر قرار بگيرند اين دو فايل با هـم اشـتباه خواهنـد شـد و مجـدداً برنامه ها به درستي كار نخواهند كرد.

مشكلاتي كه به اين صورت براي مديريت فايلهاي DLL رخ مي دهد از ابتداي برنامه نويسي ويندوز وجود داشته است و به كابوسي براي برنامه نويسان تبديل شده بود، به صورتي كه معمولا از آنها به عنوان “جهنم DLLهـا ” يـاد مـي كننـد .

در محـيط NET. تلاش زيادي شده است تا اين مشكلات تا حد ممكن برطرف شود. عمده ي مشكلاتي كه به اين صورت هستند، دو دليل كلي دارند :

  1. از يك فايل DLL ممكن است چندين نسخه وجود داشته باشد و هر كدام نيز ممكن است به نحوي متفاوت عمل كننـد .
    همچنين با استفاده از نام فايل نمي توان نسخه ي آن را تشخيص داد.
  2.  افراد و شركتهاي مختلف مي توانند فايلهاي DLL اي با نام مشابه ايجاد كنند.

هنگامي كه يك اسمبلي به صورت قوي نامگذاري شود اطلاعات مربوط به شماره ي نـسخه و نويـسنده ي آن اسـمبلي نيـز در آن ذخيره مي شود .

به اين ترتيب هنگام استفاده از يك اسمبلي مي توان بين نسخه ي مورد استفاده در برنامه و نسخه هاي جديدتر و يا قديمي تر تفاوت قائل شد .

همچنين به اين وسيله مي توان فايل InternetFavorites.dll كه به وسيله ي فرد A نوشته شده است را از فايل InternetFavorites.dll كه توسط فرد C نوشته شـده اسـت تـشخيص داد .

بـا نامگذاري قوي يك اسمبلي مي توان اطلاعات ديگري را نيز در مورد آن اسمبلي در آن ذخيره كرد تا به اين ترتيب از منحصر به فرد بودن يك اسمبلي مطمئن شد (براي مثال فرهنگ و زباني كه براي نوشتن آن اسمبلي به كار رفته است ) اما در اين قسمت فقط بـر مشخص كردن نويسنده و نسخه ي يك اسمبلي تمركز خواهيم كرد.

امضا کردن اسمبلی را در قسمت صد و شصت و هشتم ببینید.


درباره نویسنده
سجاد اسدی
   سجاد اسدی

سجاد اسدی هستم دانشجوی رشته نرم افزار و علاقه مند به تدریس و یادگیری دروس مرتبط با تکنولوژی نرم افزار و اینترنت اشیاء جهت ارتباط با بنده مراجعه شود به آیدی سروش و تلگرام : @ordervira و پیج بنده در اینستاگرام instagram.com/sajjadred11 ""اللهم صل علی محمد و آل محمد"" برای شروع هیچ وقت دیر نیست. "الهم عجل لولیک الفرج"

دیدگاه بگذارید

avatar
  اشتراک  
اطلاع رسانی

aparat کانال آپارات

soroush کانال سروش

کانال آی گپ