.NET дайджест #36: C# 9.0, .NET 5, Apple M1, Space X for Azure

Monday, November 30, 2020

Предыдущий месяц принес много весьма интересных новостей. Учитывая важность всех произошедших событий, я решил сделать небольшую паузу прежде, чем выпустить новую версию дайджеста. (Тут стоит отметить, что дело не только в том, что я хотел более взвешено подойти к материалу, который войдет в дайджест, но и в том, что для меня самого последние пару месяцев выдались довольно напряженными.)

Конечно, самое главное событие осени — это релиз .NET 5. Безусловно, это великое событие в истории платформы, которое завершает развитие ветки .NET Framework, а ветка .NET Core теперь становится основной. Microsoft убрала «Core» из названия платформы и изменила версию сразу на пятую. Более не будет двух веток, а будет единый и неделимый .NET. Стоит отдать должное компании Microsoft, которая смогла очень изящно и практически незаметно для разработчиков полностью переписать огромную платформу, сохранив совместимость с большинством существующих API.

Вместе с .NET 5 стала доступна и новая версия C# 9.0. Среди особо интересных возможностей: генераторы исходного кода, записи — новый тип класса (тип класса звучит довольно неоднозначно, но лучшего термин не смог подобрать), который поддерживает иммутабельность и инструкции верхнего уровня, которые позволяют значительно упростить код для небольших приложений и сервисов.

На релиз .NET уже успели отреагировать другие крупные игроки ІТ: Amazon выпустила новую версию AWS Toolkit for Visual Studio с поддержкой .NET 5, Oracle уже подготовила свою библиотеку ODP.NET к новой версии платформы, а RedHat заявила о том, что RHEL 7, RHEL 8 и OpenShift Container Platform полностью поддерживают .NET 5.

Помимо Microsoft, отметилась громким релизом компания Apple, которая выпустила новые модели MacBook на своем собственном процессоре. Я решил провести небольшое расследование и узнать, есть ли шанс у новых устройств от Apple получить поддержку .NET?

Несмотря на то, что релиз .NET 5 — это очень важное и интересное событие, не будем обходить вниманием Azure. Недавно в Microsoft заявили о партнерстве со Space X. Совместными усилиями компаний сеть облачных вычислений Azure будет подключена к растущему спутниковому интернет-сервису Starlink. На сегодня SpaceX запустила более 800 спутников Starlink — небольшую часть от общего количества, необходимого для глобального покрытия, но этого достаточно, чтобы начать предоставлять услуги в некоторых регионах, в том числе на северо-западе США.

Далее предлагаю более подробно ознакомиться с материалом, который попал в мое поле зрения и который может оказаться интересным (и очень надеюсь, что и полезным) для вас.

.NET

Microsoft told, ’We’re not happy’ by GitHub contributors to open-source .NET Core WPF — Microsoft заявила, что недовольна тем, как обстоят дела с .NET Core WPF. Команда Microsoft .NET Core признает, что ей необходимо лучше поддерживать участников своих проектов с открытым исходным кодом.

F# Ukraine Interview Session #1 with Vagif Abilov — интервью с Вагифом, российско-норвежским разработчиком, работающим в норвежской компании Miles. У него около трех десятилетий опыта программирования, в настоящее время он занимается созданием систем на F# и C#. Вагиф часто выступает на конференциях по программному обеспечению и участвует в некоторых проектах с открытым исходным кодом.

Introducing F# 5 — введение в F# 5.0.

Using Redis as a .NET Core Data Store — использование Redis в проектах на .NET Core.

Architecting .NET Desktop and Mobile applications — в этом руководстве представлены несколько архитектурных шаблонов, которые можно использовать для реализации общих сценариев в настольных и мобильных приложениях .NET.

Tim Deschryver — поиск утечек памяти в C#.

Understanding Disposables In .NET Dependency Injection — некоторые нюансы работы с классами, которые реализуют интерфейс IDisposable при настройке внедрения зависимостей в ASP.NET Core.

6 Best Practices to Keep a .NET Application’s Memory Healthy — шесть советов о том, как сохранить память.

Generating Code in C# — пример использования Source Generators.

Microservices with event sourcing using .NET Core — Event sourcing в .NET Core, с примерами на GitHub.

Enabling and using C# 9 features on older and «unsupported» runtimes — использование возможностей C# 9 на «неподдерживаемых» рантаймах.

Martin Björkström — Migrating WCF to gRPC — The protobuf-net way — миграция с WCF на gRPC.

Developing a Lightweight TUI Music Player in C# using Terminal.Gui (Part One) — как написать свой консольный медиаплеер на C#.

Algorithms and Data Structures in C# — сайт, посвященный изучению и имплементации алгоритмов и структур данных на языке C#.

Use ASP.NET With Turbolinks 5 — прокачайте свой ASP.NET веб-сайт с помощью TurboLinks!

Introducing DotNet.SystemCollections.Analyzers — библиотека DotNet.SystemCollections.Analyzers, которая дает возможность разработчикам принимать более эффективные решения с помощью набора микрооптимизаций.

When does Blazor decide to render your UI? — статья будет полезна для тех, кто работает с Blazor. Автор рассказывает о том, как устроен рендеринг UI в Blazor.

Use System.IO.Pipelines and System.Threading.Channels APIs to Boost Performance — увеличение производительности с использованием возможностей System.IO.Pipelines и System.Threading.Channels.

По мотивам youtube-dl — как написать загрузчик музыки на C#.

Защита .NET-кода от реверс-инженеринга с помощью ConfuserEx 0.6.0 — хорошему программисту обфускатор не нужен — он сразу пишет обфусцированный код. Но все же, если вы пока не дошли до такого уровня мастерства написания кода, то эта статья для вас.

Ленивая инициализация в C# — про то, чем хороша отложенная инициализация и как ее реализовать.

Представляем .NET Live TV — ежедневные лайв-стримы для разработчиков — то, о чем вы всегда мечтали, произошло! Вам больше не нужна подписка на Netflix, вы можете выкинуть ваш телевизор и отключить спутник. Ведь теперь есть .NET TV!

Отлаживайте ваши приложения .NET Core в WSL 2 с Visual Studio — преимущества отладки .NET Core проектов с использованием WSL 2.0 и Visual Studio.

.NET в целом: обзор от Скотта Хансельмана — обзор .NET от Скотта Хансельмана — одного из самых значимых специалистов в мире .NET.

mj1856/TimeZoneConverter — вышла новая версия TimeZoneConverter. Это библиотека для быстрого преобразования между часовыми поясами IANA, Windows и Rails. TimeZoneConverter.Posix также добавляет поддержку часовых поясов POSIX, которые полезны при работе с IoT.

KorzhCom/EasyData — вышел EasyData 1.1! EasyData — это библиотека с открытым кодом для проектов на ASP.NET Core + Entity Framework Core, которая позволяет получить полную CRUD-функциональность лишь за несколько строк кода. EasyData использует декларативный подход: все формы и диалоги генерируются автоматически при выполнении с помощью информации из вашего DbContext.

What’s new in C# 9.0 — тезисно про нововведения в C# 9.0.

New Features in Visual Studio 2019 v16.8 Preview 3.1 — новые возможности Visual Studio 2019.

The future of .NET Standard — релиз .NET 5 произойдет уже очень скоро. Помимо изменений в самом .NET, нас ждут изменения, связанные с .NET Standard.

Game Development with .NET — знаете и умеете .NET, давно хотели заняться гейм-девелопментом, но считали, что столь серьезная платформа не рассчитана на создание игр? Ребята из Microsoft готовы показать вам, что это не так.

gRPC performance improvements in .NET 5 — в .NET 5 нас ждет ряд улучшений при работе с gRPC.

Announcing ASP.NET Core in .NET 5 — ASP.NET в .NET 5.

Reactive Programming: Hot Vs. Cold Observables — шаблон «наблюдатель» лежит в основе реактивного программирования. Наблюдаемые объекты бывают двух видов: горячие и холодные. В этой статье объясняется, как определить разницу между ними. Основное внимание уделяется горячим объектам. Приведенные здесь концепции относятся ко всем языкам, поддерживающим реактивное программирование.

