Вышел ежемесячный сборник новостей о .NET от JetBrains!
Из интересного, помимо очевидных релизов, там есть гайд по .NET разработке на новых M1 маках, ответ на вопрос «как работать с DI в Minimal API», а также интересная статья о том, как Source Generators могут сделать ваш код более уязвимым для атак. Советую пройтись, подборка получилась хорошая.
https://blog.jetbrains.com/dotnet/2021/12/09/net-annotated-monthly-december-2021/
Из интересного, помимо очевидных релизов, там есть гайд по .NET разработке на новых M1 маках, ответ на вопрос «как работать с DI в Minimal API», а также интересная статья о том, как Source Generators могут сделать ваш код более уязвимым для атак. Советую пройтись, подборка получилась хорошая.
https://blog.jetbrains.com/dotnet/2021/12/09/net-annotated-monthly-december-2021/
В .NET сообществе очередная драма: все обсуждают предлагаемый в C# 11 оператор !!
Идея простая: оператор добавляется к сигнатуре параметра функции и означает запрет null. То есть если параметр, отмеченный таким оператором, будет равен null — вы получите исключение.
Вопросов у людей много. Зачем нужен оператор, который просто заменяет NullReferenceExceptions на ArgumentNullExceptions? Не странно ли это сочетается с nullable типами, зачем добавлять такую механику «сбоку»? Почему, в конце концов, два восклицательных знака?
Следить за дискуссией вы можете в этом issue в репозитории dotnet.
Идея простая: оператор добавляется к сигнатуре параметра функции и означает запрет null. То есть если параметр, отмеченный таким оператором, будет равен null — вы получите исключение.
Вопросов у людей много. Зачем нужен оператор, который просто заменяет NullReferenceExceptions на ArgumentNullExceptions? Не странно ли это сочетается с nullable типами, зачем добавлять такую механику «сбоку»? Почему, в конце концов, два восклицательных знака?
Следить за дискуссией вы можете в этом issue в репозитории dotnet.
Совсем забыл написать: на прошлой неделе вышел .NET 7 Preview 1.
Если кратко пробежаться по анонсу, то основной фокус сделан на приближающемся релизе MAUI, улучшениях для облачных приложений и упрощении миграции со старых версий.
Но это только на поверхности. В анонсах ASP.NET, Entity Framework и в отдельных issue на GitHub можно найти много интересных деталей. Так что ждите отдельных постов о самых интересных изменениях на этой неделе.
Если кратко пробежаться по анонсу, то основной фокус сделан на приближающемся релизе MAUI, улучшениях для облачных приложений и упрощении миграции со старых версий.
Но это только на поверхности. В анонсах ASP.NET, Entity Framework и в отдельных issue на GitHub можно найти много интересных деталей. Так что ждите отдельных постов о самых интересных изменениях на этой неделе.
Microsoft News
Announcing .NET 7 Preview 1
Announcing .NET 7 Preview 1, the first preview of a major .NET version that will focus on app modernization, cloud native, containers and more.
А пока можете почитать недавно вышедший выпуск .NET Annotated Monthly.
В этом месяце там много интересных туториалов: например, гайд по разработке игры с помощью MAUI или статья от Стива Фентона, помогающая лучше понять LINQ.
В этом месяце там много интересных туториалов: например, гайд по разработке игры с помощью MAUI или статья от Стива Фентона, помогающая лучше понять LINQ.
The JetBrains Blog
.NET Annotated Monthly | February 2022 | The .NET Tools Blog
Did you know? On Windows, it's not possible to create a folder named "con". Windows will display a dialog saying "The specified device name is invalid". That's because “con” is a reserved word dating
Простой пример полезности PGO от Бартоша Адамчевски.
Если кто-то забыл, Profile Guided Optimisations это одна из основных фич .NET 6. Подробнее о ней можно почитать в статье Егора Богатова.
Если кто-то забыл, Profile Guided Optimisations это одна из основных фич .NET 6. Подробнее о ней можно почитать в статье Егора Богатова.
Графика с историей версий .NET к двадцатилетию платформы
https://nietras.com/2022/02/13/dotnet-and-csharp-versions/
https://nietras.com/2022/02/13/dotnet-and-csharp-versions/
И еще немного интересностей. В эту пятницу пройдет митап со Стасом Сидристым, на котором он расскажет о потоках и пуле потоков в .NET. С хардкором и реализацией собственного пула, все как положено.
Регистрация вот тут, 25 февраля, 17:00 по Москве
Регистрация вот тут, 25 февраля, 17:00 по Москве
eventskbkontur.timepad.ru
Как работают потоки в .NET и зачем нужен пул потоков / События на TimePad.ru
Мы возвращаемся с очередным митапом DotEducation. На этот раз в центре внимания работа с потоками в .NET.
Что там с релизом MAUI?
Неделю назад вышло уже тринадцатое превью MAUI и многим интересно — много ли еще осталось реализовать и когда будет релиз?
Если кратко — релиз скоро, а реализована большая часть вещей, которые Microsoft планируют сделать до релиза. Отслеживать текущий статус MAUI можно на соответствующей странице в репозитории проекта.
Пока самые большие сомнения вызывает решение Microsoft отдать поддержку Linux на откуп сообществу. На текущий момент за ее реализацией можно наблюдать в этом форке, но отсутствие официальной поддержки огорчает.
Неделю назад вышло уже тринадцатое превью MAUI и многим интересно — много ли еще осталось реализовать и когда будет релиз?
Если кратко — релиз скоро, а реализована большая часть вещей, которые Microsoft планируют сделать до релиза. Отслеживать текущий статус MAUI можно на соответствующей странице в репозитории проекта.
Пока самые большие сомнения вызывает решение Microsoft отдать поддержку Linux на откуп сообществу. На текущий момент за ее реализацией можно наблюдать в этом форке, но отсутствие официальной поддержки огорчает.
Microsoft News
Announcing .NET MAUI Preview 13
.NET MAUI Preview 13 has shipped with more controls, layout updates, and performance improvements.
К слову о MAUI. Недавно прошла конференция .NET Frontend Day, привлекающаяся к себе внимание как минимум названием.
Очевидно, ее основной темой были доклады, посвященные разным UIным технологиям — Blazor, Xamarin и MAUI. Так вот, наткнулся в Твиттере на приличный обзор докладов с конференции, советую обратить внимание.
https://blog.taranissoftware.com/net-frontend-day-2022-xamarin-and-maui-recap
Очевидно, ее основной темой были доклады, посвященные разным UIным технологиям — Blazor, Xamarin и MAUI. Так вот, наткнулся в Твиттере на приличный обзор докладов с конференции, советую обратить внимание.
https://blog.taranissoftware.com/net-frontend-day-2022-xamarin-and-maui-recap
Sailing the Sharp Sea
.NET Frontend Day 2022: Xamarin & MAUI Recap
.NET Frontend Day 2022 had a great line-up of speakers and topics. I highlight the sessions that were of most interest to Xamarin and .NET MAUI developers.
Отличный пример полезности Source Generators из анонса .NET 7 это клиент для SignalR на основе генераторов. Удобная типизация и хороший перфоманс.
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-7-preview-1/#signalr-client-source-generator
https://devblogs.microsoft.com/dotnet/asp-net-core-updates-in-net-7-preview-1/#signalr-client-source-generator
Microsoft News
ASP.NET Core updates in .NET 7 Preview 1
.NET 7 Preview 1 is now available! Check out what's new in ASP.NET Core in this update and learn about the roadmap for ASP.NET Core in .NET 7.
Разумеется, самый заметный пример использования Source Generators это обновленный Regex. Заметнее всего здесь выигрыш по перфомансу, но помимо всего прочего, использование генераторов снижает вероятность случайной ошибки.
Неплохой разбор можно увидеть в этом видео.
Неплохой разбор можно увидеть в этом видео.
YouTube
How Regex got so much faster in .NET 7
Check out my courses: https://dometrain.com
Become a Patreon and get source code access: https://www.patreon.com/nickchapsas
Hello everybody I'm Nick and in this video I will talk about the huge performance improvements in .NET 7 and more specifically in…
Become a Patreon and get source code access: https://www.patreon.com/nickchapsas
Hello everybody I'm Nick and in this video I will talk about the huge performance improvements in .NET 7 and more specifically in…
Microsoft наконец-то показали планы на C# 11!
Полный анонс можно найти в официальном блоге, а пока обозначим основные моменты:
- Паттерн матчинг для листов и массивов
- Оператор для проверки параметров на null, о нем мы уже писали
- Перенос строк в интерполированных строках
Новый функционал можно попробовать уже сейчас с Visual Studio 17.1 и .NET SDK 6.0.200
Полный анонс можно найти в официальном блоге, а пока обозначим основные моменты:
- Паттерн матчинг для листов и массивов
- Оператор для проверки параметров на null, о нем мы уже писали
- Перенос строк в интерполированных строках
Новый функционал можно попробовать уже сейчас с Visual Studio 17.1 и .NET SDK 6.0.200
Microsoft News
Early peek at C# 11 features
Learn about the C# 11 preview features you can try out in Visual Studio 17.1 and the .NET SDK version 6.0.200.
По плану изменений на .NET 7 очевидно, что один из главных приоритетов Microsoft это доведение до ума Blazor Hybrid.
Для тех, кто пропустил — это возможность встраивать Blazor в десктопные и мобильные приложения. По сути, очень сильно прокачанный Electron — с возможностью встраиваться в приложения, одним процессом и не съедающий всю вашу память.
Пока непонятно, что из этого получится, но будем следить за прогрессом.
Для тех, кто пропустил — это возможность встраивать Blazor в десктопные и мобильные приложения. По сути, очень сильно прокачанный Electron — с возможностью встраиваться в приложения, одним процессом и не съедающий всю вашу память.
Пока непонятно, что из этого получится, но будем следить за прогрессом.
В твиттере недавно напомнили об одной из лучших .NET статей, связанных с функциональным программированием.
В ней очень точно, детально и с кучей примеров описано, как и зачем отделять чистый код. Очень советуем посмотреть: это не абстрактные идеи, а очень конкретная и полезная практика организации кода.
https://tyrrrz.me/blog/pure-impure-segregation-principle
В ней очень точно, детально и с кучей примеров описано, как и зачем отделять чистый код. Очень советуем посмотреть: это не абстрактные идеи, а очень конкретная и полезная практика организации кода.
https://tyrrrz.me/blog/pure-impure-segregation-principle
Oleksii Holub
Pure-Impure Segregation Principle • Oleksii Holub
Two months ago I published an article detailing why I think that Unit Testing is Overrated, which seemed to resonate quite a lot with readers, prompting very involved and interesting discussions. And although most commenters mainly shared their personal…
Еще одна область улучшений в .NET 7, за которой стоит наблюдать, это NativeAOT.
Следить за прогрессом можно в соответствующей issue на GitHub.
Пока сделано немного, но судя по планируемым изменениям Microsoft надеются в .NET 7 сделать AOT полноценной частью фреймворка, готовой к использованию в проде.
Следить за прогрессом можно в соответствующей issue на GitHub.
Пока сделано немного, но судя по планируемым изменениям Microsoft надеются в .NET 7 сделать AOT полноценной частью фреймворка, готовой к использованию в проде.
GitHub
NativeAOT in .NET 7 · Issue #61231 · dotnet/runtime
.NET 6 improvements listed here: dotnet/runtimelab#336 We're now planning the following improvements for NativeAOT in the .NET 7 timeframe: Goals: For .NET 7 we want to enable NativeAOT for con...
Про Entity Framework в анонсе нового .NET почти ничего не рассказали: «небольшие багфиксы и подготовка к основным изменениям».
А про планируемые изменения рассказывали ребята из команды EF в Community Standup, советую посмотреть запись
https://www.youtube.com/watch?v=nU-mtUtbHV4
А про планируемые изменения рассказывали ребята из команды EF в Community Standup, советую посмотреть запись
https://www.youtube.com/watch?v=nU-mtUtbHV4
YouTube
Entity Framework Community Standup - The EF7 Plan
The plan for EF7 has been published. In this episode, the EF Core/.NET Data team will review the details of the plan and answer live questions about the roadmap.
Community Links: https://www.theurlist.com/efcore-standup-2022-01-12
Featuring: Arthur…
Community Links: https://www.theurlist.com/efcore-standup-2022-01-12
Featuring: Arthur…
Кстати, совсем недавно вышел еще один Community Standup по EF, приуроченный к двадцатилетию дотнета. Там собрались разработчики EF из прошлого и травили истории о том, как мы дошли до жизни такой. Советую посмотреть, очень интересно вышло.
https://youtu.be/kiPHP0KuSzM
https://youtu.be/kiPHP0KuSzM
YouTube
.NET Data Community Standup - Celebrating 20 Years of .NET: Entity Framework
As .NET celebrates its 20th birthday, Entity Framework approaches its 10-year anniversary of going open source. The Entity Framework team will celebrate these milestones by inviting back the engineers and program managers who helped shipped previous versions…
Issue, с которым важно познакомиться до выхода .NET 7: планируемые breaking changes
В нем описывается, что будет ломать совместимость в новой версии .NET и почему. Советую посмотреть, поможет подготовиться к переходу на новую версию.
В нем описывается, что будет ломать совместимость в новой версии .NET и почему. Советую посмотреть, поможет подготовиться к переходу на новую версию.
GitHub
Proposed .NET 7 Breaking Changes · Issue #7131 · dotnet/core
The following list defines breaking changes that are proposed for .NET 7. Implemented: dotnet/runtime#67022 dotnet/runtime#69902 dotnet/sdk#22314 Planned for .NET 7: dotnet/sdk#23551 Unclear plan: ...
Что произошло за март?
В прошедшем месяце нам было совсем не до новостей, а несколько важных вещей в мире .NET все же произошло. Давайте пока пройдемся по ним кратко, а в ближайшую неделю мы еще накидаем больше детальных материалов.
Во-первых, вышло второе превью .NET 7. Ничего глобального, самым интересным пока выглядит добавление Source Generator для Regex и продолжающаяся работа над полноценным внедрением AOT. Также вышло и превью ASP.NET Core, в нем в основном представили мелкие приятные улучшения в API.
В том же ряду и очередное превью MAUI, уже четырнадцатое. Текущий результат выглядит очень близким к релизу, так что совсем скоро стоит ожидать появления RC версий.
Ну и один из самых важных анонсов это окончание поддержки .NET 5. Пятый .NET не был LTS, так что он поддерживается Microsoft всего в течение 18 месяцев. Официальная дата окончания поддержки — 8 мая, так что появляется отличный повод перейти на LTS версию, .NET 6.
В прошедшем месяце нам было совсем не до новостей, а несколько важных вещей в мире .NET все же произошло. Давайте пока пройдемся по ним кратко, а в ближайшую неделю мы еще накидаем больше детальных материалов.
Во-первых, вышло второе превью .NET 7. Ничего глобального, самым интересным пока выглядит добавление Source Generator для Regex и продолжающаяся работа над полноценным внедрением AOT. Также вышло и превью ASP.NET Core, в нем в основном представили мелкие приятные улучшения в API.
В том же ряду и очередное превью MAUI, уже четырнадцатое. Текущий результат выглядит очень близким к релизу, так что совсем скоро стоит ожидать появления RC версий.
Ну и один из самых важных анонсов это окончание поддержки .NET 5. Пятый .NET не был LTS, так что он поддерживается Microsoft всего в течение 18 месяцев. Официальная дата окончания поддержки — 8 мая, так что появляется отличный повод перейти на LTS версию, .NET 6.