🔥4
Статья про IAsyncEnumerable, но на очень неудачном примере - использование IQueryable. На мой взгляд сочетание IAsyncEnumerable и IQueryable - это категорический антипаттерн, благодаря которому по коду непредсказуемо расползается lifetime коннекшена и db datareader, который потребляет открытое соединение. Плюс сайд-эффекты, когда например у тебя в контексте http request используется scoped db context, и при обработке твоего результата async enumerable в итераторе снаружи какой-то потребитель захочет сделать запрос в БД (для чего-нибудь) - и будет удивлён, потому что ридер в коннекшене ещё открыт и занят вычитыванием данных. #dotnet
👍6
А вот другой пример, который вполне подходит для демонстрации IAsyncEnumerable, потому что с Channel<T> это работает норм и никаких сайд-эффектов не вызывает #dotnet
nikiforovall.github.io
Building pipelines with System.Threading.Channels
🔥6👍4
Статья 2022го года, но интересная до сих пор:
Optimizing TCP for high WAN throughput while preserving low latency
Не уверен, что это применимо прямо таки к каждому собственному хосту, но интересен процесс тестирования и графики зависимости latency и размера tcp window.
Optimizing TCP for high WAN throughput while preserving low latency
Не уверен, что это применимо прямо таки к каждому собственному хосту, но интересен процесс тестирования и графики зависимости latency и размера tcp window.
Простой мануал NGINX Ingress with the .NET Core Microservices and Kubernetes - с примером простого приложения, докерфайлами и вот этим всем. #howto #kubernetes
Medium
Nginx Ingress with the .NET Core Microservices and Kubernetes
Introduction
❤1👍1🤯1
Наконец-то релизнули Aspire, можно пробовать.
Выглядит интересно, но до сих пор даже не трогал потому что все пакеты были prerelease. #dotnet
Выглядит интересно, но до сих пор даже не трогал потому что все пакеты были prerelease. #dotnet
Microsoft News
General Availability of .NET Aspire: Simplifying .NET Cloud-Native Development
.NET Aspire, the stack that streamlines development of .NET cloud-native services, is now generally available.
👍2🔥2
Ещё одна замена Postman и Insomnia - опенсурсный Bruno (github)
Тоже кроссплатформ и даже через choco ставица может, выглядит традиционно для таких инструментов. Имеет возможность писать тесты и что самое главное - можно руками написать запрос(ы) / хидеры и остальное (а не только через UI). #tools
Тоже кроссплатформ и даже через choco ставица может, выглядит традиционно для таких инструментов. Имеет возможность писать тесты и что самое главное - можно руками написать запрос(ы) / хидеры и остальное (а не только через UI). #tools
👍10
Вы знали, что в Windows 11 есть sandbox'овая винда? Я как-то видел в program & components пункт Windows Sandbox, но не придал особого значения, а тут наткнулся и решил попробовать.
И да, после shutdown этой sandbox винды - всё внутри сносица и новый старт = новая винда. В принципе удобно что-то может быть подозрительное проверить :) #tools
И да, после shutdown этой sandbox винды - всё внутри сносица и новый старт = новая винда. В принципе удобно что-то может быть подозрительное проверить :) #tools
👍15🔥2
Чел сделал очередной инструмент - dotnet-fullgc, который может триггернуть сборку мусора в процессе. В статье вкратце написано как этот инструмент работает. Зачем - пока неясно, но инструмент есть :)) #dotnet #tools
🤔3
Наблюдаю как растёт и ширица раздел samples/demos на github в Microsoft Semantic kernel репозитории.
Вспомнил об этом, когда наткнулся на статью Use Semantic Kernel to create a Restaurant Bookings Sample with Python. После быстрого поиска нашлась аналогичная статья Use Semantic Kernel to create a Restaurant Bookings Sample with .NET (примеров пока нет, но думаю это временно).
Ну и must read статья How to Get Started using Semantic Kernel .NET - в которой много чего интересного - функции, плагины, фильтрация и т.д.
В ближайшее время буду тщательно изучать на предмет завернуть AI уже в бизнес-целях. #ai #dotnet
Вспомнил об этом, когда наткнулся на статью Use Semantic Kernel to create a Restaurant Bookings Sample with Python. После быстрого поиска нашлась аналогичная статья Use Semantic Kernel to create a Restaurant Bookings Sample with .NET (примеров пока нет, но думаю это временно).
Ну и must read статья How to Get Started using Semantic Kernel .NET - в которой много чего интересного - функции, плагины, фильтрация и т.д.
В ближайшее время буду тщательно изучать на предмет завернуть AI уже в бизнес-целях. #ai #dotnet
👍2
Docker profiles - удобная фича, которая позволяет более гибко использовать один и тот же docker-compose файл, но с разными комплектами сервисов (например).
Если на пальцах - каждый сервис может содержать список профилей, в которые он включается. Потом делаешь
и оно билдит (или стартует если up) только те сервисы, в которых упомянут профиль
Если на пальцах - каждый сервис может содержать список профилей, в которые он включается. Потом делаешь
docker compose --profile with-db build
и оно билдит (или стартует если up) только те сервисы, в которых упомянут профиль
with-db
или не упомянуто профилей вообще. #docker #tools👍7
Mastering Caching in Distributed Applications - статья про кэширование в распределенных приложениях (Write-through, write-around, write-back, read-through), за и против каждого метода #howto #architecture
🔥2
c# Message queue with Redis - message queue на минималках :) Хз правда для чего это может понадобица в проде (не стал бы делать такое), но знать про эту фичу Redis неплохо (да, у него есть pub/sub очередь) #redis
🔥2
Как с помощью троллейбуса и хлеба channels сделать чят-бота :))) Опять же пример использования Channel<T> #dotnet #ai
Medium
Need for Speed: LLMs Beyond OpenAI with C#, .NET 8 SSE + Channels, Llama3, and Fireworks.ai
Using Fireworks.ai and Llama3 70B with .NET 8 channels and SSE can open up new use cases for generative AI where responsiveness rules.
👍3
Database transactions, lost updates & idempotency и немножечко про оптимистичные блокировки - короткая статья с примерами по озвученным темам. Время от времени такое спрашивают на собесах #howto #architecture
👍2
HybridCache - кажется готовица замена явного использования IMemoryCache / IDistributedCache. На данный момент существует только в виде prerelease пакета. Имеет важную фичу, про которую забывает много авторов альтернативных кэшей:
Cache stampede happens when a frequently used cache entry is revoked, and too many requests try to repopulate the same cache entry at the same time. HybridCache combines concurrent operations, ensuring that all requests for a given response wait for the first request to populate the cache.
т.е. то как это реализовано например в FusionCache и LazyCache если я правильно помню. #dotnet
Cache stampede happens when a frequently used cache entry is revoked, and too many requests try to repopulate the same cache entry at the same time. HybridCache combines concurrent operations, ensuring that all requests for a given response wait for the first request to populate the cache.
т.е. то как это реализовано например в FusionCache и LazyCache если я правильно помню. #dotnet
👍1