Реліз .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», щоб не пропустити нові технічні статті
6 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів