Publications / .NET Дайджест #40: уход в отставку руководителя .NET Foundation, отмена и возврат Hot Reload в .NET 6, анонс Visual Studio 2022

DOU

DOU.ua is a leading Ukrainian web portal dedicated to IT and software development. It offers a comprehensive blend of industry news, expert articles, job listings, and vibrant forums, serving as an essential resource for IT professionals and tech enthusiasts in Ukraine and beyond.


Monday, 01 November 2021

В выпуске: веб-версия Visual Studio Code, команда ML.NET включит в план работ поддержку NER, новые возможности F# 6, Владимир Зеленский хочет построить дата-центр Azure в Украине, HTTP/3 в ASP.NET, новые возможности linq в .NET 6, SOLID в C#, использование кортежей в C#.

Последние пару месяцев выдались довольно горячими для .NET комьюнити. Помимо грядущего релиза .NET 6, сообщество всколыхнули сразу несколько громких событий.

Критика и уход исполнительного директора .NET Foundation

Первое событие связано с .NET Foundation — организацией, зарегистрированной в 2014 году, целью которой была задекларирована помощь в улучшении программного обеспечения с открытым исходным на базе .NET, а также развитие платформы .NET и сотрудничество с командой разработки .NET.

Исполнительный директор .NET Foundation Клэр Новотны подверглась критике за то, что смерджила пулреквест в одном из репозиториев без обсуждения с сообществом. Примечательно, что речь идет о проекте ReactiveUI, в котором Клэр была соавтором еще задолго до того, как заняла свою должность в .NET Foundation. Сам же коммит представлял собой добавление зависимости в виде пакета DotNet.ReproducibleBuilds. Казалось бы, небольшое изменение в проекте стало частью крупной дискуссии вокруг .NET Foundation и того, как менеджмент этой организации взаимодействует с ее участниками.

Через некоторое время Клэр написала письмо, в котором принесла извинения за то, что нарушила правила внесения изменений в исходный код проекта, так также заявила о том, что уходит со своего поста. В свою очередь Шон Вильдермут, член совета директоров .NET Foundation, написал, что совет директоров рассмотрел заявление Клэр и принял его, так что теперь необходимо будет избрать нового исполнительного директора.

Коммит, удаляющий поддержку Hot reload

Второе, не менее громкое событие связанно уже с процессом разработки и подготовки к релизу .NET 6. 20 октября был смерджен пулреквест, удаляющий функциональность hot reload из .NET 6. Чтобы было понятно, о чем речь — функция hot reload позволяет применять изменения в исходном коде на лету, без приостановки приложения. Эта весьма удобная и полезная для отладки возможность была аноснирована Дмитрием Лялиным еще в мае. В своей новой публикации Дмитрий объявил о том, что эта функция будет доступна только для пользователей Visual Studio 2022. Данное решение вызвало обширное обсуждение и протест в сообществе разработчиков.

Решение убрать поддержку hot reload выглядело очень неоднозначно еще и потому, что складывалась ситуация, при которой Visual Studio получала преимущество перед альтернативными инструментами разработки. Об этом свидетельствует например пост Халида Абухакмех, где он пишет в блоге JetBrains о том, что Rider будет иметь поддержку функциональности hot reload, реализованную независимо от функции dotnet-watch, которая на тот момент была исключена из релиза.

К чести команды разработчиков платформы .NET, они довольно быстро признали, что совершили ошибку. Об этом написал в блоге платформы Скотт Хантер. Он принес извинения перед сообществом и поблагодарил за активное обсуждение. 23 октября коммит, удаляющий поддержку hot reload был отключен.

Этот поступок не только вызывает уважение за способность признания собственных ошибок, но и развеивает сомнения отдельных участников сообщества .NET о том, что Microsoft занимает исключительно доминирующую позицию в процессе разработки и не считается с мнение сообщества.

Релиз веб-версии Visual Studio Code

Ну и чтобы несколько разбавить напряженную повестку последних дней, думаю, стоит сказать об однозначно позитивном анонсе, который состоялся совсем недавно — релизе веб-версии Visual Studio Code. Не секрет, что VS Code уже был встроен в разных вариантах уже был встроен как в сервисы самой компании Microsoft в GitHub Codespace, и в Azure App Service Editor, так и в сторонние коммерческие проекты, такие как Gitpod. Теперь же мы видимо полноценный законченный продукт, который поддерживает как интеграцию с GitHub, так и работу с локальными проектами. Также есть возможность установки расширений, правда пока далеко не всех — большая часть расширений пока что поддерживаются только десктопной версией VS Code. Веб-версия Visual Studio может работать на планшетах, что может быть полезно тем, кто поехал в отпуск без ноутбука, и решил немного пописать код.

