Библиотека шарписта | C#, F#, .NET, ASP.NET
23.5K subscribers
2.03K photos
32 videos
85 files
4.21K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Асинхронные примитивы синхронизации: об алгоритмах троттлинга запросов и многом другом в докладе Евгения Пешкова на DotNext 2022

Проблемы на бэкенде периодически случаются у всех. Части этих ситуаций можно избежать, если провести нагрузочное тестирование, определить пределы возможностей сервиса и заранее ограничить количество одновременно обрабатываемых запросов.

Это позволяет сгладить неравномерность нагрузки и справиться с обработкой хотя бы части запросов, что гораздо лучше полного падения сервиса. Решить задачу Rate Limiting помогает примитив синхронизации под названием семафор. Он пропускает внутрь заданное количество потоков, а остальные ставит в очередь. Однако современные приложения — асинхронные, использовать в них обычный семафор неэффективно.

И здесь у разработчиков фреймворков и highload-сервисов появляется необходимость выбора алгоритма реализации семафора, работающего не на уровне потоков, а на уровне асинхронных задач. Неудачно выбранный алгоритм еще больше нагрузит сервис, который и так работает под нагрузкой на пределе возможностей.

📺 Смотреть
Представьте, что вы пытаетесь разрешить cross-origin запросы из фиксированного набора доменов. Вы правильно настроили CORS, но приложение всегда показывает запросы как unauthenticated. В очередной любопытной статье Эндрю Лок показывает, как решить эту проблему с помощью ASP.NET Core Identity.

Немного забегая вперёд отметим, что проблема заключалась в SameSite cookies. Эту тему Эндрю затронул уже в следующей статье.
Помните анонс поддержки JSON в EF Core 7? Внимательный читать блога заметил, что приведенный выше запрос не работает, то есть отсутствует фильтрация коллекций. Как альтернатива –– использовать FromSql, о чем Khalid Abuhakmeh и говорит в статье.
Оператор null-объединения «??» устанавливает значения по умолчанию для типов, которые допускают значение null. А для вас какой вариант читабельнее?

#dotnet #csharp #tip by Milan Jovanović
💭 Какие библиотеки и инструменты вы чаще всего используете при разработке проектов .NET? Поделитесь опытом.👇

#холивар
JetBrains .NET Guide пополнился новым материалом про основы Blazor

Гайд начинается с основ и постепенно охватывает работу с формами, данными, JavaScript и многим другим.
🚀 StringBuilder Append .NET 8 просто летает. Код бенчмарков тут.

#dotnet #perfomance
Активные участники .NET-сообщества (Erik EJ, Arthur Vickers и Brice Lambson) демонстрируют новую версию CLI EF Core Power Tools и кейсы использования некоторых NuGet-пакетов для улучшения UX при создании CLI-инструмента.

📺 Смотреть
Теория и практика использования параметров ref, out и in: на заметку C#-разработчику.

Читать
Полезные заметки по использованию Telegram API и библиотеки TDLib: что требуется для взаимодействия с Telegram API, какие средства нужны для написания кода своего бота на C#, как их правильно установить и использовать.

Читать
Команда Stack Overflow опубликовала результаты опроса разработчиков за 2023 год. Давайте обсудим то, что касается .NET-разработки:

🔝 C# на 8 месте в категории «Языки программирования, сценариев и разметки»
🔝 Microsoft SQL Server на 5 месте в категории «Базы данных»
🔝 Microsoft Azure на 2 месте в категории «Облачные платформы»
🔝 ASP.NET Core на 2 месте в категории «Веб-фреймворки и технологии»
🔝 .NET (5+) на 1 месте в категории «Другие фреймворки и библиотеки»

Visual Studio Code на 1 месте как самый популярный редактор кода, а IDE Visual Studio сильно отставая осталась на втором. Rider тем временем даже не в десятке.
Полезные заметки от Эндрю Лока по использованию библиотеки MiniValidation для поддержки рекурсивной валидации объекта IOptions в .NET 6+.

Читать
💭 Экосистема .NET очень активно развивается, в связи с чем есть резонный вопрос.

Вы считаете нужным каждый год обновлять кодовую базу проекта? Если не обновляетесь, расскажите, какая в вашем рабочем/пет проекте версия .NET? 🥁