ILogger and Null Object Pattern — применение Null Object паттерна при логировании.

C#9 records: immutable classes — record — это давно ожидаемая возможность, которую теперь предлагает C# 9! Тип record предназначен для удобного создания неизменяемых структур.

Test-driving C# Source Generators — пример реального использования Source Generators.

Moving away from Visual Studio to JetBrains Rider — миграция с Visual Studio на Rider.

Astonishing Performance of .NET 5 — .NET 5 стал гораздо производительнее.

Azure

Azure + Spring Boot = Serverless — Q&A with Julien Dubois — особенности работы Java и Spring Boot в облаке Azure.

New for Blazor: Azure Static Web Apps Support — в Azure Static Web Apps появится поддержка Blazor.

Ignite 2020: New serverless and analytics capabilities announced — новые возможности Cosmos DB.

Azure and Application Development news with Julia White and Frank Shaw — новости Azure и разработки приложений с Джулией Уайт и Фрэнком Шоу.

Collect and Automate Diagnostic Actions with Azure App Services — диагностика Azure App Services.

Microsoft построит в Украине два дата-центра — очень крутая новость: в Украине будет построено два новых дата-центра Microsoft.

How to add and secure a custom domain on your App Service web app — в этом видео вы узнаете о том, как привязать доменное имя к веб-приложению, и о том, как защитить свой домен с помощью управляемого сертификата службы приложений.

Обучающие вебинары по Microsoft Azure с субтитрами на русском в ноябре — подборка отличных обучающих материалов.

.NET 5 now available in App Service — NET 5 теперь поддерживается Azure App Services.

Статические веб-приложения Azure с .NET и Blazor — сегодня в статических веб-приложениях Azure реализована первоклассная поддержка Blazor WebAssembly и .NET Functions в ознакомительной версии во всех регионах ее действия. Это было одним из ключевых запросов пользователей с момента объявления о выпуске статических веб-приложений на конференции Build. Вы можете разрабатывать и развертывать клиентские и бессерверные API-интерфейсы, созданные полностью на языке .NET.

Xamarin

Build Xamarin.iOS apps using iOS 14 and Xcode 12 — iOS 14 уже ушла в релиз, поэтому стоит посмотреть, что предлагает Xamarin для лучше интеграции ваших приложений с новой версией мобильной ОС от Apple.

Replicating User Profile UI — на этой неделе к Джеймсу присоединяется Леомарис Рейес, MVP Microsoft, который шаг за шагом проведет нас через создание красивого пользовательского интерфейса с помощью Xamarin.Forms.

Xamarin.Forms 5 Is Here! — новый релиз Xamarin.Forms 5.0! В него вошли последние релизы Brushes, CarouselView, Drag & Drop, RadioButton, Shapes и многое другое.

Xamarin.Forms 5: Beautiful and Fast Apps with Less Code — Xamarin.Forms 5 получил ряд новых возможностей, которые упрощают разработку быстрых, красивых и кроссплатформенных приложений.

Recapping Xamarin Highlights from .NET Conf 2020 — главные ананасы по Xamarin с недавно прошедшей .NET Conf 2020.

Data Science

ML.NET September Updates — новый выпуск ML.NET содержит множество улучшений, включающих возможность обучения моделей обнаружения объектов с помощью Azure ML и Model Builder. Теперь вы можете локально обучать модели классификации изображений с помощью интерфейса командной строки ML.NET.

Новейшая технология Microsoft, появившаяся в Azure AI, описывает изображения так же хорошо, как и люди — исследователи из Microsoft создали систему искусственного интеллекта, способную генерировать подписи к изображениям, которые во многих случаях оказываются более точными, чем описания, сделанные людьми. Этот прорыв стал важной вехой в стремлении Microsoft сделать свои продукты и услуги инклюзивными и доступными для всех пользователей.

Послесловие

Несмотря на эпидемию коронавируса, которая довольно сильно повлияла на весь мир, в том числе на ІТ-индустрию, год выдался интересным с точки зрения значимых событий. Я буду и дальше следить за всем тем, что происходит в мире дотнета, и по возможности оперативно делиться этим с вами.


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


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