رفتن به مطلب
مشاهده در اپلیکیشن

راهی بهتر برای مشاهده سایت بیشتر بدانید

وبلاگ شخصی سینا جلالوندی

یک برنامه تمام‌صفحه روی صفحه اصلی شما با دریافت نوتفیکیشن، نشان‌ها و امکانات بیشتر

برای نصب روی iOS و iPadOS
  1. Tap the Share icon in Safari
  2. منو را اسکرول کنید و روی Add to Home screen بزنید
  3. روی Add در گوشه‌ی بالا-راست بزنید
برای نصب روی اندروید
  1. روی منوی سه‌نقطه (⋮) در گوشه‌ی بالا-راست مرورگر بزنید.
  2. روی Add to Home screen یا Install app بزنید.
  3. با زدن روی نصب تأیید کنید.
  • زمان مطالعه : 10 دقیقه

با انتشار .NET 10 در نوامبر 2025 به عنوان نسخه LTS (پشتیبانی بلندمدت)، مایکروسافت بار دیگر تعهد خود را به بهبود عملکرد، امنیت و تجربه توسعه‌دهندگان نشان داد. این نسخه با مجموعه‌ای از قابلیت‌های جدید و بهینه‌سازی‌ها، توسعه اپلیکیشن‌های مدرن را سریع‌تر و کارآمدتر کرده است. در این مقاله، به بررسی تغییرات کلیدی در runtime، کتابخانه‌ها، ابزارهای توسعه، ASP.NET Core و Entity Framework Core می‌پردازیم. اگر توسعه‌دهنده .NET هستید، این مقاله شما را با ویژگی‌های جدید این نسخه آشنا خواهد کرد.

لیست کلی تغییرات

1. Runtime و SDK پایه

  • بهبود عملکرد و کاهش مصرف حافظه در سناریوهای سنگین.

  • ارتقای ابزار CLI با امکاناتی مانند --cli-schema و dotnet tool exec.

  • پشتیبانی از Native AOT برای تولید برنامه‌های با سرعت بالا و مصرف پایین حافظه.

2. زبان C# 14

  • افزودن قابلیت‌های جدید مانند field-backed properties و extension blocks.

  • بهبود دسترسی به پارامترهای generic و امکانات پیشرفته‌تر برای لامبداها.

  • پشتیبانی از ویژگی‌های مدرن برای بهبود خوانایی و انعطاف‌پذیری کد.

3. ASP.NET Core و Blazor

  • بهبود مدیریت assetها و فشرده‌سازی خودکار در Blazor برای کاهش حجم دانلود.

  • افزودن قابلیت‌هایی مانند RowClass در QuickGrid و حفظ موقعیت اسکرول هنگام استفاده از NavigateTo.

  • پشتیبانی از passkeys برای احراز هویت بدون رمز عبور و امنیت بالاتر.

  • ارتقای OpenAPI به نسخه 3.1 و امکانات پیشرفته‌تر برای مستندسازی APIها.

4. Entity Framework Core

  • بهبود عملکرد queryها و پشتیبانی بهتر از پایگاه داده‌های مدرن مانند Azure Cosmos DB.

  • اضافه شدن قابلیت Vector similarity search و انعطاف بیشتر در طراحی queryها.

5. .NET MAUI و توسعه چندپلتفرمی

  • بهبود کنترل‌های رابط کاربری و تجربهٔ توسعه در اپلیکیشن‌های موبایل و دسکتاپ.

  • امکانات جدید برای telemetry، مدیریت پیکربندی و سازگاری بهتر با معماری‌های cloud-native.

6. Windows Forms و WPF

  • بهبود کیفیت کنترل‌های UI و ویرایش نوع UITypeEditorها.

  • اصلاح عملکرد clipboard و افزایش پایداری در پروژه‌های دسکتاپ.

جزییات تغییرات:

بهبودهای Runtime: عملکردی بهینه‌تر و هوشمندتر

Runtime در .NET 10 با تمرکز بر بهینه‌سازی اجرای کد، کاهش فشار روی Garbage Collector (GC) و پشتیبانی از سخت‌افزارهای جدید، پیشرفت‌های قابل توجهی داشته است.

بهینه‌سازی‌های JIT Compiler

