В мире разработки программного обеспечения ожидания всегда были высоки, особенно когда речь идет о таких мощных инструментах, как .NET. Microsoft представила первый кандидат на выпуск .NET 9.0, который стал следствием упорной работы команды разработчиков после нескольких предварительных версий.
Рассмотрим, какие новшества привнесли в этот релиз, и их потенциальное влияние на сообщество разработчиков. Первое, что стоит отметить — это улучшения в области сжатия данных. Microsoft старается следовать самым последним трендам в области оптимизации производительности, и поэтому в .NET 9.0 были внедрены два новых класса: ZLibCompressionOptions и BrotliCompressionOptions.
Эти классы позволяют настраивать параметры сжатия, что наверняка порадует тех, кто работает с большими объемами данных. Например, классы предлагают специальные свойства, такие как CompressionStrategy и CompressionLevel для ZLib, а также Quality для Brotli. Теперь разработчики смогут более точно управлять процессом сжатия, что приводит к повышению производительности приложений. Не менее значимыми являются улучшения в интерфейсах, которые получили платформы MAUI и Blazor. В MAUI теперь доступен новый режим выравнивания текста для элемента Label — блоковый текст (Justify).
Это открывает разработчикам больше возможностей для создания визуально привлекательных приложений под разные устройства. Разработка пользовательского интерфейса становится более интуитивной и гибкой. Blazor также получил свои обновления. Компонент <InputNumber> теперь поддерживает атрибут типа HTML, что позволит разработчикам более легко управлять типами вводимых данных. Это значительное улучшение для тех, кто создает веб-приложения, поскольку предоставляет больше возможностей по работе с пользовательскими формами.
ASP.NET Core также не остался в стороне. В новой версии стали доступны ключи в механизме внедрения зависимостей, что позволяет разработчикам иметь несколько экземпляров одного и того же класса в контейнере зависимостей. Это, в свою очередь, обеспечивает большую гибкость и позволяет использовать разные реализации для одной и той же службы. Кроме того, введена возможность управления промежуточным ПО (middleware) с использованием этих ключей, что значительно упрощает работу с объектами во время обработки запросов.
Одной из интересных функций является обновленная система взаимодействия через WebSockets. Теперь разработчики могут задать таймаут на KeepAlive, таким образом минимизируя количество потерь соединения. Это важное дополнение, учитывая, что в нашем мире все больше приложений требуют постоянного подключения к серверу, особенно в реальном времени. Еще одной мелкой, но приятной для разработчиков новинкой стал новый командный интерфейс для .NET SDK.
Команда *dotnet dev-certs https --trust*, которая раньше работала только на Windows и macOS, теперь доступна и на Linux. Это уменьшает сложность настройки окружения для разработчиков, работающих в различных операционных системах, и упрощает внедрение безопасных сертификатов в процессе разработки. Entity Framework Core также не остался без внимания. Хотя обновления здесь не всегда явно документируются, разработчики сообщают о ряде закрытых вопросов на GitHub, которые указывают на множество улучшений под капотом. Теперь, помимо использования UseSqlServer(), разработчики могут использовать UseAzureSql() или UseAzureSynapse() для подключения к облачным вариантам SQL Server.
Это открывает новые возможности для использования облачных услуг, предоставляя доступ к специфическим функциям, таким как поддержка JSON. Не обошлось и без изменений в настройках совместимости. Microsoft решилась снизить уровень совместимости для Entity Framework Core с 160 до 150. Это изменение сделано для того, чтобы соответствовать более ранней версии SQL Server, что может оказать влияние на существующие проекты, использующие новые функции последних версий базы данных. Изменения в более ранних версиях .
NET, таких как внедрение массивов и списков примитивных типов, теперь дополнены более конкретными сообщениями об ошибках при работе с вложенными массивами. Такие улучшения, хоть и мелкие, могут сэкономить разработчикам массу времени при отладке их кода. Установка .NET 9.0 больше не ограничивается версией Visual Studio 2022, поскольку Microsoft предоставляет возможность установки в качестве отдельного пакета.
Это важный шаг к обеспечению более легкого доступа к новым функциям для большего числа разработчиков. Стоит также упомянуть о том, что официальный релиз .NET 9.0 намечен на 12 ноября 2024 года. За оставшееся время ожидается выход второго кандидата на выпуск, что уже вызывает ожидания среди сообщества.
Кроме того, в ходе интервью и обсуждений на различных форумах разработчики выражают надежду на дополнительные функции и улучшения, которые могут появиться в окончательной версии. Как видно, первый кандидат на выпуск .NET 9.0 привносит множество полезных новшеств, которые могут значительно упростить жизнь разработчиков. Хотя изменения часто кажутся незначительными, они создают основу для более сложных архитектур и подходов к разработке.