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

Monday, November 1, 2021

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

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті.

В выпуске: веб-версия 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.


Перейти к материалу