Кстати об анонсах и новых версиях фреймворка! Уже завтра начнется .NET Conf 2021, приуроченная к релизу .NET 6. А в этом канале мы проведем текстовую трансляция с конференции. Какие-то детали из анонсов, бенчмарки, топовые выступления — обо всем будем писать в этом канале.
Начинаем завтра, с семи часов по Москве.
Начинаем завтра, с семи часов по Москве.
.NET 6 уже с нами!
Давайте посмотрим, что нам принесла новая версия .NET:
Значительные улучшения производительности
Красивые бенчмарки на .NET Conf, а пока можно прочитать статью от разработчиков .NET о конкретных улучшениях. Улучшили очень многое, а значит, можно ожидать роста производительности сравнимого с .NET 5.
Еще больше кроссплатформенности
Эта часть в основном касается MAUI, нового фреймворка для кроссплатформенного UI. Пока он не кажется production-ready и разработчики говорят, что его окончательный релиз состоится уже после релиза .NET 6. Так или иначе, уже сейчас его можно примеривать на свои проекты. Почитать о последних изменениях в MAUI можно в блоге Microsoft.
C# 10
Новая версия языка не приносит глобальных изменений, но оно и к лучшему. Добавили немного улучшений для простых однофайловых программ, record structures (и прочие мелочи для структур), кое-какие улучшения для лямбд, интерполяции строк и так далее. Словом — много приятных мелочей без больших революций. Почитать подробнее можно в отдельной статье.
F# 6
Кажется, в F# в этом году произошло даже больше изменений, чем в C#. Улучшения для производительности и интеропа, много мелких упрощений (вроде более удобной и понятной для новичков работы с коллекциями), а также много улучшений в тулинге. Более детальный анонс лежит в блоге Microsoft.
Hot Reload
Фича, из-за которой случился здоровенный конфликт Microsoft и сообщества. Функционал самоочевиден, это возможность изменять код «на лету», без перезапуска приложения. Звучит красиво, посмотрим, насколько стабильно оно будет работать.
ASP.NET Core 6
HTTP 3, небольшие приятные изменения в API, улучшения для сокетов, типизированные заголовки и async streaming (скину дальше твит, демонстрирующий эту фичу) — много приятностей для бэка, но не меньше добавили и фронтендерского. В частности, много изменений для Blazor. Глядя на список изменений, хочется снова попробовать делать фронт на C#. Пост с изменениями доступен в блоге Microsoft.
Entity Framework Core 6
Аналогично — куча изменений и для EF Core. Они довольно хаотичные и выделить общее направление сложно — перфоманс, миграции, улучшения для LINQ, новые атрибуты для маппинга и многое другое. Пост о новом EF в порядке разнообразия лежит в документации, а не в блоге.
А еще…
А еще огромное количество всего. Улучшения в security, в отдельных API, в source generators и прочее, прочее, прочее. Детально изменения описаны в общем большом анонсе, а в действии на это все мы посмотрим уже сегодня на .NET Conf.
Давайте посмотрим, что нам принесла новая версия .NET:
Значительные улучшения производительности
Красивые бенчмарки на .NET Conf, а пока можно прочитать статью от разработчиков .NET о конкретных улучшениях. Улучшили очень многое, а значит, можно ожидать роста производительности сравнимого с .NET 5.
Еще больше кроссплатформенности
Эта часть в основном касается MAUI, нового фреймворка для кроссплатформенного UI. Пока он не кажется production-ready и разработчики говорят, что его окончательный релиз состоится уже после релиза .NET 6. Так или иначе, уже сейчас его можно примеривать на свои проекты. Почитать о последних изменениях в MAUI можно в блоге Microsoft.
C# 10
Новая версия языка не приносит глобальных изменений, но оно и к лучшему. Добавили немного улучшений для простых однофайловых программ, record structures (и прочие мелочи для структур), кое-какие улучшения для лямбд, интерполяции строк и так далее. Словом — много приятных мелочей без больших революций. Почитать подробнее можно в отдельной статье.
F# 6
Кажется, в F# в этом году произошло даже больше изменений, чем в C#. Улучшения для производительности и интеропа, много мелких упрощений (вроде более удобной и понятной для новичков работы с коллекциями), а также много улучшений в тулинге. Более детальный анонс лежит в блоге Microsoft.
Hot Reload
Фича, из-за которой случился здоровенный конфликт Microsoft и сообщества. Функционал самоочевиден, это возможность изменять код «на лету», без перезапуска приложения. Звучит красиво, посмотрим, насколько стабильно оно будет работать.
ASP.NET Core 6
HTTP 3, небольшие приятные изменения в API, улучшения для сокетов, типизированные заголовки и async streaming (скину дальше твит, демонстрирующий эту фичу) — много приятностей для бэка, но не меньше добавили и фронтендерского. В частности, много изменений для Blazor. Глядя на список изменений, хочется снова попробовать делать фронт на C#. Пост с изменениями доступен в блоге Microsoft.
Entity Framework Core 6
Аналогично — куча изменений и для EF Core. Они довольно хаотичные и выделить общее направление сложно — перфоманс, миграции, улучшения для LINQ, новые атрибуты для маппинга и многое другое. Пост о новом EF в порядке разнообразия лежит в документации, а не в блоге.
А еще…
А еще огромное количество всего. Улучшения в security, в отдельных API, в source generators и прочее, прочее, прочее. Детально изменения описаны в общем большом анонсе, а в действии на это все мы посмотрим уже сегодня на .NET Conf.
А вот демонстрация async stream в ASP.NET, которые я упоминал выше. Выглядит очень впечатляюще.
https://twitter.com/marusykroman/status/1457112602711035907?s=28
https://twitter.com/marusykroman/status/1457112602711035907?s=28
Twitter
Roman Marusyk
IAsyncEnumerable in #dotnet 6 can do this: [HttpGet] public async IAsyncEnumerable<int> Get() { for (int i = 1; i <= 10; i++) { await Task.Delay(1000); yield return i; } } code-maze.com/csharp-async-e…
Нашел в твиттере отличный тред с обзором разных возможностей нового .NET. Просто, коротко, с примерами и сравнениями.
https://twitter.com/okyrylchuk/status/1457805583898353670?s=21
https://twitter.com/okyrylchuk/status/1457805583898353670?s=21
Twitter
Oleg Kyrylchuk
The fastest .NET is here! 🎉🥳🍾 To celebrate it, I'd like to remind you about my threads describing many new features in this release. The list is not complete, of course. 😀 #dotnet6 #coding #devcommunity devblogs.microsoft.com/dotnet/announc…
.NET Conf вот-вот начнется! Трансляция уже запустилась, следить за ней можно на сайте конференции или на YouTube.
А теперь рассказывают о специальном инструменте, созданном для миграции на .NET 6. Выглядит очень классно!
https://dotnet.microsoft.com/platform/upgrade-assistant
https://dotnet.microsoft.com/platform/upgrade-assistant
Microsoft
GitHub Copilot app modernization | .NET
Use GitHub Copilot to easily upgrade your .NET applications across new versions of .NET.
Демо Blazor и MAUI вышли достаточно любопытные.
Для Blazor в основном показывали разнообразные компоненты и упрощения, но были и демонстрации улучшения перфоманса WebAssembly (а это одна из самых ожидаемых фич) и прекомпиляция.
MAUI пока выглядит слегка сыро, но действительно запускается на Windows, Mac, Android и iOS из одной и той же кодовой базы. Понятное дело, что там не самые сложные приложения, специально написанные под красивое демо и так далее, но если это будет также работать и вне демо — я куплен.
А еще там же показали интеграцию MAUI и Blazor, что очень классно с учетом разнообразных Blazor Components. Короче — поверхностный обзор выглядит перспективно. А детали покажут в следующих докладов.
Для Blazor в основном показывали разнообразные компоненты и упрощения, но были и демонстрации улучшения перфоманса WebAssembly (а это одна из самых ожидаемых фич) и прекомпиляция.
MAUI пока выглядит слегка сыро, но действительно запускается на Windows, Mac, Android и iOS из одной и той же кодовой базы. Понятное дело, что там не самые сложные приложения, специально написанные под красивое демо и так далее, но если это будет также работать и вне демо — я куплен.
А еще там же показали интеграцию MAUI и Blazor, что очень классно с учетом разнообразных Blazor Components. Короче — поверхностный обзор выглядит перспективно. А детали покажут в следующих докладов.
Исторический момент — Microsoft на своей конференции рассказывают не про свой инструмент! Dapr хвалят (во время сессии ответов на вопросы), ну ничего ж себе.
Что там в .NET?
В рассказе об успехах Blazor показали вот такой стартап, использующий Blazor. Видеоплатформа, довольно большая аудитория — выглядит как-то даже слегка нереалистично.
Кстати о Blazor и его практическом использовании. Нашел подкаст с одним из разработчиков этого сервиса, он там рассказывает об использовании Blazor в суровом проде.
https://dotnetcore.show/episode-86-real-world-blazor-with-steve-peirce/
https://dotnetcore.show/episode-86-real-world-blazor-with-steve-peirce/
The Modern .NET Show
Episode 86 - Real World Blazor With Steve Peirce
In this episode of the .NET Core Podcast we talked with Steve Peirce about Blazor, how he has used it to build real world application - a video on demand service for independent pro wrestling content - and what he's excited about in .NET 6
А теперь рассказывают про Global Usings и Implicit Usings.
Первая фича позволяет унести все общие using в один большой файл, вторая — и вовсе убрать многие Using, они будут выводиться автоматически.
Первая фича позволяет унести все общие using в один большой файл, вторая — и вовсе убрать многие Using, они будут выводиться автоматически.
Итого, что показали в демо C# 10?
- Объявление namespace без скобок и лишней вложенности
- Global и implicit using
- Record structures, улучшения для структур и более широкий функционал with
- Вывод типов для лямбд
- Немного улучшений для интерполяции строк
Как и ожидалось — ничего ломающего мозг, мелкий сахар и упрощения. Пожалуй, оно и к лучшему, мощные концептуальные изменения сейчас только излишне усложнили бы язык
- Объявление namespace без скобок и лишней вложенности
- Global и implicit using
- Record structures, улучшения для структур и более широкий функционал with
- Вывод типов для лямбд
- Немного улучшений для интерполяции строк
Как и ожидалось — ничего ломающего мозг, мелкий сахар и упрощения. Пожалуй, оно и к лучшему, мощные концептуальные изменения сейчас только излишне усложнили бы язык
Про сам доклад пока нечего сказать, в основном показывают разнообразные компоненты Blazor. Их действительно немало и выглядят они удобно, но рассказывать не о чем.