تغییرات جدید در دات‌نت۸

dotnet8

مایکروسافت اولین اطلاعیه انتشار را برای ارائه دات‌نت۸ خود، از جمله framework اصلی، .NET MAUI ،Xamarin.Forms و مؤلفه‌های web-dev Core ASP.NET، به غیر از Entity Framework (EF8) برای توسعه دهندگان داده ارسال کرد.

در این مرحله، با وجود یک اطلاعیه دیگر برای انتشار تا قبل از انتشار در دسترس عمومی اواسط نوامبر، بیشتر ویژگی‌ها و عملکردهای جدید تنظیم شده‌اند و تیم توسعه‌دهنده در درجه اول کارها را صیقل می‌دهد.

این بدان معنا نیست که RC ها چیزهای جدیدی را معرفی نمی‌کنند که در  ادامه شرح داده شده است:

دات‌نت۸
مایکروسافت گفت: “NET 8 RC1 اکنون در دسترس است.” “این اولین نسخه از دو کاندید انتشار ما است. این نسخه شامل یک حالت AOT جدید برای Android و WASM، بهبودهای System.Text.Json و پشتیبانی Azure Managed Identity برای کانتینرها است.” جزئیات خاص عبارتند از:

  • حالت AOT برای Android و WASM: توسعه دهندگان می توانند کد دات نت خود را مستقیماً در WebAssembly یا کد بومی اندروید کامپایل کنند، که منجر به عملکرد سریعتر راه اندازی و زمان اجرا، اما اندازه برنامه بزرگتر می شود. این تیم همچنین گزینه های جدیدی را برای حذف کد زبان میانی (IL) استفاده نشده معرفی کرد تا اندازه برنامه کاهش یابد.
  • بهبودهای System.Text.Json: اینها شامل روش‌های توسعه جدید برای پخش جریانی سریال‌زدایی از IAsyncEnumerable و سازنده‌های جدید برای JsonContent است که از trim safe/source ایجاد شده پشتیبانی می‌کنند.
  • پشتیبانی Azure Managed Identity برای کانتینرها: این به کاربران کمک می کند تا به راحتی با Azure Container Registry یا سایر رجیستری هایی که از تبادل توکن OAuth استفاده می کنند احراز هویت کنند، بدون استفاده از دستور ورود به سیستم docker.
  • پشتیبانی از منابع Win32 برای ساخت متقابل: توسعه دهندگان می توانند منابع Win32 مانند نماد، مانیفست و اطلاعات نسخه را در برنامه های خود در هنگام ساخت بر روی پلتفرم های غیر ویندوزی جاسازی کنند.

.NET MAUI
مایکروسافت این فریم ورک را MAUI Xamarin.Forms می‌نامد زیرا توانایی ایجاد برنامه‌های دسکتاپ را علاوه بر اهداف تلفن همراه سنتی iOS و Android اضافه می‌کند. اگرچه مشکلات توسعه را تجربه کرده است و با تاخیر برای دات نت 6 ارسال شده است، توسعه دهندگان مایکروسافت علاقه شدیدی به این پیشنهاد دارند و پس از اینکه مایکروسافت اخیراً بازنشستگی ویژوال استودیو برای مک را اعلام کرد، از نزدیک آن را دنبال می کنند. مشکلات توسعه ارائه مک را نیز دچار مشکل کرده است، بنابراین برخی از توسعه دهندگان .NET MAUI نگران هستند که NET MAUI نیز به همین سرنوشت دچار شود. شاید با در نظر گرفتن این مشکلات، مایکروسافت عنوان پست اعلامیه خود را ” اعلام NET MAUI در .NET 8 Release Candidate 1: Quality” گذاشت.در ادامه گفت: “موضوع اصلی کار ما.NET MAUI در NET 8 کیفیت کد است.” با افزایش کیفیت، RC1 با مجوز فعال آماده برای کار تولید ارائه می شود. در اینجا چند مورد توجه در RC1 وجود دارد. ، که شامل ویژگی‌های جدید، بهبودها و بهینه‌سازی عملکرد می‌شود:

  • حل‌های نشت حافظه: چندین مشکل نشت حافظه در کنترل‌های UI مختلف در پلتفرم iOS بررسی شد که بر ویرایشگر، ورودی، MauiDoneAccessoryView، RefreshView، SwipeView، TimePicker، Picker و GraphicsView، طراحی شده‌اند تا از پایداری بهتر برنامه از طریق مدیریت حافظه بهبود یافته اطمینان حاصل کنند.
  • بهبودهای کنترل رابط کاربری: مسائل مربوط به کنترل رابط کاربری بر روی CheckBox، RefreshView، SwipeItem، Label و Button در چندین پلتفرم تأثیر می‌گذارد و به تعامل نرم‌تر برنامه کمک می‌کند.
  • رفع‌های خاص پلتفرم: برای اطمینان از تجربه کاربری ثابت در پلتفرم‌های مختلف از جمله iOS، Android، Windows و macOS، رفع مشکلاتی مانند بریده شدن مرز، اشکالات پنجره و مشکلات بارگذاری تصویر، رفع‌هایی ایجاد شد.
  • بهینه‌سازی عملکرد: تلاش برای بهبود استفاده از حافظه و تولید منابع شامل بهینه‌سازی‌هایی برای عملکرد نرم‌تر و پاسخ‌دهی برنامه بود، به‌ویژه هدف قرار دادن بهبود استفاده از حافظه CollectionView، کنترل تولید منابع و مشکلات تایمر اندروید.

