.NET дайджест #21: фичи .NET Framework 4.7.1, Ben.Demystifier, доступен пререлиз Rider 2017.3

В выпуске: основательный обзор .NET Core 2.0 и ASP.NET Core 2.0; Windows Compatibility Pack for .NET Core, который добавляет много новых API; как улучшить производительность приложений; Trunk Based Development.

.NET

.NET Framework 4.7.1 Runtime and Compiler Features
Поддержки .NET Standard 2.0 на уровне BCL, улучшение производительности GC, ValueTuple теперь сериализуемые, Runtime Feature Detection.

DotNetAnywhere: An Alternative .NET Runtime
Осмотр древнего проекта, который используется в экспериментальном Blazor для выполнения C# в браузере.

.NET Core 2.0 and ASP.NET Core 2.0 are Here
Основательный обзор нововведений, плюсов и минусов платформы.

Welcome to C# 7.1
Async Main, выведение имен элементов кортежа, default литералы.

Detect blocking waits
Интересный метод, как можно найти блокирующие ожидания задач, такие как Task.Result или Task.Wait.

C# 7.2: Understanding Span
Хорошее вводное видео о Span<T>: для чего нужен и как помогает минимизировать аллокации при работе с массивами и строками.

Introducing Nullable Reference Types in C#

Plain Functional Programming by Martin Odersky
Еще не успел посмотреть видео, но там интересный слайд, что синтаксис C# сильно больше, чем в С++, Java, Haskell и многих других.

Announcing the Windows Compatibility Pack for .NET Core
Пакет, который добавляет много новых API, включая долгожданный System.Drawing. Некоторые только под Win.

HashCode based on xxHash32
Генератор хороших хеш-кодов в corefx.

Migrating from ASP.NET Identity to Service Stack Authentication

In C# 7 is it possible to deconstruct tuples as method arguments
Не сразу было очевидно, как использовать деконструктор в параметрах лямбда-выражения, поэтому решил поделиться: ((string s, int i) _) => ...

Архитектура

Using Akka.NET Actor Systems in Xamarin Apps

Why does Kafka scale better than other messaging systems like RabbitMQ?
Основной поинт в том, что MQ системы запоминают, какие сообщения какой потребитель обрабатывает, и это добавляет много накладных расходов. В Kafka (и EventStore) клиент сам запоминает позицию для чтения, освобождая ресурсы системы и увеличивая пропускную способность.

The Dark Side of Event Sourcing: Managing Data Conversion
Пока не читал, но должно быть интересно.

Software architecture is failing
Статья, вызвавшая много споров в интернетах. Опять же, нужно понимать, что делаешь и зачем. Дискуссия.

Scaling Event-Sourcing at Jet
Крутая статья о архитектуре ES системы, в которой EventStore используется как single source of truth, а проекции строятся на основе Kafka. Дискуссия.

Event Store Internals and SEDA
Интересное видео о внутренностях Event Store от разработчика, к сожалению, с плохим звуком и качеством картинки.

The 7 Ways to Wash Dishes and the Case for Message-driven Reactive Systems
Неблокирующая, асинхронная параллельная обработка сообщений на примере мытья посуды.

Инструменты

Real-World ASP.NET Core Logging Configuration

HashiCorp Consul 1.0

REST Client for VS Code, an elegant alternative to Postman

The Icon Journey
В VS Code вернули синюю иконку. Немного деталей и размышлений на тему.

Beta Docker for Mac and Windows with Kubernetes

Ben.Demystifier
Крутой инструмент для создания более читабельных stack-traces. Уже можно найти расширения для фреймворков логирования.

Bundling .NET build tools in NuGet
В новой системе пакетов PackageReference появилась возможность добавлять команды MSBuild. Новые версии OctoPack уже умеют с этим работать.

xUnit Roslyn Analyzers

Introducing API Analyzer

.NET debugger and assembly editor

dotnet xunit fails for .NET Core 2.0.3 with .NET Core SDK 2.0.3
Задуманное поведение, о котором стоит знать.

.NET (Micro)ORM fetch benchmark results and the fine details

Analyzing performance of asynchronous .NET code with dotTrace
Фича, которой очень не хватало и которую VS умела. Здорово, что они ее наконец добавили.

Code formatting engine updates in ReSharper and Rider

Rider 2017.3 Early Access Program is open
Помимо прочего, добавили поддержку PackageReference, отсутствие которой мешало нашей команде мигрировать на .NET Standard 2.0. Отличная новость для пятницы :)

UI

Vue 2.5 released

Documenting the Web together
MS решили использовать MDN как единый актуальный источник документации для веба.

2018: 120fps and no jank
Размышления о том, как можно добиться лучшей производительности приложений в виду того, что новые девайсы поддерживают частоту обновления 120 Гц.

The Cost Of JavaScript
Очень интересная статья о производительности JS.

Книги

Exploring .NET Core with Microservices, ASP.NET Core, and Entity Framework Core
Бесплатная книга, сам пока не читал, но, возможно, стоит полистать.

Free Ebook: The Cloud Native Attitude

Разное

5 challenges in the developer to CEO transition

Life Is About to Get a Whole Lot Harder for Websites Without HTTPS

Becoming Foolish
О том, почему стоит поинтересоваться функциональными языками программирования.

The QUIC transport protocol: design and Internet-scale deployment
Новый протокол от Гугла, который совершает шифрование и транспортировку за один запрос, т. е. экономит на запросах, но сильнее нагружает процессор.

My First Day at Accenture — The Start of the 104-Hour Workweek
О рабстве на работе.

Promise Theory — Basic Concepts (part 1)

Trunk Based Development
Сайт, посвященный Trunk Based Development. Отличный ресурс, чтобы понять почему, зачем и как.

Architecting for Continuous Delivery

How to choose (and contribute to) your first open source project

Generations of programmers have been confused because the wrong word is used...
Its «offset» from start, not «index» — and that’s why it starts at zero!November 11, 2017

Reminded of a past conversation ...
X: We’re going to spend $1bn on this effort.
Me: I can deliver the same result for $20m.
X: How?
Me: pay me $20m to sit on a beach drinking and in five years I’ll phone you up to say «we failed».
... 5 years later
X: I wish we paid you $20m.November 21, 2017

«Haskell is faster than C++, more concise than Perl, more regular than Python, more flexible than Ruby, more typeful than C#, more robust than Java, and has absolutely nothing in common with PHP.» — Autrijus TangNovember 23, 2017


← Предыдущий выпуск: .NET Дайджест #20

Похожие статьи:
Всем привет! Для многих людей начало года — хороший период, чтобы подумать о своем будущем, в том числе о карьере и профессиональном...
Статья написана в соавторстве с Мэри Ротарь, Co-Founder IAMPM. Привет, я Денис Шаматажи, Project/Product Manager. В IT работаю 7 лет, специализируюсь...
Всем привет. Меня зовут Роман Базар. Я работаю в компании MGID на позиции Tech Lead, в основном занимаюсь web-разработкой. Не так давно...
Ми поспілкувалися з IT-спеціалістами, які попрацювали в інших країнах, повернулися додому й готові розповісти про свій досвід....
Компания Apple объявила о новой мультимедийной ТВ-приставки Apple TV, которая, по её версии, приносит в гостиную совершенно новые...
Яндекс.Метрика