📓 Записки программера
Open in Telegram
Канал с регулярными постами о разных интересных материалах (статьи, видео, фреймворки и полезные инструменты). https://dotnet.social/@denisio
Show more1 078
Subscribers
-124 hours
-17 days
+730 days
Posts Archive
Интересно выглядящая штука NetPad - вроде как аналог LINQPad но кроссплатформенный #dotnet #tools
Про New keyed service dependency in .NET 8
а вы уже апгрейднули проекты? Ничего не отпало? :)
#dotnet
Тут попалась статья Analyzing performance issues in .NET 8 (которая похоже что вбросилась на вентилятор много где), где некий David Mccarter померял перф в .net 8 и сравнил его с .net 6 - и по метрикам стало всё хуже. Вот только надо не забыть, что мерял своей рулеткой, а не BenchmarkDotNet.
Удивительности измерений начались прямо с первого пункта. При том что "новый синтаксис" по сути синтаксический сахар и на выходе ровно то же самое (скриншоты). Как у него вышло 1.14 times slower - я хз.
Дальше статью я просто просмотрел и не проверял. #dotnet
Две на мой взгляд понятные статьи про использование RabbitMQ в .net:
RabbitMQ .Net Demo, Publisher/Subscriber, Fanout Exchange, Microservices
How to Implement CQRS Pattern with RabbitMQ in ASP.NET Core Microservices Architecture
#dotnet
Весьма наглядные примеры как работает вся пара десятков LINQ методов. Ну для тех кто вкатывается в LINQ - возможно будет полезно, для тех кто уже в курсе не нужно :) #dotnet
Implement Producer/Consumer patterns using Channel in C# - неплохая статья, где рассматриваются примеры single producer/single consumer, single producer/multiple consumer, multiple producer/single consumers.
Для тех кто только начинает ковырять Channel<T> (уже пора, .net 8 на дворе!) - самое то.
Ну и статья Stephen Toub про Channel<T> от 2019 года, но не потерявшая актуальность :)) #dotnet #tutorial
Вопрос для собеса:
1. напишите собственную реализацию Task.WhenAll
Тестовые задачи перед собесом:
1. напишите реализацию Task.WhenAll, чтобы одновременно выполняемых задач было не больше N (который передается как параметр)
2. напишите класс-реализацию task pool который позволяет добавлять задачи (имеет метод Add) пока другие выполняются и при создании принимает количество одновременно выполняемых задач, остальные встают в очередь выполнения. #interview
Два в одном - пример использования Testcontainers и MongoDB провайдера для EF Core.
Надо бы посмотреть на досуге во что транслируются в монговский язык обычные выражения Where/Include в этом провайдере.
#dotnet #mongodb
Server Sent Events with .NET 7 - немного простого кода в примерах как работать с SSE на ASP.NET #dotnet
Вот да, использую такой подход. Но в отличие от автора статьи - использую CSharpFunctionalExtensions, а не изобретаю велосипедов. Код становица покороче и посимпатичнее. #dotnet
Да когда уже а, сил никаких нет ждать!
https://dotnet.microsoft.com/en-us/download/dotnet/8.0
Статья 2017-го года, но не потерявшая актуальность и по сей день Redis Pub/Sub under the hood - как использовать pub/sub очереди в Redis на примере построения несложного чятика.
Подойдёт и для не сильно знакомыми с Redis - достаточно лёгкий код и большое количество картинок! 😁 #redis #tutorial
Две статьи code-maze про примитивы синхронизации:
When to Use ReaderWriterLockSlim over lock
Synchronization Mechanisms – Volatile vs Interlocked vs lock
#dotnet
https://www.smashingmagazine.com/2023/10/animate-along-path-css - анимация по заданному пути в CSS (спиннеры, прогресс-бары, ...) #css
https://www.ferretdb.com - интересная штука, которая эмулирует протокол MongoDB и хранит данные в Postgres или SQLite. Наверное подходит, если решил съехать с MongoDB, но не прямо сразу а постепенно. #database
Случайно на глаза попалась опенсурс DuckDB - SQL OLAP database management system - с первого взглядя выглядит неплохо, учитывая бенчмарки (даже быстрее Clickhouse, хм), биндинги к куче платформ, включая .net. Если будет время - подумаю, чтобы написать LINQ-провайдера к нему.
Умеет как in-memory так и persisted на диск. Немного портит конечно же как обычно наличие разного нестандартного (касательно SQL) - типы данных или конструкция типа
select * exclude (field1) from table (чтобы выбрать всё, кроме поля field1. Ну и версия 0.9.1 также намекает, что в прод ей пока рановато.Два вопроса для потенциального собеса про async/await:
1. Почему id потока до await и после может отличаться (это не про скриншот, а вообще) (ну это все знают, кто залезал в кишки async/await с помощью того же sharplab)? Когда будет отличаться, а когда нет?
2. Почему на скриншоте id потока всегда будет один и тот же, независимо ни от чего (ну... почти вытекает из ответа на первый вопрос)?
#question
NetFabric.Numerics - пакет, который чем-то напоминает NetTopologySuite, но как более быстрый аналог с использованием Generic Math #dotnet
Если кто-то страдает от отсутствия идей для пет-проектов и/или возможных тестовых заданий для кандидатов то вот примерно 270 таких идей на гитхабе с указанием сложности 0...10
upd с сортировкой и поиском тот же список
Available now! Telegram Research 2025 — the year's key insights 