Напомню также, что совсем скоро состоится запуск .NET 6, это произойдет 9 ноября на трехдневной конференции .NET Conf 2021, сразу после мероприятия Visual Studio 2022 Launch Event, на котором будет представлена новая версия IDE.

Далее предлагаю ознакомиться с другими материалами, которые я подготовил для вас за это время.

.NET

Tutorial: как портировать проект с Interop Word API на Open XML SDK — портирование приложений использующих Interop Word API на Open XML SDK.

String Interpolation in C# 10 and .NET 6 — работа со строками в C#10 и .NET 6.

Using SignalR in your Blazor applications — в этом эпизоде ON .NET Show Дэвид Пайн и Джереми продемонстрируют пример приложения с поддержкой чат-бота, которое работает на Blazor WASM и SignalR.

New .NET 6 APIs driven by the developer community — новые API в .NET 6 и ASP.NET Core.

C# Language Highlights Deconstructing Non-tuple Types — деконструкция типов, не являющихся кортежами.

.NET Core 2.1 container images will be deleted from Docker Hub — Microsoft удаляет образы .NET Core 2.1 из Docker Hub. Это значит, что тем, кто использует эти образы, придется обновить докерфайлы и переписать пути на новые.

ReSharper 2021.2.1 and Rider 2021.2.1 Bug Fixes Are Out — JetBrains подготовили обновления для Rider и ReSharper.

Large Numbers of Bindings With RabbitMQ — исследование на тему того, как ведет себя RabbitMQ при большом количестве биндингов. В статье также есть ссылка на исходный код тестов на C#.

Using the Console Log formatter — в этом выпуске ON .NET Show вы узнаете о новых возможностях логирования в .NET.

.NET locking in an Async Method — пример простого использования лока в асинхронном методе.

File IO improvements in .NET 6 — в .NET 6 FileStream стал намного быстрее и надежнее благодаря тому, что его практически полностью переписали.

Release v2.1.0 · PragmaticFlow/NBomber — вышла новая версия NBomber — инструмента для нагрузочного тестирования с открытым исходным кодом.

Build .NET Search Experiences With Lunr-Core — использование Lunr в качестве альтернативы Elasticsearch.

Multitenancy in ASP.NET Core — Simplest Way to achieve Multitenancy — создание мультитенант систем с использованием ASP.NET Core.

Build Next-Generation Microservices with .NET 5 and gRPC on AWS — команда разработчиков из Amazon подготовила материал о том, как создавать микросервисы используя .NET 5, gRPC и кончено же AWS.

S.O.L.I.D. Principles of Object-Oriented Programming in C# — тот самый SOLID, про который тебя обязательно спросит на собеседовании интервьюер, даже если сам не помнит, что это значит.

C# - Gotchas with switch expression — разбор очень интересного и не очевидного поведения switch expression в C#.

csharplang/LDM-2021-08-30.md at main · dotnet/csharplang — перечень предлагаемых к реализации возможностей C# 11.

NBomber Сluster overview — NBomber Cluster может запускать тесты NBomber распределенным образом. NBomber Cluster доступен в версии Enterprise, включая бесплатный пробный период.

HTTP/3 support in .NET 6 — в .NET 6 будет поддержка HTTP/3.

How To Desktop in 2022 — обзор различных технологий для создания десктопных приложений.

Async processing of long-running tasks in ASP.NET Core — асинхронная обработка длительных задач в ASP.NET Core.

Common web application architectures — основные виды архитектуры веб-приложений.

A look at the upcoming improvements to LINQ in .NET 6 — про нововведения в Linq в .NET 6.

6 Essential Tools to Detect and Fix Performance Issues in .NET — 6 инструментов для диагностики производительности приложений на .NET.

How to Use C#’s Parallel.ForEach — советы по использованию Parallel.ForEach.

Compress Strings With .NET and C# — способы сжатия текста в .NET.

Profiling and Fixing Common Performance Bottlenecks — выявление и устранение узких мест в производительности приложений — запись веб-семинара от JetBrains.

Ahead-Of-Time Compilation for Blazor Wasm — в AOT режиме .NET приложение превращается в чистые WebAssembly бинарники сразу при сборке. В рантайме не происходит никакой интерпретации — код выполняется как обычный WebAssembly-код.

The simplicity of ASP.NET Endpoints — использование библиотеки MediatR и применение паттерна Медиатор для упрощения роутинга в ASP.NET приложении.

