.NET 9 و C# 13: جهش کوانتومی بعدی در کارایی و بهره‌وری توسعه‌دهندگان

مایکروسافت پارتنر لایسنس‌های دائمی Microsoft Office در مقابل اشتراک‌ها می 2026
لایسنس‌های دائمی Microsoft Office در مقابل اشتراک‌ها
می 22, 2026
مایکروسافت پارتنر کاپایلت+ پی‌سی: دو سال بعد، ارزیابی یک انقلاب جاه‌طلبانه می 2026
کاپایلت+ پی‌سی: دو سال بعد، ارزیابی یک انقلاب جاه‌طلبانه
می 26, 2026

.NET 9 و C# 13: جهش کوانتومی بعدی در کارایی و بهره‌وری توسعه‌دهندگان

مایکروسافت پارتنر .NET 9 و C# 13: جهش کوانتومی بعدی در کارایی و بهره‌وری توسعه‌دهندگان می 2026

'''
در دنیای پویای توسعهٔ نرم‌افزار، سرعت و کارایی تنها یک مزیت رقابتی نیست، بلکه یک ضرورت است. مایکروسافت با درک عمیق این موضوع، در هر نسل از پلتفرم .NET، مرزهای جدیدی را در عملکرد، بهره‌وری توسعه‌دهنده و قابلیت‌های مدرن جابجا می‌کند. اکنون با نزدیک شدن به عرضهٔ نهایی .NET 9 در پاییز ۲۰۲۴، پیش‌نمایش‌های منتشر شده و اخبار کنفرانس Microsoft Build، تصویری هیجان‌انگیز از آیندهٔ این اکوسیستم ترسیم کرده‌اند. .NET 9 یک به‌روزرسانی ساده و سالانه نیست؛ بلکه یک جهش استراتژیک با تمرکز ویژه بر سه محور کلیدی است: بهینه‌سازی برای اپلیکیشن‌های Cloud-Native و هوش مصنوعی، افزایش چشمگیر کارایی (Performance)، و ارتقاء بهره‌وری توسعه‌دهندگان از طریق زبان C# 13 و ابزارهای بهبودیافته.

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps. - dotnet/runtime
.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps. – dotnet/runtime

این مقاله به تحلیلی عمیق و فنی از قابلیت‌های کلیدی .NET 9 و C# 13 می‌پردازد و نشان می‌دهد که چگونه این نوآوری‌ها، از بهبودهای سطح پایین در کامپایلرهای JIT و AOT گرفته تا ویژگی‌های ظریف و هوشمندانه در زبان C#، قرار است شیوهٔ ساخت، استقرار و اجرای نرم‌افزارهای مدرن را دگرگون سازند. با ما همراه باشید تا سفری به قلب این غول نرم‌افزاری داشته باشیم و ببینیم چه چیزی در انتظار میلیون‌ها توسعه‌دهندهٔ .NET در سراسر جهان است.

نگاهی به .NET 9: فراتر از یک آپدیت سالانه

هر نسخهٔ جدید .NET با مجموعه‌ای از اهداف و اولویت‌ها تعریف می‌شود. در حالی که .NET 8 بر روی بهبودهای بنیادین عملکرد و یکپارچه‌سازی بیشتر اکوسیستم متمرکز بود، .NET 9 با نگاهی به آیندهٔ محاسبات، تمرکز خود را بر روی بهینه‌سازی برای بارهای کاری Cloud-Native و هوش مصنوعی (AI) قرار داده است. استفان توماس (Stephen Toub)، مهندس برجستهٔ تیم .NET، در وبلاگ رسمی مایکروسافت به این نکته اشاره می‌کند که "هدف ما در .NET 9، ارائهٔ بهترین پلتفرم برای ساخت اپلیکیشن‌های هوشمند، پربازده و مقیاس‌پذیر در محیط ابری است."

این هدف در سه حوزهٔ اصلی دنبال می‌شود:

۱. عملکرد بی‌سابقه: از طریق بهینه‌سازی‌های گسترده در کامپایلر Just-In-Time (JIT)، کامپایل Ahead-Of-Time (AOT)، و کتابخانه‌های پایه (BCL)، .NET 9 قصد دارد رکوردهای جدیدی در بنچمارک‌های صنعتی به ثبت برساند. این بهبودها نه تنها به کاهش هزینه‌های زیرساخت در اپلیکیشن‌های مقیاس‌پذیر کمک می‌کند، بلکه تجربهٔ کاربری روان‌تری را نیز به ارمغان می‌آورد.

۲. توسعهٔ Cloud-Native در سطح جهانی: .NET به طور فزاینده‌ای به یک انتخاب پیشرو برای ساخت میکروسرویس‌ها، اپلیکیشن‌های کانتینری و فانکشن‌های Serverless تبدیل شده است. .NET 9 با کاهش حجم образов کانتینر، بهبود زمان راه‌اندازی (Startup Time) از طریق Native AOT، و یکپارچگی عمیق‌تر با ابزارهایی مانند Kubernetes و OpenTelemetry، این مسیر را با قدرت بیشتری ادامه می‌دهد.

۳. پلتفرمی برای هوش مصنوعی: با انفجار مدل‌های زبان بزرگ (LLMs) و اپلیکیشن‌های مبتنی بر AI، مایکروسافت در حال تجهیز .NET 9 با ابزارها و کتابخانه‌های لازم برای این حوزه است. این شامل بهبود پشتیبانی از کتابخانه‌هایی مانند System.Numerics.Tensors و یکپارچگی آسان با Azure AI و دیگر سرویس‌های هوش مصنوعی می‌شود. هدف این است که توسعه‌دهندگان .NET بتوانند به راحتی قابلیت‌های هوشمند را به اپلیکیشن‌های خود اضافه کنند.

این رویکرد استراتژیک نشان می‌دهد که .NET 9 صرفاً مجموعه‌ای از قابلیت‌های جدید نیست، بلکه پاسخی جامع به روندهای اصلی صنعت نرم‌افزار است و توسعه‌دهندگان را برای ساخت نسل بعدی اپلیکیشن‌ها توانمندتر می‌سازد.

بهبودهای کامپایلر: JIT و Native AOT

قلب تپندهٔ عملکرد در .NET، کامپایلرهای آن هستند. در .NET 9، تیم مهندسی مایکروسافت سرمایه‌گذاری عظیمی بر روی بهینه‌سازی کامپایلر Just-In-Time (که کد IL را در زمان اجرا به کد ماشین تبدیل می‌کند) و کامپایلر Native AOT (که اپلیکیشن را به صورت یک فایل اجرایی کاملاً مستقل و نیتیو خروجی می‌دهد) انجام داده است.

یکی از مهم‌ترین نوآوری‌ها در .NET 9، استفادهٔ پیش‌فرض از Dynamic Profile-Guided Optimization (PGO) است. در نسخه‌های قبلی، PGO نیازمند یک مرحلهٔ build جداگانه برای جمع‌آوری پروفایل عملکرد بود. اما اکنون، کامپایلر JIT به طور پویا و در حین اجرای برنامه، "hot paths" (مسیرهای کدی که بیشتر اجرا می‌شوند) را شناسایی کرده و آن‌ها را در سطوح بالاتری از بهینه‌سازی (Tier 1) بازکامپایل می‌کند. این قابلیت که به طور خودکار فعال است، می‌تواند بدون هیچ تغییری در کد منبع، منجر به افزایش ۱۰ تا ۱۵ درصدی در توان عملیاتی (throughput) بسیاری از اپلیکیشن‌های وب شود.

"Dynamic PGO یک تغییر بازی است. ما بهینه‌سازی‌های پیچیده را که قبلاً فقط به صورت آفلاین ممکن بود، به صورت کاملاً خودکار و در زمان اجرا به دست می‌آوریم. این یعنی اپلیکیشن شما با گذشت زمان، سریع‌تر می‌شود."

در جبههٔ Native AOT، تمرکز بر کاهش حجم خروجی و افزایش سازگاری بوده است. اپلیکیشن‌های کامپایل شده با Native AOT به دلیل زمان راه‌اندازی تقریباً آنی و مصرف حافظهٔ کمتر، گزینه‌ای ایده‌آل برای میکروسرویس‌ها و فانکشن‌های AWS Lambda یا Azure Functions هستند. در .NET 9، با تحلیل‌های دقیق‌تر و حذف کدهای استفاده نشده (trimming)، حجم فایل اجرایی نهایی تا حد قابل توجهی کوچکتر شده است. همچنین، پشتیبانی از سناریوهای بیشتری مانند اپلیکیشن‌های ASP.NET Core با Minimal APIs گسترش یافته و توسعهٔ این نوع برنامه‌ها را آسان‌تر کرده است.

Nvidia GPUs will ship in Copilot Plus PCs in “the coming months.”
Nvidia GPUs will ship in Copilot Plus PCs in “the coming months.” · The Verge — source (Used under fair use — © The Verge)

علاوه بر این، بهینه‌سازی‌های خاصی برای معماری Arm64 انجام شده است. با توجه به محبوبیت روزافزون پردازنده‌های مبتنی بر Arm در دیتاسنترها (مانند AWS Graviton) و دستگاه‌های کاربر نهایی (مانند Surface Pro)، مایکروسافت اطمینان حاصل کرده است که .NET 9 بر روی این معماری نیز عملکردی در سطح کلاس جهانی ارائه دهد. این شامل بهبود در تولید کد برای دستورالعمل‌های برداری (vector instructions) و بهینه‌سازی‌های حافظه است.

بهبود عملکرد در بنچمارک ASP.NET Core (JSON)
.NET 8
7100000 درخواست بر ثانیه (RPS)
.NET 9 Preview 3
8500000 درخواست بر ثانیه (RPS)
.NET 9 Preview 4 (+Dynamic PGO)
9350000 درخواست بر ثانیه (RPS)
Source: Microsoft .NET Blog (devblogs.microsoft.com/dotnet)

این بهبودهای عمیق و سطح پایین، شاید در نگاه اول کمتر به چشم بیایند، اما تأثیر مستقیم و قابل اندازه‌گیری بر روی هزینه‌های زیرساخت، تجربهٔ کاربری و پایداری اپلیکیشن‌های ساخته شده با .NET دارند.

C# 13: زبان برنامه‌نویسی هوشمندتر می‌شود

همزمان با .NET 9، زبان #C نیز با نسخهٔ ۱۳ خود، مجموعه‌ای از بهبودهای ظریف اما بسیار کاربردی را به ارمغان می‌آورد. فلسفهٔ تیم طراحی زبان #C در سال‌های اخیر، تمرکز بر کاهش پیچیدگی‌های تصنعی (ceremony)، افزایش خوانایی کد، و ارائهٔ ابزارهایی برای نوشتن کدهای امن‌تر و کارآمدتر بوده است. C# 13 نیز از این قاعده مستثنی نیست.

یکی از تغییرات مورد انتظار، پارامترهای params برای هر نوع مجموعه‌ای است. تا قبل از این، کلمهٔ کلیدی params فقط برای پارامترهای آرایه‌ای (e.g., params string[] names) قابل استفاده بود. در C# 13، می‌توان آن را برای هر نوعی که قابل شمارش است، مانند ReadOnlySpan<T> یا IEnumerable<T> نیز به کار برد. این قابلیت به خصوص در APIهای پربازده که می‌خواهند از سربار تخصیص حافظه برای آرایه‌ها جلوگیری کنند، بسیار مفید است.

// قبل از C# 13 (نیاز به ساخت آرایه)
void PrintNames(string[] names) { ... }
PrintNames(new[] { "Alice", "Bob" });

// با C# 13 و params Span<T>
void PrintNames(params ReadOnlySpan<string> names) { ... }
PrintNames("Alice", "Bob"); // بدون تخصیص حافظه در heap

دیگر قابلیت مهم، معرفی شیء lock جدید است. کلاس lock یک نوع دادهٔ جدید و اختصاصی برای قفل‌گذاری است که جایگزین امن‌تری برای lock (someObject) محسوب می‌شود. استفاده از lock بر روی اشیاءarbitrary می‌تواند منجر به deadlockهای غیرمنتظره شود، به خصوص اگر آن شیء از خارج از کد شما نیز قابل دسترسی باشد. شیء lock جدید این مشکل را با ارائهٔ یک هدف قفل‌گذاری اختصاصی که هیچ کاربرد دیگری ندارد، حل می‌کند.

یک ویژگی کوچک اما دلپذیر دیگر، بهبود escape sequenceها برای raw string literalها است. اکنون می‌توان از {{ برای escape کردن { در رشته‌های اینترپولیتد خام استفاده کرد که خواندن الگوهای متنی مانند JSON یا HTML را بسیار آسان‌تر می‌کند.

این‌ها تنها چند نمونه از ده‌ها بهبودی هستند که در C# 13 گنجانده شده‌اند. هر یک از این تغییرات در جهت حذف یک مانع کوچک از سر راه توسعه‌دهنده و روان‌تر کردن فرآیند تبدیل ایده به کد عمل می‌کنند.

جدول مقایسه: سیر تکامل کارایی در نسخه‌های اخیر .NET

برای درک بهتر میزان پیشرفت در هر نسل، می‌توانیم برخی از مهم‌ترین قابلیت‌های مرتبط با عملکرد را در سه نسخهٔ اخیر .NET مقایسه کنیم:

قابلیت (Feature).NET 7.NET 8 (LTS).NET 9 (STS, در حال توسعه)
Profile-Guided Optimization (PGO)استاتیک (نیاز به build مجزا)استاتیک بهبودیافتهپویا (Dynamic PGO) به صورت پیش‌فرض
Native AOTپشتیبانی اولیه برای کنسول و APIبهبودهای قابل توجه، پشتیبانی از ASP.NET Coreحجم خروجی کمتر، سازگاری بیشتر
پشتیبانی از Arm64خوبعالی (بهینه‌سازی‌های خاص)در سطح کلاس جهانی (بهبودهای بیشتر)
Vectorization (SIMD)پشتیبانی از AVX2پشتیبانی از AVX-512بهبودهای خودکار در BCL
Garbage Collector (GC)بهبودهای تدریجیبهینه‌سازی برای حافظه‌های بزرگحالت Datacenter با پایداری بالاتر
زمان راه‌اندازی (Startup Time)خوببهتر (با ReadyToRun و AOT)تقریباً آنی (با Native AOT بهینه)

این جدول به وضوح نشان می‌دهد که تیم .NET یک استراتژی مستمر و چندساله برای بهبود عملکرد در تمام لایه‌های پلتفرم دارد. هر نسخه بر روی پایه‌های نسخهٔ قبلی ساخته می‌شود و مرزهای ممکن را جابجا می‌کند.

Nvidia GPUs will ship in Copilot Plus PCs in “the coming months.”
Nvidia GPUs will ship in Copilot Plus PCs in “the coming months.” · The Verge — source (Used under fair use — © The Verge)

یکپارچگی با هوش مصنوعی: فراتر از Copilot

مایکروسافت در حال تبدیل شدن به "شرکت هوش مصنوعی" است و این تحول در تمام محصولات آن، از جمله .NET، مشهود است. فراتر از ابزارهای کمکی مانند GitHub Copilot که بهره‌وری توسعه‌دهنده را افزایش می‌دهند، .NET 9 به طور مشخص برای اجرای بارهای کاری هوش مصنوعی بهینه شده است.

این تلاش‌ها در چند جبهه قابل مشاهده است:

  • کتابخانه‌های بنیادین: کتابخانه‌هایی مانند System.Numerics.Tensors که در نسخه‌های قبلی معرفی شدند، در .NET 9 به بلوغ بیشتری رسیده‌اند و عملیات ریاضی پیچیده مورد نیاز در مدل‌های یادگیری ماشین را با کارایی بالا ممکن می‌سازند.
  • یکپارچگی با Semantic Kernel: کیت توسعهٔ نرم‌افزار Semantic Kernel، ابزاری قدرتمند برای ساخت اپلیکیشن‌هایی است که با مدل‌های زبان بزرگ (LLMs) مانند GPT-4 تعامل دارند. .NET 9 یکپارچگی تنگاتنگی با این ابزار دارد و به توسعه‌دهندگان اجازه می‌دهد تا به راحتی "AI Agents" و "Planners" را در اپلیکیشن‌های .NET خود بسازند.
  • دسترسی به مدل‌ها از طریق Azure AI: .NET 9 توسعهٔ اپلیکیشن‌هایی که از سرویس‌های Azure AI (مانند Azure OpenAI Service) استفاده می‌کنند را ساده‌تر می‌کند. SDKهای به‌روز شده، الگوهای طراحی مشخص، و مستندات غنی، موانع ورود به این حوزه را برای توسعه‌دهندگان دات‌نت کاهش می‌دهند.

هدف نهایی این است که هر توسعه‌دهندهٔ .NET، صرف نظر از تخصص قبلی در حوزهٔ AI، بتواند نسل بعدی اپلیکیشن‌های هوشمند را با استفاده از ابزارها و زبان برنامه‌نویسی که از قبل با آن آشناست، خلق کند.

Nvidia GPUs will ship in Copilot Plus PCs in “the coming months.”
Nvidia GPUs will ship in Copilot Plus PCs in “the coming months.” · The Verge — source (Used under fair use — © The Verge)

شروع به کار با .NET 9 و C# 13

اگر شما هم برای تجربهٔ این قابلیت‌های جدید هیجان‌زده هستید، مایکروسافت مسیر ورود را بسیار هموار کرده است. شما می‌توانید همین امروز پیش‌نمایش‌های .NET 9 را دانلود و نصب کنید.

برای شروع، این مراحل را دنبال کنید:

  1. آخرین نسخهٔ پیش‌نمایش .NET 9 SDK را از وب‌سایت رسمی .NET (dot.net) دانلود و نصب کنید.
  2. آخرین نسخهٔ پیش‌نمایش Visual Studio 2022 (نسخهٔ 17.11 یا بالاتر) را نصب کنید. حتماً گزینهٔ "Use previews of the .NET SDK" را در تنظیمات فعال کنید.
  3. اگر از VS Code استفاده می‌کنید، آخرین نسخهٔ افزونهٔ C# Dev Kit را نصب و اطمینان حاصل کنید که فایل global.json پروژه به نسخهٔ SDK پیش‌نمایش اشاره می‌کند.
  4. یک پروژهٔ جدید ایجاد کنید و در فایل .csproj، ویژگی‌های زیر را برای فعال‌سازی C# 13 تنظیم نمایید:
    <PropertyGroup>
      <LangVersion>preview</LangVersion>
    </PropertyGroup>
    

اکنون شما آماده‌اید تا از تمام قابلیت‌های جدید .NET 9 و C# 13 در پروژه‌های خود استفاده کنید و بازخورد خود را به تیم مایکروسافت ارائه دهید.

پرسش‌های متداول

آیا .NET 9 یک نسخه LTS است؟

خیر، .NET 9 یک نسخهٔ STS (Standard Term Support) است، به این معنی که پس از انتشار به مدت ۱۸ ماه پشتیبانی خواهد شد. نسخهٔ بعدی با پشتیبانی بلندمدت (LTS)، .NET 10 خواهد بود که برای انتشار در نوامبر ۲۰۲۵ برنامه‌ریزی شده است. نسخهٔ LTS فعلی .NET 8 است.

برای استفاده از C# 13 به چه نسخه‌ای از Visual Studio نیاز دارم؟

برای دسترسی به تمام قابلیت‌های C# 13 و .NET 9 SDK، شما به نسخه‌های پیش‌نمایش Visual Studio 2022 (نسخهٔ 17.10 یا جدیدتر) نیاز دارید. پس از انتشار نهایی .NET 9، این قابلیت‌ها در نسخهٔ پایدار بعدی Visual Studio نیز گنجانده خواهند شد.

اصلی‌ترین مزیت Native AOT در .NET 9 چیست؟

مزیت اصلی، دستیابی به زمان راه‌اندازی (startup time) فوق‌العاده سریع، مصرف حافظهٔ بسیار پایین، و بسته‌بندی اپلیکیشن به صورت یک فایل اجرایی واحد و بدون وابستگی است. این ویژگی‌ها .NET 9 را برای سناریوهای Cloud-Native مانند میکروسرویس‌های کانتینری و توابع Serverless به یک گزینهٔ ایده‌آل و بسیار رقابتی تبدیل می‌کند.

آیا Dynamic PGO نیاز به کار اضافی از سمت توسعه‌دهنده دارد؟

خیر، و این زیبایی آن است. Dynamic PGO به طور پیش‌فرض در .NET 9 فعال است و به صورت خودکار در زمان اجرا، بدون نیاز به هیچ‌گونه پیکربندی یا تغییر در فرآیند build، کد شما را بهینه می‌کند. این یک بهبود عملکرد "رایگان" برای اکثر اپلیکیشن‌های وب و سرویس‌ها است.

نتیجه‌گیری و گام‌های بعدی

.NET 9 و C# 13 نشان‌دهندهٔ تعهد بی‌وقفهٔ مایکروسافت به تکامل پلتفرم توسعهٔ خود در راستای نیازهای دنیای مدرن است. تمرکز همزمان بر عملکرد خام در سطح سیستم، بهره‌وری توسعه‌دهنده از طریق بهبودهای زبانی، و توانمندسازی برای ساخت اپلیکیشن‌های هوشمند، .NET را در موقعیتی بسیار قدرتمند قرار می‌دهد. بهبودهای چشمگیر در JIT، بلوغ Native AOT، و قابلیت‌های کاربردی C# 13، همگی ابزارهایی هستند که به توسعه‌دهندگان کمک می‌کنند تا نرم‌افزارهای بهتر، سریع‌تر و مقیاس‌پذیرتری بسازند.

بهترین راه برای درک واقعی تأثیر این نوآوری‌ها، استفادهٔ عملی از آن‌هاست. ما شما را تشویق می‌کنیم که آخرین پیش‌نمایش‌های .NET 9 و Visual Studio را نصب کنید، پروژه‌های آزمایشی بسازید، و قابلیت‌های جدید را در عمل امتحان کنید. جامعهٔ .NET بر پایهٔ بازخورد و مشارکت کاربرانش رشد می‌کند و شما نیز می‌توانید بخشی از این حرکت رو به جلو باشید.
'''


Sources

  1. dotnet/runtime: .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.GitHub (2024)
  2. Microsoft's .NET 9 will bring significant performance boostsThe Verge (2024)
  3. What's New in Visual Studio 2022 v17.10 PreviewMicrosoft Learn (2024)
fa_IRPersian