Реліз .NET 8: можливості платформи та шлях її розвитку

14 листопада на конференції .NET Conf 2023 компанія Microsoft представила фінальний реліз .NET 8. Кожна нова версія платформи — це, безумовно, важлива подія. Це певна віха, якою компанія підбиває підсумок того, що було раніше і окреслює вектори розвитку технологій у майбутньому.

Традиції розробки .NET, що склалися, дозволяють нам знати про те, якими можливостями, інструментами і нововведеннями потішить нас платформа задовго до офіційного релізу. Цьому факту також сприяє те, що .NET вже багато років — продукт із відкритим вихідним кодом. Але все ж таки, офіційний реліз — це гарний привід уважніше поглянути на можливості платформи та шлях її розвитку.

Я впевнений, що дуже багато з розробників, хто так чи інакше працює з .NET, уже встиг ознайомитися з анонсами нових можливостей. Тим не менш, у цій статті я постараюсь оглянути, яку роботу було проведено інженерами Microsoft та спільнотою.

Ось список компонентів платформи, які зʼявилися (або були задіяні) в процесі роботи над восьмою версією:

  • .NET Aspire
  • ASP.NET Core
  • Core .NET libraries
  • Extension libraries
  • Garbage collection
  • Configuration-binding source generator
  • Reflection improvements
  • Native AOT support
  • Performance improvements
  • .NET MAUI
  • .NET SDK
  • Globalization
  • Containers
  • Source-generated COM interop
  • .NET on Linux
  • Cross-built Windows apps
  • AOT compilation for Android apps
  • Code analysis
  • Windows Presentation Foundation
  • NuGet
  • Diagnostics

Понад двадцять пунктів! Щоб ознайомитися з усіма, я рекомендую почитати статтю What’s new in .NET 8 на порталі Microsoft Learn. Я ж зі свого боку хочу проаналізувати сфери, в яких .NET отримала нові можливості, а також проаналізувати те, чому платформа розвивається саме так, а не інакше.

Безперечно, зараз ми спостерігаємо еволюційний етап розвитку .NET, а не революційний. У цьому релізі дуже багато змін, спрямованих на те, щоб відточити платформу і ще більше наблизити її до ідеалу. І хоча нові технології акуратно запроваджуються, багато уваги приділено саме доопрацюванню та розширенню тих, що існує. Пройдемося ними детальніше.

Зручність налагодження

Інженери з Microsoft зробили багато, здавалося б, невеликих змін, які тепер роблять процес налагодження коду значно зручнішим. Так, в. NET 8 набагато зручнішим став перегляд властивостей для таких типів як-от HttpContext, HttpRequest, HttpResponse та деяких інших. Для багатьох типів було зменшено кількість зайвої інформації, що відображається. Усі ці зміни докладно розглядаються у статті Debugging Enhancements in .NET 8.

Безпека

Нова версія платформи стане безпечнішою за рахунок зміни підходу до складання контейнерів. Тепер усі контейнерні образи на базі Linux міститимуть не-root користувача, що дозволить запускати контейнери .NET без прав супер-користувача.

Це значно підвищує безпеку застосунків та екосистеми .NET — концепція найменших привілеїв використовується для обмеження можливостей потенційних зловмисників. Докладніше про це можна прочитати у статті Secure your .NET cloud apps with rootless Linux Containers.

Штучний інтелект

.NET 8 розширює можливості інтеграції з AI та Generative AI, пропонуючи покращену підтримку для роботи з великими мовними моделями та інтеграцію з різними AI-сервісами. Ви можете ознайомитися з прикладами та публікаціями, з яких дізнаєтеся, як створити свій плагін для ChatGPT, як використовувати AI для створення тексту та зображень, а також багато іншої корисної інформації. Штучний інтелект усе глибше проникає у різні сфери нашої діяльності.

Продуктивність

