This week in .NET 27.07.2023
Artemov Ivan🖋️ Статьи
How We Made Phobos 2.4's OpenTelemetry Usage 62% Faster
Phobos - библиотека для мониторинга Akka.NET
В новой версии, разработчики перешли на OpenTelemetry и рассказывают какие оптимизации им пришлось добавить в код, чтобы увеличить скороть работы некоторых методов на 62%
Using your Database as a Queue?
Тема, которая периодически всплывает в обсуждениях: "Могу ли я использовать свою БД в качестве брокера сообщений?".
Все из-за того, что иногда, очень не хочется вносить в инфраструктуры системы новые компоненты, а использовать имеющиеся.
Gracefully Handling Entity Framework Exceptions with EntityFramework.Exceptions
Все мы знаем что EF чаще всего кидает DbException или DbUpdateException
и разработчикам, иногда, приходится смотреть внутрь свойства Message!!
Разработчик предлагает свою библиотеку с Middleware (настраивается в DbContext), которое позволяет улучшить опыт и отлавливать только те исключения, которые нужны именно вам.
Сoncurrent HostedService Start and Stop in .NET 8
В .NET 8 появились опции для настройки поведения запуска и остановки HostedServices - ServicesStartConcurrently, ServicesStopConcurrently
.NET 8 TimeProvider and Unit Tests
В .NET 8 добавлен новый пакет Microsoft.Bcl.TimerProvider, который позволяет абстрагироваться от статического экземпляра DateTime и упростить тесты в вашем проекте, а если точнее - выкинуть перетаскиваемые из проекта в проект условный DateTimeProvider.
A-Frame Architecture with Wolverine
Рассказывается про A-Frame архитектуру, которая позволяет упростить(?)зависимости в вашем приложении.
How to set global setting for XUnit tests
В статье рассказывается как задавать глобальные настройки для xUnit-тестов.
Understanding HTTP host header and SNI
Хардкорная статья, рассказывающая как работает Host header и SNI
Если кратко - SNI позволяет клиенту сообщить имя хоста при установлении соединения по протоколу TLS, что позволяет нескольким сайтам работать на одном адресе без использования одного и того же сертификата на всех сайтах.
Replacing method calls with Interceptors
В статье рассказывается об экспериментальной возможности в .NET 8 - Interceptors, которая помогает подменять вызовы ваших методов другим кодом.
Подробнее о механизме рассказал наш коллега - Евгений Пешков
💡Issues & PRs
#89274 - Optimize MemoryMarshal.ToEnumerable for arrays and strings
#87067 - Add and use ConfigureAwaitOptions (issue старая, но примечательна тем, что у ConfigureAwait появилась перегрузка с enum-параметром)