Drive your career as React Developer with Symphony Solutions!
×Закрыть

.NET дайджест #22: экспериментальный фреймворк Blazor, асинхронные методы, Rider 2017.3

В выпуске: тенденции в развитии JavaScript, что происходит с F#, обзор возможности запуска Linux-контейнеров на Windows.

.NET

Dissecting the async methods in C#, The performance characteristics of async methods in C#
Отличные статьи об устройстве и производительности асинхронных методов.

Herding Nulls and Other C# Stories from the Future
Видео о планах на будущее в развитии C#.

All About Span: Exploring a New .NET Mainstay

Deep-dive into .NET Core primitives: deps.json, runtimeconfig.json, and dll’s

Using MVC result executors in ASP.NET Core middleware

HttpClientFactory Consumption Patterns

Stacktrace improvements in .NET Core 2.1

Parallelizing Tasks with dependencies — Design your code to optimize performance

ASP.NET Core 2.1 roadmap

A new experiment: Browser-based web apps with .NET and Blazor
Анонс экспериментального фреймворка, который позволяет выполнять Razer страницы в браузере используя WebAssembly.

Архитектура

AWS Lambda Reserved Concurrency
Возможность ограничивать количество одновременно выполняющихся лямбд, чтобы контролировать нагрузку на БД или другие системы.

Using the MongoDB Oplog to trigger asynchronous work

Sure, you can just use RabbitMQ
Что нужно иметь в виду при проектировании систем обмена сообщениями.

Should You Put Several Event Types in the Same Kafka Topic?
Отличная статья о том, как решить, какие сообщения отправлять в какой топик.

Learnings from Using a Reactive Platform — Akka/Squbs

Legacy Evolution: Moving Quickly & Safely From Monolith To Microservices

Инструменты

C# Interactive in Rider

Debugging third-party code with Rider
Очень удобная штука с генерацией исходников на лету.

Curated list of Rider content

General web development updates in Rider 2017.3

Tar and Curl Come to Windows!

Build better apps faster by generating types from data
Удобный инструмент, позволяющий генерить типы по данным, например класс по JSON.

A sneak peek at LCOW
Обзор возможности запуска Linux-контейнеров на Windows.

Docker for Mac with Kubernetes

UI

I just asked 23,000 developers what they think of JavaScript. Here’s what I learned.
О тенденциях в JS.

Chrome is turning into the new Internet Explorer 6

Книги

Why Great Teams Embrace Remote Work

Distilling Domain-Driven Design

Разное

Framework Benchmarks Round 15

Stack Overflow Developer Survey 2017

Remote Work in the 2017 Developer Survey

Best-websites-a-programmer-should-visit

31 Million Client Registration Files Leaked by Personalized Keyboard Developer

Functional Geekery Episode 118 — Scott Nimrod
О том, что происходит с F#, использовании в продакшене, инструментах.

Remote-First vs. Remote-Friendly

Thanks a Million, Jon Skeet!
Jon Skeet заработал 1М рейтинга на SO.

12 tips to write unit tests that don’t cripple your codebase

Crossover Hiring Tournament — Kiev
Видео турнира, в котором я принимал участие. Было весело, рекомендую поучаствовать. Для кого-то это может быть возможность проверить свои скилы, для кого-то — найти более интересную работу.

GitHub PRs

Remove my password from lists so hackers won’t be able to hack me

Add configure option to enable blockchain usage

Интересные твиты


← Предыдущий выпуск: .NET Дайджест #21
Следующий выпуск: .NET Дайджест #23

LinkedIn

5 комментариев

Подписаться на комментарииОтписаться от комментариев Комментарии могут оставлять только пользователи с подтвержденными аккаунтами.
Sure, you can just use RabbitMQ
Что нужно иметь в виду при проектировании систем обмена сообщениями.

Ожидал увидеть какой-то practical use-case как лучше для rabbit решать задачи типа организации retries on-failure/timeouts. Вместо увидел рекламу nservicebus :)
Немного от себя добавлю — в nservicebus действительность есть более высокоуровневая программная модель, но она достаточно проста и слабопродумана, как по мне. Если ваш use case выходи за рамки — это будет боль почти всегда, к тому же фреймворк громоздкий и развивается не так быстро(до сих пор в beta под netstanadrd)
Их endpoints по гибкости в противовес связке exchange/queues в rabbit это просто небо и земля по возможностям — в nservicebus без костылей нельзя толком организовать синхронизацию хостов в рамках одного end point’a(фермы).
Обязательный шаринг моделей между хостами — еще одна проблема которую придется решать усложнением процесса, особенно если это разные солюшины и команды работают над интеграцией. Коммерческая лицензия, есть более простые OSS аналоги.

Спасибо, за дайджест.

Спасибо за развернутый комментарий!

Ожидал увидеть какой-то practical use-case как лучше для rabbit решать задачи типа организации retries on-failure/timeouts. Вместо увидел рекламу nservicebus :)

Я не преследовал цель сделать рекламу. В статье очень валидные поинты. Организация retries on-failure/timeouts сама по себе довольно тривиальна, но об этом нужно думать при проектировании надежной системы. Собственно ради того, что бы показать, что нужно задумываться о таких вещах я статью и добавил. Сам не юзаю NServiceBus.

я понимаю, что ты не ради рекламы ее разместил — в отличии от того, кто писал оригинальный блог пост. :) в целом в статье перечислен набор фич коммерческого фреймворка в противовес низкоуровневому стандарту(amqp) — продают как могут. Не рекомендовал бы по нему формировать картину мира, что называется reliable messaging, разработчики придумали среднюю по больнице программную модель и подвели под неё все возможные посредники — msmq, azure service bus, rabbit и даже ms sql с таймерами — это просто фреймворк с базовым набором готовых решений, которые к тому же не всегда нужны, а часть из них и вовсе из коробки покрыта транспортом — как в случае с rabbitmq дедупликация, анолиджменты, топики с роутингом и т.д.

Оличная подборка! Спасибо!

Як завжди — купа цікавого і потрібного. Дякую Андрію!

Подписаться на комментарии