RU

redb.Identity: OAuth 2.1 / OpenID сервер на .NET, где протокол отделён от транспорта, по шине или вообще без сети

Есть три привычных способа сделать OAuth/OIDC в .NET, и каждый чем-то неудобен. Первый —  ASP.NET -привязанные  решения (Duende IdentityServ…

OAuth 2.1OpenID Connectidentity serverаутентификацияSSOOpenIddict.NETC#SCIMMFA
Habr
RU

redb.Route — коннектор RabbitMQ: RPC, конкурирующие консьюмеры и dead-letter. Уходим от MassTransit

Про Kafka в этой серии уже было. Теперь —  RabbitMQ , и с упором на то, как им пользоваться. Коннектор  redb.Route.RabbitMQ  — поверх о…

RabbitMQAMQPброкер сообщенийочереди сообщенийMassTransitApache CamelEIPRPC.NETC#
Habr
RU

Метод, которого не существовало: как я собрал локальный RAG для CAD API

Последние годы инжиниринг живёт под одним лозунгом: то же самое, но дешевле и быстрее. Заказчики сокращают бюджеты и сроки, подрядчики ищут, какие про…

Smart3DCAD APIRAGLLMC#.NETгенерация кодавекторный поисклокальная языковая модельпромышленная автоматизация
Habr
RU

Plumix: как я переписываю Flutter на C# — вместе с ИИ

Я скучал по C#, когда писал на Flutter, и по Flutter — когда писал на C#. Поэтому взял и совместил: Plumix — фреймворк с флаттеровской архитектурой ви…

PlumixFlutterC#.NETAvaloniaдекларативный UIкроссплатформенная разработкаImpellerИИ-агентыopen source
Habr
RU

Source generators в.NET: как они вытеснили рефлексию из стандартной библиотеки

Ещё несколько лет назад рефлексия считалась нормой для.NET‑приложений. Сегодня Microsoft последовательно выносит всё больше работы из runtime в&n…

source generatorsC#.NETрефлексияпроизводительностьNative AOTLoggerMessageкодогенерацияоптимизация приложенийASP.NET Core
Habr
RU

Все тесты зелёные, платежи зависли: 5 граблей интеграции без песочницы

Осенью 2022-го мы добавляли в наш платёжный агрегатор новый способ оплаты: плательщик уходит по ссылке в приложение своего банка, подтверждает платёж …

вебхукиидемпотентностьполингинтеграция платежейплатёжный провайдеротказоустойчивостьтестированиеwebhooks.NETC#
Habr
RU

Как я перестал лазить в настройки Windows ради прокси и написал переключатель на 150 строк

Часть рабочих сервисов доступна только через прокси. Чтобы открыть один ресурс — прокси надо включить, для остального — выключить. И так по кругу. В W…

проксиproxyWindowsC#.NETсистемный трейутилитаWinINetреестр Windowsopen source
Habr
RU

redb.Route — Apache Camel для .NET, который мы написали потому что выхода другого не было

У вас не 5 микросервисов — у вас  десятки . Бэкенд, который рос три года: монолит, расколотый на куски, GPS-фид от автопарка, мобильное приложени…

C#.NETESBEIPApache CamelKafkaRabbitMQинтеграцииopen-sourceredb.Route
Habr
RU

Убейте GC-спайки в играх и сервисах: коллекции без аллокаций на .NET

Каждый разработчик на .NET сталкивался с этим. Всё работает быстро, но иногда случается внезапный фриз. Игра проседает с 60 до 30 FPS на секунду. Серв…

.NETC#производительностьGameDevвысоконагруженные системы
Habr
RU

redb — типизированное хранилище для .NET поверх Postgres/MSSQL: без миграций, без Include, с полным LINQ

Типизированное хранилище для .NET поверх Postgres и MSSQL. C#-класс как схема — без миграций, без Include, с полным LINQ. Работает в проде. LoadAsync …

LINQмиграцииEF Coreobject storeredbopen-sourcePostgreSQLMSSQL.NET
Habr
RU

Микросекундные оценки опционов: как пересчитать портфель из 200k инструментов за 10 мс

Финансовые системы предъявляют жёсткие требования к производительности. Риск-департамент запрашивает переоценку портфеля из 200 000 опционов. Маржинал…

Финансы.NETC#высоконагруженные системыколичественный анализ
Habr
RU

Idempotency keys: 5 граблей, которые мы поймали на проде

Пятница, 23:47. PagerDuty: “Платёж AmEx, провайдер вернул 5xx три раза подряд, билеты не зарезервированы.” Открываю логи – действительно три ответа пр…

идемпотентностьidempotencyплатежираспределённые системы.NETC#APIintent-keyrace conditionграбли
Habr
RU

C# мне нравится больше Java. Но в банковском enterprise мне всё равно понадобилась Java

C# я до сих пор считаю одним из самых удобных языков для backend разработки. В нём много вещей к которым быстро привыкаешь: свойства, LINQ, async/awai…

C#JavabackendenterpriseбанкиSpring Boot.NETмикросервисыимпортозамещениекарьера
Habr