Команда .NET провела велику роботу з оптимізації платформи. За словами самих інженерів, «якщо .NET 7 був швидким, то .NET 8 став супершвидким!». Якщо вам хочеться дізнатися те, що саме було змінено і як це влаштовано всередині, рекомендую прочитати статтю Performance Improvements in .NET 8. Попереджу відразу, що вона дуже довга, але якщо прочитаєте повністю — завжди зможете блиснути знаннями у гарній компанії.

.NET Aspire

Говорячи про те, що .NET 8 акуратно задає нові вектори розвитку, не можна не згадати не тільки AI, а й .NET Aspire — стек для створення хмарних програм. Він містить набір компонентів, оптимізованих для роботи в хмарних середовищах, інтегруючи такі функції, як-от виявлення сервісів, телеметрію і перевірку працездатності. Наразі існує лише попередній реліз Aspire. А почитати про нього можна у статті Introducing .NET Aspire: Simplifying Cloud-Native Development with .NET 8.

Створення клієнтських програм

Microsoft продовжує розвивати технології для створення застосунків — як веб, так і десктопних. І MAUI, і Blazor активно розвиваються і поступово завойовують все більший інтерес з боку спільноти розробників.

Blazor позиціонується як повноцінний стек для побудови власних вебзастосунків. У новій версії ще більше оптимізований час завантаження сторінок, а розробники можуть використовувати Blazor Server і Blazor WebAssembly в одному додатку, який тепер ще працюватиме значно швидше завдяки новому середовищу виконання на базі Jiterpreter.

Що стосується MAUI, то тут більша частина уваги інженерів була приділена виправленню помилок — всього було змерджено понад півтори тисячі пулреквестів, які виправили близько шести сотень різних проблем. Що важливо, у цьому процесі брала участь як команда .NET MAUI, так і спільнота.

Нові версії мов

Звичайно ж, нова версія платформи містить і оновлені версії мов C# і F#.

У C# додали досить велику кількість нових можливостей: primary constructors, collection expressions, inline arrays, optional parameters in lambda expressions, ref readonly parameters, або any type, interceptors. Щоб дізнатися, що дає кожна з наведених можливостей, я рекомендую прочитати статтю What’s new in C# 12.

У новій версії F# також було реалізовано багато функцій, що роблять програми на F# більш простими та продуктивними, а код більш одноманітним. Якщо вам подобається писати у функціональному стилі, і ви шанувальник F# — обов’язково прочитайте статтю Announcing F#8.

Підсумки

За підсумками релізу нової версії .NET, хочеться сказати, що це, звичайно, дуже логічний і органічний розвиток платформи. До того ж це LTS версія, а значить, що саме на цю версію поступово переходитимуть усі більш-менш великі та серйозні проекти.

У бізнесі давно відомий такий підхід, коли спочатку ресурси вкладаються в експансію та захоплення нової частки ринку, а потім іде інвестування в якість. У світі розробки експансія .NET розпочалася приблизно 2016 року, коли .NET Core увірвався на нові для себе території.

Зараз, коли платформа вже змогла охопити величезну кількість різних напрямків, йде інвестування ресурсів у якість платформи. І хоча цей етап не несе революційних змін, він важливий і необхідний.

Якщо ви хочете стежити за тим, як розвивається платформа .NET і завжди бути в курсі останніх новин технологічного стеку Microsoft — запрошую на канал devdigest // ua.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Продуктивність .NET 8 вражає, плюс ще в тому що .NET 8 набагато краще працює в Linux ніж .NET 6

Продуктивність .NET 8 вражає

Ну заживем теперь. Продуктивности .NET Framework 2.0 нам не хватало, а вот как появился .NET 8 так все изменилось!

Не ну 2 то звісно дуже старенький, не тошо async await, а навіть TPL та лямбд і лайнкью немає.
А от з 4.5 вже норм пішло, чи коли там sync await прикрутили :-)

Интересный пример, спасибо!

Підписатись на коментарі