مایکروسافت همچنین پشتیبانی از Xcode 15، IDE اپل را افزایش داده است. مایکروسافت گفت: «اکنون می‌توانید از نسخه‌های بتا Xcode 15 به‌عنوان نصب برای ساخت برنامه‌ها و مدیریت شبیه‌سازها استفاده کنید، و این در نسخه‌های بعدی ویژوال استودیو در دسترس خواهد بود». “در نسخه بعدی .NET 8 ما شروع به معرفی APIهای جدید برای Apple SDK مانند iOS 17 خواهیم کرد. ما این موضوع را با Xcode 15 Beta 6 تایید کرده ایم، اگرچه نسخه های جدیدتر ممکن است به همین شکل عمل کنند.”

 ASP.NET Core
در اینجا، Blazor دوباره سهم عمده ای از توجه توسعه دهندگان را می بیند، زیرا طرح مایکروسافت برای اجازه دادن به توسعه دهندگان وب برای استفاده از C# به جای جاوا اسکریپت شاهد هشت پیشرفت مختلف بود (برخی از آنها در اطلاعیه اصلی دات نت مایکروسافت مورد بحث قرار گرفتند):

  • به روز رسانی قالب برنامه وب Blazor
  • اجزای مجموعه های اضافی را برای رندر سرور استاتیک کشف کنید
  • بهبود مسیریابی
  • بازخوانی صفحه را فعال کنید
  • از ویژگی های دلخواه به QuickGrid عبور کنید
  • تعیین کنید که آیا یک فیلد فرم دارای پیام های اعتبارسنجی مرتبط است یا خیر
  • زمان اجرای NET WebAssembly را پیکربندی کنید
  • پس از تدوین پیش از زمان (AOT) .NET IL را برش دهید

تیم توسعه دهنده همچنین تغییراتی را در موارد زیر ایجاد کرد:

  • سرورها و میان افزارها
  • نوشتن API
  • هویت
  • برنامه های تک صفحه ای (SPA)
  • معیارهای

EF Core 8
این چارچوب مبتنی بر داده در یک بسته NuGet با بیش از 809 میلیون بارگیری ارائه می‌شود، با این توضیح: “Entity Framework Core یک نقشه‌بردار پایگاه داده شی مدرن برای دات‌نت است. از جستارهای LINQ، ردیابی تغییرات، به‌روزرسانی‌ها و مهاجرت‌های طرح‌واره پشتیبانی می‌کند. EF Core با SQL Server، Azure SQL Database، SQLite، Azure Cosmos DB، MySQL، PostgreSQL و سایر پایگاه های داده از طریق یک API افزونه ارائه دهنده کار می کند. پست اعلامیه 70 مورد عظیم را فهرست می‌کند که با پیوندهایی به اطلاعات بیشتر برای هر یک تکمیل می‌شود.

آرتور ویکرز مایکروسافت با این تعداد موارد برای بحث، بر ارائه جزئیات بیشتر در مورد “انواع پیچیده به عنوان اشیاء ارزش” تمرکز کرد.

اصولاً اشیاء ذخیره شده در پایگاه داده را می توان به سه نوع دسته بندی کرد:

  • انواع اولیه: اینها اشیای بدون ساختار هستند که دارای یک مقدار واحد مانند int، Guid، string و IPaddress هستند.
  • انواع موجودیت: این اشیاء ساختاری هستند که مقادیر متعددی را در خود نگه می دارند و دارای یک مقدار کلیدی هستند که هویت آنها را مشخص می کند. به عنوان مثال می توان به وبلاگ، پست و مشتری اشاره کرد.
  • نوع سوم: این اشیاء ساختاری هستند که مقادیر متعددی را در خود نگه می دارند اما کلیدی برای تعیین هویت آنها ندارند. به عنوان مثال می توان به آدرس و مختصات اشاره کرد.

قبل از EF8، هیچ راه کارآمدی برای نگاشت نوع سوم شی وجود نداشت. از انواع مالکیتی می توان استفاده کرد، اما آنها در واقع انواع موجودیت هستند و بر اساس مقدار آن کلید دارای کلید و معنایی هستند.

بنابراین EF8 “انواع پیچیده” را برای رسیدگی به این نوع سوم از شی معرفی کرد. انواع پیچیده در EF Core شبیه به EF6 است اما با برخی تفاوت‌ها:

  • آنها توسط مقدار کلیدی شناسایی یا ردیابی نمی شوند.
  • آنها باید به عنوان بخشی از یک نوع موجودیت تعریف شوند (شما نمی توانید یک DbSet از نوع پیچیده داشته باشید).
  • آنها می توانند انواع ارزش دات نت یا انواع مرجع باشند (EF6 فقط از انواع مرجع پشتیبانی می کند).
  • آنها می توانند یک نمونه مشابه را در چندین ویژگی به اشتراک بگذارند (EF6 به اشتراک گذاری اجازه نمی دهد).

دیدگاه شما

نشانی ایمیل شما منتشر نخواهد شد.