عنوان:

‫تغییرات مهم و برجسته در مهاجرت به دات‌نت 10


نویسنده: وحید نصیری
تاریخ: ۱۴۰۴/۰۷/۲۷ ۰۹:۳۶
آدرس: www.dntips.ir
مهاجرت به نسخه جدید فریم‌ورک دات‌نت، یعنی دات‌نت 10، همراه با تغییرات مهم و بعضاً ناسازگاری است که توسعه‌دهندگان باید به آن‌ها توجه کنند. در این مقاله، به بررسی تغییرات کلیدی و نکات برجسته‌ای که برای مهاجرت به دات‌نت 10 لازم است بدانید، می‌پردازیم.

منسوخ شدن IWebHost و جایگزینی با IHost
رابط IWebHost به‌صورت رسمی در دات‌نت 10 منسوخ شده است و از این پس باید از IHost استفاده شود. برنامه‌های قدیمی (حتی تا دات‌نت 9) ممکن است بدون هشدار از IWebHost استفاده کرده باشند. اگر تنظیم را فعال کرده‌اید، این تغییر می‌تواند یک مشکل شکست‌آمیز ایجاد کند. با این حال، رفع این مسئله نسبتاً ساده است و با جایگزینی IWebHost با IHost قابل انجام است.

بررسی پیش‌فرض بسته‌های ترانزیتیو در dotnet restore
فرمان dotnet restore اکنون به‌صورت پیش‌فرض نه‌تنها وابستگی‌های مستقیم، بلکه بسته‌های ترانزیتیو (وابستگی‌های غیرمستقیم) را نیز بررسی می‌کند. این تغییر می‌تواند در صورت فعال بودن به یک مانع تبدیل شود. توسعه‌دهندگان باید از این موضوع آگاه باشند، زیرا ممکن است نیاز به جایگزینی کتابخانه‌ها، به تعویق انداختن مهاجرت یا اقدامات دیگری داشته باشند.

تغییر سیستم‌عامل پایه در تصاویر داکر مایکروسافت
از دات‌نت 10 به بعد، تصاویر رسمی داکر مایکروسافت به‌جای استفاده از دبیان یا آلپاین، از اوبونتو به‌عنوان سیستم‌عامل پایه استفاده خواهند کرد. این تغییر ممکن است باعث تفاوت‌هایی در رفتار برنامه‌ها شود، بنابراین باید به آن توجه ویژه‌ای داشت.

تبدیل ضمنی درSpanوReadOnlySpan
در دات‌نت 10، ساختارهای Span و ReadOnlySpan اکنون از تبدیل ضمنی پشتیبانی می‌کنند. این قابلیت ممکن است در برخی موارد باعث ابهام شود. توسعه‌دهندگان باید هنگام استفاده از این ساختارها این موضوع را در نظر داشته باشند.

فرمت جدید .slnx در dotnet new sln
فرمان dotnet new sln اکنون به‌صورت پیش‌فرض فایل‌هایی با فرمت جدید .slnx ایجاد می‌کند. این تغییر معمولاً مشکلی ایجاد نمی‌کند، اما یادآوری خوبی است که پروژه‌ها باید از فرمت قدیمی به فرمت جدید مبتنی بر XML که در دات‌نت 9 معرفی شده بود، مهاجرت کنند. این یکی از به‌روزرسانی‌های محبوب در این نسخه است.

کلمه کلیدی field برای ویژگی‌های پشتیبانی‌شده توسط فیلد
دات‌نت 10 کلمه کلیدی field را برای ویژگی‌های پشتیبانی‌شده توسط فیلد معرفی کرده است. این تغییر معمولاً مشکلی ایجاد نمی‌کند، مگر در مواردی که ویژگی‌ها از فیلدهای پشتیبانی با نام field استفاده کنند. در این صورت، کافی است فیلد پشتیبانی حذف شده و از کلمه کلیدی جدید field استفاده شود. این مشکل به‌احتمال زیاد رایج نیست، زیرا POCOها عمدتاً از ویژگی‌های خودکار استفاده می‌کنند و موجودیت‌ها یا اشیاء دامنه معمولاً اعتبارسنجی ساده‌ای در متدها دارند.

ادغام AsyncEnumerable در کتابخانه پایه
AsyncEnumerable که پیش‌تر به‌صورت جداگانه در بسته System.Linq.Async میزبانی می‌شد، اکنون بخشی از کتابخانه پایه یکپارچه دات‌نت است. هنگام مهاجرت، مطمئن شوید که بسته NuGet قدیمی حذف شده است تا از ایجاد ابهام جلوگیری شود.

نتیجه‌گیری
مهاجرت به دات‌نت 10 نیازمند آگاهی از تغییرات کلیدی مانند منسوخ شدن IWebHost، بررسی بسته‌های ترانزیتیو، تغییر در تصاویر داکر، و قابلیت‌های جدید مانند تبدیل ضمنی در Span و فرمت .slnx است. با برنامه‌ریزی مناسب و توجه به این نکات، می‌توانید مهاجرتی روان و بدون مشکل به دات‌نت 10 داشته باشید.


مشاهده مطلب اصلی