اشتراکها
ایجاد برنامههای دسکتاپ با Vue.js
اشتراکها
وب سایت های واکنشگرا و یا بومی
اشتراکها
استفاده از SignalR در React Native
البته این مورد فعلا فقط مربوط به VC است (و برای تولید برنامههای native ویندوز).
مطالب
خواندنیهای 8 مرداد
اس کیوال سرور
امنیت
توسعه وب
دات نت فریم ورک
دبلیو پی اف و سیلور لایت
دلفی
سی و مشتقات
لینوکس
متفرقه
محیطهای مجتمع توسعه
ویندوز
در اکثر شرکتهای بزرگ و متوسط نرم افزاری، بخش مشترکی از پروژهها تحت عنوان فریم ورک و یا پروژههای مشترک (Common) از پروژههای جاری فاکتور گرفته میشود و ارتباط با آنها با ارجاعی (Reference) به اسمبلی آنها انجام مشود.
کافی است این دستورات را در Note Pad کپی کنید و سپس با پسوند bat و مثلا با نام Update ذخیره کنید.
اما مشکل همیشگی این است که برای حفظ استقلال، مستقیما از پروژههای جاری به اسمبلیهای پایه ارجاع داده نمیشود؛ چون ممکن است بنا بر پایسته بودن نسخه پروژه جاری، قصد نداشته باشیم همیشه آخرین ورژن اسمبلیهای خارجی را دریافت کنیم، بلکه ارجاعی به اسمبلیها در یک پوشه در خود پروژه انجام میشود و شما بعد از هر بار تغییر در فریم ورک، باید اسمبلیهای جدید را به داخل پوشه، در تک تک پروژههای جاری تان کپی کنید.
برای خلاصی از این کار مدام و تکراری میتوانید از یک Batch فایل شبیه کد زیر استفاده کنید:
xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.dll D:\Project\Current\DependentDLL xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.Common.dll D:\Project\Current\DependentDLL xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.Business.dll D:\Project\Current\DependentDLL xcopy /s /y D:\Project\Framework\Framework.Web\bin\Debug\Framework.Web.dll D:\Project\Current\DependentDLL
این فایل را در پوشه اسمبلیهای وابسته در پروژههای جاری تان کپی کنید و از این به بعد هر وقت خواستید آخرین ورژن اسمبلیهای خارجی را دریافت کنید دوبار روی این فایل کلیک کنید.
- وهله شیء تولیدی شما از نوع object است. آنرا به لیست اضافه کنید و استفاده نمائید.
+ نوع جنریک در دات نت پویا نیست و نمیشود آن را به صورت یک متغیر تعریف کرد. مثلا حالت زیر مجاز نیست:
علت هم این است که هدف از نوع جنریک، compile time safety است و زمانیکه نوع در زمان کامپایل مشخص نباشد، این مساله قابل حصول نخواهد بود.
تنها حالت پویای آن استفاده از نوع object است.
- البته میشود با استفاده Reflection نوع جنریک را به صورت متغیر تعریف کنید.
+ نوع جنریک در دات نت پویا نیست و نمیشود آن را به صورت یک متغیر تعریف کرد. مثلا حالت زیر مجاز نیست:
var myType = typeof(something); List<myType> list = new List<myType>();
- البته میشود با استفاده Reflection نوع جنریک را به صورت متغیر تعریف کنید.
این خروجی که مشاهده کردید مربوط به حالت دیباگ هست. زمان حالت ارائهی نهایی با دستور dotnet publish --configuration Release کار trimming دات نت 5 (حذف کدهای اضافی استفاده نشده) و همچنین فشرده سازی فایلها، به صورت خودکار انجام میشود که حجم مشاهده شده را به بیشتر از نصف کاهش میدهد. البته این موارد publish و اجرای آفلاین و ثبت اطلاعات آفلاین، در قسمتهای بعدی به صورت جداگانه و مفصلی بحث خواهند شد. این حجم publish، با حجم برنامههای واقعی Angular یا React قابل مقایسه است و تقریبا یکی هست.