کامپایلر JIT در .NET 10 با تکنیک‌هایی نظیر devirtualization متدهای آرایه و بهبود loop inversion، عملکرد را بهبود بخشیده است. برای مثال، در حلقه‌های foreach روی آرایه‌ها، JIT حالا می‌تواند virtual callها را حذف کرده و کد را inline کند، که منجر به عملکردی مشابه حلقه‌های for می‌شود.

static int Sum(int[] array)
{
    int sum = 0;
    IEnumerable<int> temp = array;  // اکنون devirtualize می‌شود
    foreach (var num in temp)
    {
        sum += num;
    }
    return sum;
}

این کد در .NET 10 تا 20% سریع‌تر اجرا می‌شود.

علاوه بر این، الگوریتم 3-opt برای بهینه‌سازی layout کد استفاده شده که مسیرهای پراستفاده (hot paths) را بهینه‌تر کنار هم قرار می‌دهد و فاصله branchها را کاهش می‌دهد.

تخصیص حافظه روی Stack

یکی از ویژگی‌های برجسته، گسترش escape analysis برای تخصیص حافظه روی stack است. آرایه‌های کوچک از value typeها (مانند int[]) و حتی reference typeها (مانند string[]) در صورت محدود بودن scope، روی stack تخصیص می‌یابند. این قابلیت فشار روی GC را تا 15-20% کاهش می‌دهد.

static void Sum()
{
    int[] numbers = { 1, 2, 3 };  // تخصیص روی stack
    int sum = 0;
    for (int i = 0; i < numbers.Length; i++)
    {
        sum += numbers[i];
    }
    Console.WriteLine(sum);  // خروجی: 6
}

پشتیبانی از AVX10.2 و Arm64

.NET 10 از دستورات AVX10.2 در معماری x64 پشتیبانی می‌کند (هرچند فعلاً غیرفعال است تا سخت‌افزارهای جدید عرضه شوند). همچنین، بهینه‌سازی write-barrier در Arm64 عملکرد GC را تا 8-20% بهبود داده که برای اپلیکیشن‌های موبایل و edge computing بسیار مفید است.

کتابخانه‌ها: APIهای مدرن و امن

کتابخانه‌های استاندارد .NET 10 با APIهای جدید در حوزه‌های امنیت، پردازش رشته‌ها و سریال‌سازی، توسعه‌دهندگان را مجهزتر کرده‌اند.

رمزنگاری پساکوانتومی

پشتیبانی از الگوریتم‌های post-quantum cryptography (PQC) مانند ML-KEM، ML-DSA و SLH-DSA اضافه شده است. این الگوریتم‌ها با استفاده از ویژگی IsSupported قابل بررسی هستند.

X509Certificate2Collection coll = store.Certificates.FindByThumbprint(HashAlgorithmName.SHA256, thumbprint);
var cert = coll.SingleOrDefault();  // استفاده از SHA-256 برای امنیت بالاتر

Globalization و پردازش رشته‌ها

کلاس ISOWeek حالا با DateOnly سازگار است و عملیات string normalization با spans انجام می‌شود تا تخصیص حافظه کاهش یابد. همچنین، NumericOrdering در CompareOptions برای مقایسه عددی رشته‌ها اضافه شده است.

سریال‌سازی و Collections

OrderedDictionary<TKey, TValue> با متدهای TryAdd و TryGetValue بهبود یافته و برای JsonObject تا 20% سریع‌تر است. در سریال‌سازی JSON، قابلیت ReferenceHandler برای مدیریت cycleها و preset Strict برای رعایت بهترین استانداردها اضافه شده است.

[JsonSourceGenerationOptions(ReferenceHandler = JsonKnownReferenceHandler.Preserve)]
[JsonSerializable(typeof(SelfReference))]
internal partial class ContextWithPreserveReference : JsonSerializerContext { }

ZIP و WebSocket

ZipArchive حالا از APIهای async پشتیبانی می‌کند و فرآیند extraction به صورت موازی انجام می‌شود. همچنین، WebSocketStream abstraction جدیدی برای WebSocketهای مبتنی بر stream ارائه می‌دهد.

ابزارهای توسعه: ساده‌سازی فرآیندها