4 new useful APIs in .NET 6 — новые возможности ASP.NET в .NET 6.

ReSharper 2021.2.2 and Rider 2021.2.2 bug fixes have landed — JetBrains обновили ReSharper и Rider — исправлены баги, улучшена производительность.

Introducing DevOps-friendly EF Core Migration Bundles — миграции в EF Core используются для создания обновлений схемы базы данных на основе изменений в модели EF. Эти обновления схемы следует применять во время развертывания приложения как часть системы непрерывной интеграции или непрерывного развертывания (CI/CD). Теперь доступен новый способ применения этих обновлений: пакеты миграции. Пакет миграции — это небольшой исполняемый файл, содержащий и миграции, и код, необходимый для применения этих миграций к базе данных.

Querying with ADO.NET and F# — работа с ADO.NET из F#.

What’s new in F# 6 — новые возможности F# 6.

7 awesome improvements for LINQ in .NET 6 — свежее видео про новые возможности linq.

Revert «Remove Hot Reload support from dotnet watch (#22217)» by 3nprob · Pull Request #22262 · dotnet/sdk — нашумевшая история с hot reload получила счастливое завершение — мнение комьюнити было услышано командой разработки.

F# 6 Introduces Resumable Code, Improvements to Pattern Matching and Tooling, and More — новые возможности F# 6.

Top .NET Developer Skills According to Tech Leaders and Experts — какими навыками и знаниями должен обладать хороший .NET-разработчик?

Using Tuples in C# to Initialize Properties in the Constructor and to Deconstruct Your Object — использование кортежей в C#.

Azure

ChaosDB: How we hacked thousands of Azure customers’ databases — история взлома пользователей Cosmos DB.

Java on Azure — Microsoft помогает переносить проекты на legacy-технологиях в облако.

«Secret» Agent Exposes Azure Customers To Unauthorized Code Execution — компания Wiz, которая занимается вопросами безопасности облачных технологий, обнаружила уязвимость в Microsoft Azure. Уязвимость затрагивает виртуальные машины под управлением ОС Linux. Уязвимость под названием OMIGOD содержится в службе OMI (Open Management Interface).

Zelensky meets with Microsoft President — президент Украины Владимир Зеленский во время встречи с руководством корпорации Microsoft в Нью-Йорке в рамках визита в США предложил создать на территории Украины дата-центр облачного сервиса Azure.

Microsoft Announces Azure Functions 4.0 with .NET 6 Support in Preview — компания Microsoft заявила о выпуске Azure Functions 4.0 с поддержкой .NET 6 в предварительной версии.

Tip 228 — Part 1 — Get started with .NET Core on Kubernetes with Azure Dev Spaces — начало работы с .NET Core в Kubernetes и Azure Dev Spaces.

Modeling and Partitioning in Cosmos DB — Марк Браун, главный менеджер программы Azure Cosmos DB, расскажет о партиционировании в Cosmos DB и о том, какие модели данных лучше использовать.

Data science

Quantum-inspired algorithms and the Azure Quantum optimization service — выпуск Azure Friday, в котором вы узнаете, как квантовые алгоритмы имитируют квантовую физику для решения сложных задач оптимизации. Квантовая оптимизация (QIO) использует самые современные алгоритмические методы из квантовой физики и делает эти возможности доступными в Azure на обычном оборудовании.

Data analysis with PyTorch and Windows ML — команда Windows ML подготовила публикацию «Анализ данных с помощью Pytorch и машинного обучения Windows».

VS Code Uses ML to Detect Programming Language, Set Mode — VS Code теперь умеет определять язык программирования, используемый в открытом файле с помощью машинного обучения.

Machine Learning Community Standup — Office Hours & Announcements — запись созвона Machine Learning Community.

Xamarin

How to Migrate Xamarin.Forms Apps to .NET MAUI — как перенести приложение Xamarin.Forms на .NET MAUI.

Visual Studio 2022 for Mac Preview 1 is now available! — вышла первая предварительная версия Visual Studio 2022 for Mac. К финальной версии компания обещает полную поддержку .NET MAUI — на данный момент поддержка этой технологии уже реализована, но в весьма ограниченном виде.

Announcing .NET MAUI Preview 9 — .NET MAUI — это следующий этап в эволюции Xamarin.Forms. На данный момент доступна уже девятая предварительная версия .NET MAUI.

Послесловие

Чтобы не пропустить ничего интересного до выхода следующего выпуска — следите за новостями про
.NET
, Azure и Xamarin в Telegram. Все главные публикации ДОУ читайте здесь. А теперь еще можно читать новости прямо в Slack: devdigest.today/join.


Read publication