.NET дайджест #32: приложения на Blazor, Azure побеждает AWS, gRPC в .NET, ReSharper и Rider обновились
Январь ожидаемо оказался относительно тихим месяцем — никаких крупных релизов и громких анонсов не было замечено. Тем не менее, некоторые из весьма интересных проектов успели подготовить кое-что новое к началу года. Так, например, вышла новая версия Microsoft Orleans 3.1 RC1. (Для тех, кто не знает, Orleans — это кроссплатформенный фреймворк для создания распределенных приложений с использованием .NET, разработанный командой Microsoft Research). После долгого перерыва обновилась мажорная версия Autofac v5.0 (версия 4.0 была выпущена еще в августе 2016 года). А JetBrains подготовили обновления для Rider и ReSharper.
Интересно отметить, что по мнению Sergei Klebnikov из Forbes, Microsoft Azure выигрывает облачную войну против AWS. Это безусловно хорошая тенденция, так борьба вендоров за клиентов всегда выгодна именно клиентам. А подобная перестановка сил на облачном рынке безусловно подстегнет к всех участников к поиску новых способов привлечения клиентов.
Также в этом выпуске вы узнаете о нескольких весьма интересных событиях, которые можно будет как посетить, так и посмотреть онлайн. Среди этих событий я бы особо отметил конференцию, посвященную F#. Больше информации о предстоящих мероприятиях — в конце этого дайджеста.
.NET
Tracing .NET Core applications — после выхода .NET Core команда RedHat очень сильно заинтересовалась этой платформой и теперь регулярно готовит публикации на тему .NET разработки. В этой статье они расскажут о возможностях трейсинга в .NET Core.
MagicOnion — сетевой движок реального времени, такой же как SignalR или Socket.io. MagicOnion построен на базе gRPC и при этом не требует создания .proto файлов. Вышла третья версия библиотеки.
.NET Docker Cheat Sheet — шпаргалка по Docker для .NET разработчика: ссылки на все docker-образы для .NET Framework и .NET Core.
Building Custom Tools into .NET Core — .NET Core позволяет создавать и использовать расширения для командной строки. В статье показывается, как сделаеть такое расширение самостоятельно.
5 Reasons You Should Stop Using System.Drawing from ASP.NET — 5 причин, почему вы должны прекратить использовать System.Drawing в ASP.NET Core.
Event Sourcing with Orleans Journaled Grains — реализация CQRS архитектуры с использованием Microsoft Orleans.
Why ASP.NET Core is the best choice to build enterprise web applications — почему ASP.NET Core — лучший выбор для создания корпоративных веб-приложений, рассказывает Кеннет Фукизи, автор книги «Learn ASP.NET Core 3.0, Second edition».
The Dream of C# 9.0 — очередная порция новых фич, которые возможно будут включены в девятый релиз C#.
How To Deploy an ASP.NET Core Application with MySQL Server Using Nginx on Ubuntu 18.04 — DigitalOcean подвёл итоги года, определив самые популярные руководства на своём сайте. В список публикаций-победителей вошло руководство по развертыванию ASP.NET Core.
dahomey—technologies/Dahomey.Json — обратите внимание на эту библиотеку. Она добавляет функционал в новый System.Text.Json сериализатор, доводя его практически до уровня Newtonsoft.
Memory Leak C# — любите утечки памяти? Если нет, то прочтите руководство, которое поможет их избежать.
Flow of immutable messages with Akka.Net — если вы еще не работали с Akka.NET, стоит как минимум ознакомиться с возможностями этой библиотеки, а если знакомы, то эта статья может быть вам весьма интересна.
Exploring the new Assembly unloading feature in .NET Core 3.0 by building a simple plugin system running on ASP.NET Core Blazor — новая возможность выгрузки сборок в .NET Core 3.0 на примере создания простой системы плагинов, работающей на ASP.NET Core Blazor.
How to make internal members visible to other assemblies with the new CSPROJ format — иногда (например, для написания юнит-тестов) необходимо, чтобы какой-то из проектов имел доступ к internal классам другого проекта. Автор статьи предлагает ознакомиться с тем, как это можно сделать, используя возможности формата CSPROJ.
vanbukin/Uuids — попытка сделать генерацию UUID быстрее. Достойно внимания, но вот стоит ли использовать в реальных проектах — пока не ясно.
Announcing Experimental Mobile Blazor Bindings — экспериментальный проект по разработке мобильных приложений с использованием Blazor. Теперь разработчики смогут использовать программную модель Blazor и синтаксис Razor для определения компонентов пользовательского интерфейса и поведения приложения. Компоненты пользовательского интерфейса основаны на собственных элементах управления пользовательского интерфейса Xamarin.Forms.
.NET Core 3.1.1 — January 14, 2020 — вышло январское обновление .NET Core, которое включает ряд исправлений, связанных с безопасностью. А именно были закрыты такие уязвимости: CVE—2020—0602: ASP.NET Core Denial of Service Vulnerability, CVE—2020—0603: ASP.NET Core Remote Code Execution Vulnerability, CVE—2020—0605: .NET Core Remote Code Execution Vulnerability, CVE—2020—0606: .NET Core Remote Code Execution Vulnerability.
Entity Framework Best Practices — Should EFCore Be Your Data Access of Choice? — рекомендации по работе с Entity Framework.
Optimizing string.Count all the way from LINQ to hardware accelerated vectorized instructions — немного воскресного хардкора. Оптимизация метода String.Count(). От LINQ до аппаратно ускоренных векторизованных инструкций.
.NET Core on Red Hat platforms — RedHat опубликовали мануал по установке .NET на все их официальные дистрибутивы: Fedora, Red Hat Enterprise Linux (RHEL), CentOS и CentOS Stream. Правда почему-то в примере используется .NET Core 2.1, а не 3.1, который является актуальной LTS версией.
Getting Started with DynamoDB and .NET Core — How to Build a Leaderboard — простой пример работы с Amazon DynamoDB в .NET Core.
The Reunification of .NET 5 — уже в конце этого года запланирован релиз .NET 5. Безусловно, это будет следующая большая веха в истории .NET, после релиза .NET Core, ведь .NET 5 объединит в себе две ветви: .NET Core и .NET Framework. Что нас ждет в .NET? Точно в историю уйдут: ASP.NET Web Forms, WCF и WWF. Получат дальнейшее развитие: WPF and WinForms и Visual Basic. Подробнее — в публикации от Matthew MacDonald.
Autofac v5.0 — не так давно вышел в свет новый релиз Autofac под версией 5.0! Это первый мажорный релиз, который вышел спустя три года — Autofac 4.0 был выпущен в августе 2016.
How Blazor Is Going to Change Web Development — Blazor — технология, которая способна изменить привычный подход к веб—разработке.
UTF—8 BOM adventures in C# — приключения UTF-8 BOM в C#: как определить BOM и что с этим делать.
IDisposable: What Your Mother Never Told You About Resource Deallocation — лонгрид 2014 года, который однако не теряет своей актуальности и сегодня. В статье рассматриваются тонкости использования Idisposable.
.NET Core 3.0 Preview behaviour for ——output differs — проблема, с которой можете столкнуться вы, или ваши девопсы после обновления на .NET Core 3.0 и выше. Microsoft поменял логику обработки опции ——output. Теперь, если вы используете абсолютный путь, активной директорией будет считаться директория, из которой была запущена команда dotnet, а не директория, в которой находится csproj файл. Из—за этого могут перестать корректно работать CI/CD.
10 Visual Studio Tips & Tricks You Probably DON’T KNOW — некоторые из возможностей Visual Studio, о которых вы вероятно не догадывались.
Building Microservices with gRPC and .NET — из этого видео вы узнаете о том, как сделать систему на базе микросервисной архитектуры с использованием gRPC. Также вы узнаете о том, какие перспективы у gRPC в .NET и как эта технология будет развиваться дальше.
C# Futures: Covariant Return Types — предложение включить в следующую версию С# поддержку ковариантных типов возврата. Это может позволить переопределенному методу иметь другой (более высокий по иерархии наследования) тип, чем метод, который он переопределяет.
10 Performance—Improvement Tips for ASP.NET Core 3.0 Applications — десять советов, которые помогут сделать ваше ASP.NET Core приложение быстрее.
Writing network proxies for development purposes in C# — создание сетевого прокси на C#.
Xamarin
Cognitive Services in Xamarin Applications — использование Microsoft Cognitive Services в мобильных приложениях.
What’s New, Hot, & Awesome for Xamarin Developers! — презентация с митапа Seattle Mobile Developers.
Don’t mention the seam! Microsoft releases Surface Duo Android SDK, more on Windows 10X — Microsoft выпустили предварительную версию SDK для Surface Duo. Напомним, что Surface Duo — это новый смартфон с двумя экранами, который был представлен на Microsoft’s 2019 Surface Event.
How to implement data validation with Xamarin.Forms — подробное руководство по реализации валидации в Xamarin Forms.
Azure
How to Learn Microsoft Azure in 2020 — количество сервисов Azure увеличивается чуть ли не каждый день. В статье собраны и структурированы материалы, которые помогут в их изучении. Также есть информация по различные сертификации Azure.
Azure Container Service will retire on 31 January 2020 — поддержка службы контейнеров Azure будет прекращена 31 января 2020 года.
Integrate ASP.NET Core with Azure Key Vault — в этом видео будет показано, как интегрировать сервис хранилища ключей Azure с веб-приложением ASP.NET Core.
Microsoft Is Winning The ‘Cloud War’ Against Amazon: Report — похоже, что AWS все активнее сдаёт позиции и уступает Azure. По результатам исследования Goldman Sachs, именно Microsoft является самым популярным поставщиком облачных сервисов.
Azure is now certified for the ISO/IEC 27701 privacy standard — Azure теперь сертифицирован по стандарту конфиденциальности ISO / IEC 27701. Что это и зачем нужно? Принятие GDPR в Евросоюзе стало важным этапом в развитии требований в области
конфиденциальности и порядка соблюдения этих требований в глобальном масштабе. Международный стандарт ISO/IEC 27701 помогает организациям гарантировать соответствие нормативным требованиям. Этот стандарт определяет полный набор средств операционного управления, которые могут быть сопоставлены с различными нормативными требованиями, включая регламент GDPR.
How Azure Event Grid is different from logs, alerts, change feeds and webhooks — Антон Бойко во время поиска информации по абсолютно другой и не связанной теме, наткнулся на отличную статью про Event Grid. В статье описывается, чем Event Grid отличается от других, казалось бы, аналогичных сервисов или возможностей Azure. Статья не сильно большая, но она покрывает основные моменты на 5+.
Microsoft to launch new cloud datacenter region in Israel — Microsoft News Centre Europe — Microsoft запускает новый дата-центр в Израиле.
Machine Learning, Data science, Big Data, etc.
Tutorial: Detect objects using deep learning with ONNX and ML.NET — классификация изображений с использованием ONNX модели и ML.NET.
Microsoft Research 2019 reflection — a year of progress on technology’s toughest challenges — итоги года от команды Microsoft Research: релиз модели MT—DNN, релиз SEAL для .NET, множество награждений исследователей из Microsoft Research, участие в конференции ACM FAT в Атланте и многое другое.
События
F# Ukraine 2020 — 28 марта пройдёт первая в Украине конференция, посвящённая разработке на F#. Главный критерий отбора докладов — темы базируются на реальном опыте применения F#. Большинство докладов касаются не только F#, но и архитектуры (actor model, event sourcing, streaming).
Azure Hybrid Virtual Event — 31 марта состоится Azure Hybrid Virtual Event — бесплатное онлайн-мероприятие, на котором вы сможете узнать о последних инновациях в Azure Arc и Azure Stack, двух инновационных решениях гибридного облака от Microsoft.
Visual Studio for Mac: Refresh(); event — 24 февраля присоединяйтесь бесплатному виртуальному мероприятию, чтобы узнать, как сделать разработку мобильных приложений, веб-приложений и игр легкой и продуктивной на вашем Mac.
MS Stage — 21 начнется конференция, посвященная технологическому стеку Microsoft: C#, F#, .NET, ASP.NET, MS SQL Server, Internet information server, Microsoft Visual Studio, MS Azure, Cosmos DB и многое другое.
Чтобы не пропустить ничего до выхода следующего выпуска — следите за новостями про .NET, Azure, Xamarin в телеграме. Все главные публикации ДОУ читайте здесь.
← Предыдущий выпуск: .NET Дайджест #31