SDK در .NET 10 روی ساده‌سازی توسعه و پشتیبانی از پلتفرم‌های مختلف تمرکز دارد.

  • حذف خودکار پکیج‌های بلااستفاده: قابلیت pruning package references به طور پیش‌فرض فعال است و زمان بیلد را کاهش می‌دهد.

  • اجرای ابزارها بدون نصب: با dotnet tool exec می‌توانید ابزارها را بدون نصب دائم اجرا کنید.

  • انتشار به AOT: امکان انتشار اپلیکیشن‌ها به صورت native AOT با دستور dotnet publish app.cs.

  • ایمیج‌های کانتینری: دستور dotnet publish /t:PublishContainer برای انتشار مستقیم به container.

همچنین، پشتیبانی از tab-completion در shellهایی مانند bash و zsh اضافه شده است.

ASP.NET Core 10: وب سریع‌تر و امن‌تر

ASP.NET Core 10 با بهبودهایی در Blazor، امنیت و Minimal APIs، توسعه وب را به سطح جدیدی برده است.

Blazor: رابط کاربری پویاتر

  • حالت پایدار (Persistent State): با [PersistentState]، وضعیت کامپوننت‌ها در prerendering حفظ می‌شود.

[PersistentState]
public List<Movie>? MoviesList { get; set; }
protected override async Task OnInitializedAsync()
{
    MoviesList ??= await MovieService.GetMoviesAsync();
}
  • QuickGrid: قابلیت‌هایی مانند RowClass برای استایل‌دهی و HideColumnOptionsAsync برای بهبود UI.

  • Response Streaming: به طور پیش‌فرض برای HttpClient فعال است.

  • JavaScript Interop: متدهای جدید مانند InvokeConstructorAsync.

امنیت و احراز هویت

پشتیبانی از passkey authentication با WebAuthn و FIDO2 برای احراز هویت بدون رمزعبور. همچنین، RedirectHttpResult.IsLocalUrl برای جلوگیری از حملات open redirect.

Minimal APIs

بهبودهایی در query compiler برای LINQ و پشتیبانی از OpenAPI 3.1.

Entity Framework Core 10: دیتابیس و AI

EF Core 10 با قابلیت‌های جدید برای AI و دیتابیس‌های مدرن طراحی شده است.

جستجوی وکتوری و JSON

پشتیبانی از vector data type در SQL Server 2025 و Azure SQL برای جستجوی معنایی و RAG.

public class Blog
{
    [Column(TypeName = "vector(1536)")]
    public SqlVector<float> Embedding { get; set; }
}
// جستجو:
var topSimilar = context.Blogs
    .OrderBy(b => EF.Functions.VectorDistance("cosine", b.Embedding, sqlVector))
    .Take(3).ToListAsync();

JSON type نیز به صورت native پشتیبانی می‌شود.

Cosmos DB

پشتیبانی از full-text search با EF.Functions.FullTextContains و RRF برای جستجوی هیبریدی.

LINQ و عملیات Bulk

بهبود translation برای joinها و ساده‌سازی bulk updates.

چالش‌ها و نکات مهم برای مهاجرت

  1. سازگاری با پروژه‌های قدیمی: برخی APIها تغییر کرده یا deprecated شده‌اند و بررسی دقیق لازم است.

  2. بازنویسی بخشی از کد: استفاده از قابلیت‌های جدید Blazor و C# ممکن است نیازمند تغییر در کد باشد.

  3. یادگیری تیم توسعه‌دهنده: آشنایی با امکانات C# 14 و ویژگی‌های جدید Blazor و MAUI ضروری است.

  4. پایش و تست پس از ارتقا: مانیتورینگ و تست جامع برای اطمینان از عملکرد صحیح پروژه ضروری است.

نتیجه‌گیری

.NET 10 با تمرکز بر عملکرد، امنیت و تجربه توسعه‌دهنده، ابزار قدرتمندی برای ساخت اپلیکیشن‌های مدرن ارائه می‌دهد. اگر از نسخه‌های قبلی مهاجرت می‌کنید، مستندات مایکروسافت را بررسی کنید تا با تغییرات breaking آشنا شوید. پیشنهاد می‌کنیم با یک پروژه Blazor یا قابلیت‌های vector search شروع کنید تا قدرت این نسخه را تجربه کنید.

بازخورد کاربر

دیدگاه‌های پیشنهاد شده

هیچ دیدگاهی برای نمایش وجود دارد.

دیدگاه خود را ارسال کنید

از استفاده از کلمات رکیک و خلاف قوانین و غیر مرتبط با موضوع خودداری کنید ...
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
افزودن دیدگاه...

...

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.