.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 Compiler and 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!

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 and drinking in five years i'll phone you up to say we failed».
... 5 years later
X: I wish we paid you $20m.

«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 Tang


? Попередній випуск: .NET Дайджест #20

Опубліковано: 24/11/17 @ 11:19
Розділ Різне

Рекомендуємо:

Поради сеньйорів: як прокачати знання junior PHP
Що на сайті потрібно закривати індексації, навіщо і як це робити
Ігри розуму: український математик про красу науки, нелюбов до ІТ та безперспективність повернення
DOU Проектор: Domivka Coliving — спільна оренда житла для IT-шників
Salesforce для початківців в IT: як я стала розробником за півроку