В выпуске: статьи о внутренностях managed объектов, дискуссия насчет организации работы с системами контроля версий, мини-игра, построенная на Polymer 3.0, книга для понимания модели акторов.
.NET
ASP.NET Core 2.0 Authentication and Authorization System Demystified
Общее представление о том, как устроена аутентификация и авторизация в ASP.NET 2.0.
Zero Garbage Collector for .NET Core
Пример реализации GC, который не собирает мусор. Может быть полезно для небольших утилит, чтобы выжать максимум производительности.
ASP.NET Core 2.0 Features
Нововведения в ASP.NET Core, такие, как WebHost builder APIs, Configuration основной сервис, изменения в HTTP.sysи особенно приятный, на мой взгляд, IHostedServices интерфейс, который позволяет регистрировать дополнительные background процессы перед стартом ASP.NET Core, как то подписки на очереди сообщений, старт системы акторов, другие сервисы и все это используя те же зарегистрированные в контейнере сервисы. Джва года ждал этой фичи.
F# and .NET Core Roadmap Update
Runtime package store
Позволяет указать приложению, что на машине, на которую будет осуществляться развертывание, предустановлены некоторые пакеты, и они не будут включены при релизе, что может значитально уменьшить количество и размер библиотек, которые нужно копировать при релизе.
The layout, Object header layout and the cost of locking, The layout of a managed array, Fields layout
Отличная серия статей о внутренностях managed объектов.
Configuring ASPNET Core Apps with WebHostBuilder
В статье показаны простые примеры, как сконфигурировать сервисы и логирование перед запуском Startup
класса.
Could not load file or assembly ’netfx.force.conflicts’
Неприятная проблема, с которой пришлось столкнуться при поэтапной миграции проекта на .NET Standard 2.0/.NET Core 2.0 и пути ее решения.
Архитектура
Hewitt, Meijer and Szyperski: The Actor Model (everything you wanted to know...)
Avoiding all DI antipatterns for types requiring asynchronous initialization
Актуальный вопрос о том, как конфигурировать объекты в DI контейнерах, для которых нужна асинхронная инициализация. Рекомендуют делать инициализацию перед конфигурацией контейнера.
Reactive Mistakes: Distributed Transactions
Статья, о негативном влиянии распределенных транзакций на производительность системы.
GraphQL vs REST: Overview
GraphQL и REST — это не конкуренты, а инструменты для разных задач и могут сосуществовать.
Инструменты
Bogus
Генератор фейковых данных с осмысленными значениями.
Refit
Библиотека для автоматической генерации типизированных клиентов для REST API.
Call and value tracking come to Rider
Удобный функционал для отслеживания, откуда могло прийти значение переменной или где вызывается данный метод. Похоже, эта функция уже была в R#, но я как-то ее пропустил.
AutoFixture: Test name strategies for NUnit3
Релиз 3.51 решает проблему именования тестов с динамическими параметрами для VS и NCrunch с помощью атрибутов AutoDataFixedName
и InlineAutoDataFixedName
.
Respawn vs SQL Server Snapshots
Respawn подготавливает состояние БД перед тестом на порядки быстрее, чем восстановление из слепка. Тем не менее, как говорит автор, оптимальнее всего организовывать тесты таким образом, чтобы они не зависели от состояния таблиц. Это увеличит скорость тестов и позволит выполнять их параллельно.
CI/CD
Trunk-Based Development instead of GitFlow
Интересная дискуссия на счет организации работы с системами контроля версий.
The Death of Continuous Integration
О том, как правильно организовать процесс CD.
UI
Polymer 3.0 preview: npm and ES6 Modules
Polymer переезжает на ES6 модули, что позволит намного проще использовать компоненты в других фреймворках.
Custom Elements Everywhere
Сайт, который показывает насколько хорошо Custom Elements поддерживаются разными фреймворками.
Use TypeScript to Develop Vue.js Web Applications
Polymer 3.0 Preview — Building a mini card game
Мини-игра построенная на Polymer 3.0 с TypeScript, WebPack и вынесенной в отдельный файл разметкой для компонента.
Книги
Understand The Actor Model From The Ground Up (In < 1 Hour)
Довольно интересная небольшая бесплатная книга для понимания модели акторов.
Видео
События
Microsoft Connect(); November
Разное
How image recognition and AI recruit new employees September 02, 2017
deploying Docker Compose to production September 20, 2017
← Предыдущий выпуск: .NET Дайджест #19