.NET
November 18, 2023

Эволюция совершенства: новые горизонты .NET 8

14 ноября на конференции .NETConf 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, а не революционный. В этом релизе очень много изменений, которые направлены на то, чтобы отточить платформу и еще больше приблизить ее к идеалу. И хотя новые технологии аккуратно вводятся, много внимания уделено именно доработке и расширению существующих. Давайте пройдемся по ним детальнее.

Удобство отладки

Инженеры из Майкрософт сделали много, казалось бы, небольших изменений, которые теперь делают процесс отладки кода значительно удобнее. Так в.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». Предупреждаю сразу, что она очень длинная, но, если прочитаете полностью – всегда сможете блеснуть знаниями в хорошей компании.

.NETAspire

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

Создание клиентских приложений

Майкрософт продолжает развивать технологии для создания пользовательских приложений – как веб, так и десктопных. И 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, alias any type, interceptors. Чтобы узнать, что дает каждая из перечисленных возможностей, я рекомендую прочитать статью «What's new in C# 12».

В новой версии F# также было реализовано множество функций, делающих программы на F# более простыми и производительными, а код более единообразным. Если вам нравится писать в функциональном стиле, и вы поклонник F# – обязательно прочтите статью «Announcing F#8».

Итоги

По итогам релиза новой версии .NET, хочется сказать, что это конечно же очень логичное и органичное развитие платформы. К тому же это LTS версия, а значит, что именно на эту версию будут постепенно переходить все более-менее крупные и серьезные проекты.

В бизнесе давно известен такой подход, когда сначала ресурсы вкладываются в экспансию и захват новой доли рынка, а затем идет инвестирование в качество. В мире разработки экспансия .NET началась примерно в 2016 году, когда .NET Core ворвался на новые для себя территории. Сейчас же, когда платформа уже смогла охватить огромное количество различных направлений, идет инвестирование ресурсов в качество платформы. И хоть этот этап не несет революционных изменений, он тем не менее, важен и необходим.

Если вы хотите следить за тем, как развивается платформа .NET и всегда быть в курсе последних новостей технологического стека Microsoft – приглашаю подписаться на канал devdigest //dot net.