.NET дайджест #34: Build 2020, .NET 6 и суперкомпьютер для Илона Маска
Важным событием прошедших дней стала конференция для разработчиков Microsoft Build 2020. Несмотря на эпидемию COVID-19, Microsoft провела свое главное мероприятие года, хотя и в несколько непривычном формате: все доклады перевели в онлайн, а участие стало полностью бесплатным. Для тех, у кого не было возможности смотреть видеотрансляцию в онлайн-режиме, мы с коллегами из MVP-комьюнити сделали текстовую трансляцию в Telegram.
Безусловно, Build — знаковое мероприятие, которое приковывает к себе внимание не только разработчиков, работающих со стеком технологий от Microsoft, но и всех, кто имеет отношение к разработке. Ведь инновации и решения, представляемые компанией, зачастую задают тренды для всей индустрии.
На конференции представители Microsoft успели как похвастаться своими достижениями (а похвастаться есть чем), так и определить планы на следующий год.
Говоря о достижениях, нельзя не упомянуть рассказ о новом суперкомпьютере, который создан на базе облака Azure и входит в пятерку мощнейших в мире. Его разработали совместно со специалистами компании Open AI, основанной Илоном Маском. Главная цель компании — разработка открытого и дружественного искусственного интеллекта.
В планах — работа над платформой .NET и C#. В связи с пандемией сроки разработки несколько затянулись, но намерения у Microsoft не поменялись. К моменту релиза .NET 6 (а это будет следующая LTS-версия платформы) компания хочет завершить создание единой библиотеки базовых классов для .NET Core и Mono/Xamarin.
В C# 9.0 нас ждет много новых возможностей, которые помогут сделать код более лаконичным и очевидным. В целом команда, работающая над языком, двигается, по моему мнению, в двух направлениях — функциональном и декларативном.
Впрочем, этот выпуск посвящен не только анонсам Build 2020, но содержит и много материала из разряда deep dive, а также несколько весьма холиварных публикаций.
.NET
await false & await true — TooSlowException — изящный способ вынести мозг тому, кто будет делать ревью вашего кода.
.NET 5.0 preview 5 — новая предварительная версия .NET 5. Как вы помните, теперь не будет ни Core, ни Framework, а будет один лишь .NET.
C# Number And DateTime Tips — советы по работе со строками и числами в C#.
C# 9 — Positional or Nominal Creation — еще не все успели изучить возможности C# 8, а над C# 9 уже идет активная работа по добавлению и обсуждению новых.
How Socket Error Codes Depend on Runtime and Operating System — пост-расследование, в котором Андрей Акиньшин выясняет, каким образом коды ошибок сокета зависят от рантайма и операционной системы.
Home automation with Hubitat and .NET Core — в этом видео Кэм Сопер расскажет, как он автоматизировал свой дом, используя .NET Core, Hubitat и Azure, с помощью своего проекта с открытым исходным кодом под названием Puppet.
Dependency Injection and Inversion of Control on .Net Core — Dependency Injection в .NET Core 3.
F# vs Scala — немного холиварная тема про два функциональных языка.
Faster than reflection: Microsoft previews Source Generators for C# — .NET может стать еще быстрее благодаря Source Generators.
Introducing C# Source Generators — введение в Source Generators.
Fun CSharp: Pure, Lazy and Async pipeline creation — создание ленивого и асинхронного конвейера в C#.
Creating a Reverse Proxy in Dotnet Core — создание реверс-прокси в .NET Core.
Introducing .NET Multi-platform App UI — Microsoft планирует провести ревизию платформы .NET, объединяя .NET Core и Mono/Xamarin в одну библиотеку базовых классов (BCL) и набор инструментов (SDK).
Adding Static Code Analysis to Stack Overflow — публикация не новая, но интересная. Команда Stack Overflow про использование cтатического анализа кода.
Оптимизации в JIT-компиляторе для .NET 5 — интересная статья об оптимизации.
A Story About .csproj, Large Solutions and Memory Usage — команда JetBrains делится своим опытом в оптимизации использования памяти.
Adding Observability to .NET Core Apps — современные практики разработки программного рекомендуют проводить быстрые и непрерывные обновления ПО. Не менее важно раннее выявление ошибок. В статье рассматривают варианты реализации отслеживания состояния приложений .NET Core. А также SDK OpenTelemetry и Application Insights.
Работаем с деревьями выражений в C# — в ходе этого доклада Алексей Голуб рассматривает expression trees в деталях и обращает внимание на реальные примеры, где эта технология может принести настоящую пользу.
ZLogger — Zero Allocation Logger for .NET Core and Unity — много логгеров не бывает.
C# 8: Be Good, Get Good or Give Up — доклад от Игоря Фесенко, в котором он наводит практические примеры, когда функции не работают так, как ожидалось, а также расскажет, что нового и полезного в C# 8.
Сравниваем c# операторы ?: vs if-else vs switch — сравнение скорости работы условных операторов.
Custom Response Caching Using NCache in ASP.NET Core — настройка и использование NCache в ASP.NET Core.
Performance best practices in C# — лучшие практики создания производительного кода на C#.
Pinned Object Heap in .NET 5 — TooSlowException — работа с памятью почти как в С++, только в C#: Object Heap в .NET 5.
Pure Functions C# — чистые функции в C#.
Rider 2020.1.3 and ReSharper Ultimate 2020.1.3 — Rider и ReSharper Ultimate обновились.
F# 5 and F# tools update — вышла новая превью-версия F#.
Welcome to C# 9.0 — знакомьтесь — C# 9.0!
HotChocolate: An Introduction to GraphQL for ASP.NET Core by Michael Staib — GraphQL — это отличный способ представления API, он изменил наше представление о работе с данными через HTTP. GraphQL не только дает возможность запрашивать именно то, что нужно, но и предоставляет данные в виде, более удобном для восприятия.
Goodbye .NET Standard — коллеги прислали интересную теорию заговора, согласно которой .NET Standard скоро канет в Лету.
.NET 5 preview support in OmniSharp and C# Extension for VS Code — о поддержке .NET 5 в OmniSharp.
Make a flappy bird game in windows form — небольшой видеоурок, где рассказывают о том, как сделать игру Flappy Bird, используя Windows Forms.
TomaszRewak/C-sharp-stack-only-json-parser — StackOnlyJsonParser объединяет System.Text.Json с генераторами кода из C# 9, чтобы обеспечить эффективную работу с памятью при десериализации JSON. Библиотека предназначена для систем с малой задержкой, работающих в реальном времени.
Deep dive into .NET Garbage Collection — сборка мусора и управление памятью в целом будут первыми и последними вещами, над которыми нужно работать. Это основной источник очевидных проблем с производительностью, которые наиболее быстро устраняются, но требуют постоянного мониторинга. Многие проблемы на самом деле вызваны неправильным пониманием поведения и ожиданий сборщика мусора.
Повышаем надёжность HttpClient’а в .NET Core или как ошибиться в 3 строках кода 4 раза — хорошая статья про работу с HttpClient и библиотеку Polly, что позволяет настраивать политики повторных запросов.
5 more things about enums in C# — пять интересных и практичных возможностей при работе с enum. Скорее всего, вы знаете о некоторых из них, но о некоторых могли и забыть.
Текстовая игра на Blazor с нуля (+сорсы +демо) — работа с Blazor на примере текстовой игры.
Rider 2020.2 Roadmap — команда JetBrains поделилась своим планами касательно улучшений в Rider.
.NET async/await in a single picture — async/await одной картинкой.
Stack Overflow Developer Survey 2020 — ASP.NET Core — самый любимый фреймворк!
Avalonia Tutorial: Реализация MVVM по шагам с примерами — реализация MVVM на примере фреймворка Avalonia.
Вам сто раз доказали, что F# лучше C#, а вы опять за свое. Объясняю последний раз — статья с холиварным названием и таким же текстом. Но внутри — подкаст.
C# Delegates with IoC Containers and Dependency Injection — делегаты в качестве альтернативы интерфейсам при внедрении зависимостей.
Memory profiling on Linux and macOS with dotMemory 2020.2 — JetBrains наконец-то переносит dotMemory в Linux и macOS.
.NET Core vs Node.js — Node.js vs .NET Core, неделя холиваров на Хабре.
.NET Core June 2020 Updates — июньские обновления безопасности для .NET.
ASP.NET Core Series: Tracing — трассировка в ASP.NET Core.
Xamarin
Xamarin vs React Native: Pick The Right Platform in 2020 — что выбрать — Xamarin или React Native?
anaselhajjaji/covid19.xamarin.forms — пример простого приложения, разработанного с использованием Xamarin Forms, которое отслеживает статистику по COVID-19.
Source Link — Debug Third-Party Libraries — новый выпуск The Xamarin Show посвящен проблемам отладки проекта.
Управляем контроллером через bluetooth с помощью мобильного приложения на Xamarin — весьма интересная статья в стиле DIY про управление контроллером через bluetooth с помощью мобильного приложения на Xamarin.
Visual State Manager — Beyond the Basics — в этом выпуске The Xamarin Show Джеральд Верслуис, инженер Xamarin.Forms, расскажет о том, как работать с Visual State Manger.
Introduction to Fabulous a F# MVU Framework for Xamarin — F# и Fabulous предлагают отличный способ создания кроссплатформенных приложений с помощью Xamarin.
codemillmatt/quarantine-bingo — пример создания игры с использованием Xamarin.Forms.
Project Reunion — на конференции Build 2020 была анонсирована платформа Project Reunion, которая призвана упростить разработку приложений для Windows. Ранее разработчикам приходилось выбирать между классической архитектурой Win32, совместимой с прошлыми версиями Windows, и Universal Windows Platform, работающей на Windows 10. Новая платформа должна объединить программные интерфейсы Win32 и Universal Windows Platform и сохранить обратную совместимость.
Create Iconic Text Avatars using skiasharp and xamarin forms — создание аватарок, используя инициалы пользователя, — элегантный способ заменить безликие серые иконки для пользователей, у которых нет аватарки.
Azure
SIR Modeling on Azure: COVID-19 Hospital Impact Model for Epidemics — моделирование развития эпидемии COVID-19 с помощью модели CHIME (Hospital Impact Model for Epidemics) и развертывание системы, использующей эту модель в Azure.
Microsoft Azure Virtual Training Day: Migrating Server Infrastructure — если хотите обновить инфраструктуру и подготовить свою компанию к облачной среде, вам нужно узнать больше. На вебинаре «Microsoft Azure: миграция серверной инфраструктуры» получите практические рекомендации по переходу в облако Azure.
The April 2020 release of Azure Data Studio is now available — вышло апрельское обновление Azure Data Studio.
Microsoft announces a $1 billion digital transformation plan for Poland — Microsoft планирует открыть новый дата-центр в Польше.
Azure Logic App and building modern cloud native apps — доклад Сергея Бельского про использование устройства IoT и том, как можно через Logic App сообщать об отключении электроэнергии. Также докладчик показывает, как использовать Computer Vision в приложении Logic App.
Linux Is Most Used OS In Microsoft Azure — интересная статистика, согласно которой Linux — наиболее популярная ОС в облаке Azure.
Scaling .NET for Apache Spark processing jobs with Azure Synapse — когда обрабатываете гигабайты или терабайты данных, важно иметь ресурсы, что помогут масштабироваться в соответствии с вашими потребностями в обработке данных.
Публикация статических веб-сайтов в Azure — благодаря статическим веб-приложениям разработчики могут применить модульные и расширяемые шаблоны для развертывания приложений за считанные минуты, одновременно используя преимущества встроенного масштабирования и экономии средств, предлагаемых безсерверными технологиями, включая предварительный рендеринг статического контента.
Data science
Using ML.NET for deep learning on images in Azure — использование ML.NET для deep learning изображений в Azure.
DeepPavlov: «Keras» для обработки естественного языка помогает отвечать на вопросы про COVID-2019 — статья о том, как библиотека DeepPavlov упрощает построение цепочек моделей для NLP и как на основе DeepPavlov и с помощью Azure ML построить вопросно-ответную нейросеть, обученную на наборе данных COVID-19.
ML.NET Model Builder is now a part of Visual Studio — Model Builder, это инструмент Visual Studio, благодаря которому можно использовать ML.NET и Model Builder для создания собственных моделей даже начинающим разработчикам.
Jeff Prosise — Machine learning for C# developers — ML.NET претендует на звание самой мощной библиотеки для машинного обучения на платформе .NET. Так ли это на самом деле? На вопрос отвечает Джефф Просайз.
Послесловие
Будем надеяться, что благодаря своему новому суперкомпьютеру Илон Маск не создаст Скайнет — ведь 2020 год дошел только до половины и кто знает, чем еще он нас может удивить.
Чтобы не пропустить ничего до выхода следующего выпуска — следите за новостями про .NET, Azure, Xamarin в телеграме. Все технические публикации ДОУ читайте здесь.
← Предыдущий выпуск: .NET Дайджест #33