Оголошення Microsoft про .NET 11: нові можливості та покращення

Оголошення Microsoft про .NET 11: нові можливості та покращення

Microsoft оголосила про випуск .NET 11, останньої версії своєї безкоштовної, відкритої кросплатформеної розробницької платформи. Новинка представляє C# 15, сотні оптимізацій виконання, швидші інструменти SDK та покращення для ASP.NET Core, Blazor і .NET MAUI.

Основні зміни у C# 15

Одна з головних змін – це C# 15, що вводить об’єднувальні типи. Це дозволяє розробникам визначати значення, що представляють один з кількох зазначених типів. Компілятор перевіряє, чи всі випадки обробляються в switch-виразах, що допомагає виявляти пропущені умови на етапі компіляції.

C# 15 також вводить закриті ієрархії класів, що обмежують пряме спадкування до оголошуючого збірки. Інші нововведення мови включають розширені індексатори, аргументи колекції та пронумеровані операції break і continue.

Оптимізації у .NET 11

Що стосується продуктивності, .NET 11 містить сотні оптимізацій, які покращують швидкість виконання, використання пам’яті та якість коду. JIT-компілітор тепер може усувати більше зайвих перевірок меж і гілок, а також оптимізувати операції, коли вхідні дані відомі на етапі компіляції.

Native AOT також зазнав покращень, зокрема в інтерфейсному диспетчеризації. Тут спільний помічник зменшує розмір згенерованого коду та підвищує продуктивність для навантажень з частими викликами інтерфейсів. Розширено апаратне прискорення з підтримкою інструкцій FP16 на сумісних процесорах x64 та Arm64.

Покращення для користувачів Linux і macOS

Розробники також помітять покращення в повсякденних операціях командного рядка. SDK .NET 11 за замовчуванням дозволяє використовувати господаря CLI на основі Native AOT, що дозволяє запускати легкі команди без запуску керованого CLI. Постійний сервер MSBuild зменшує затримку старту між командами.

Для користувачів Linux та macOS установники SDK стали меншими завдяки дуплікації збірок. Linux отримує звітність про збої в процесі, яка захоплює стек трейсів, інформацію про завантажені модулі та стан виконання перед завершенням програми.

Асимптотичне програмування и стандартні бібліотеки

Ще одна важлива зміна стосується асинхронного програмування. .NET 11 вводить нову модель виконання Runtime Async, яка безпосередньо обробляє асинхронне призупинення та відновлення в режимі виконання. Однак Runtime Async залишається опціональною функцією попереднього перегляду.

Стандартні бібліотеки отримали кілька нововведень, включаючи вбудовану компресію Zstandard через System.IO.Compression, розширені API для виконання процесів та нові адаптери потоків, які дозволяють використовувати наявні буфери пам’яті як потоки без копіювання їх вмісту.

Нові можливості для веб-розробки та AI

Для веб-розробки ASP.NET Core 11 впроваджує асинхронну валідацію, що дозволяє правилам валідації виконувати запити до бази даних або інші операції вводу/виводу без блокування потоків. OpenAPI 3.2 тепер є стандартом для генерованої документації API, а з’єднання SignalR можуть оновлювати облікові дані без повторного з’єднання.

Blazor отримує новий компонент CacheView для кешування виведених компонентів під час статичного серверного рендерингу. Інтерактивні серверні програми можуть за бажанням призупиняти неактивні сесії браузера для розподілу ресурсів сервера.

Microsoft також розширила підтримку розробки AI. SDK тепер включає шаблон проекту сервера MCP, а експериментальні компоненти Blazor AI забезпечують підтримку потокового спілкування, виконання інструментів та робочих процесів схвалення користувачів.

Заключні думки: підтримка версій .NET

Наостанок, розробникам варто пам’ятати, що .NET 8 і .NET 9 більше не підтримуються з 10 листопада 2026 року. Microsoft рекомендує перейти на підтримувану версію, щоб продовжувати отримувати оновлення безпеки та обслуговування.

Додаткові деталі можна знайти в оголошенні Microsoft. .NET 11 доступний для завантаження на офіційному сайті .NET. SDK та рантайми доступні для Linux, Windows та macOS.

Зауважте, що .NET 11 є випуском стандартної підтримки з двома роками підтримки. Розробники, які надають перевагу більш тривалому життєвому циклу, можуть продовжувати використовувати .NET 10, який залишиться LTS випуском.