👍7💩1
Я как-то пропустил момент, что в #dotnet ещё в 7-ую версию завезли класс TarFile для работы с tar-файлами. Не сказать, чтобы это было сильно надо - потому что есть .zip формат, но вдруг. На практике мне программно ещё не приходилось ковырять их, в паре мест где надо сидить данные в базу например (zip коды в US например) - там лежали zip файлы, из которых это всё доставалось.
🔥2👍1
Полугодовой давности мануал Async guidance по async в стиле "делайте хорошо, плохо не делайте спасибо". Есть несколько моментов, которые не очень очевидны и вполне достойны упоминания на собесах :))) #dotnet
👍11
Скоро в MassTransit завезут Job consumers - для long-running tasks, заживём! #dotnet
masstransit.io
Job Consumers
In MassTransit, when a message is delivered from the broker to a consumer, it gets locked by the broker until the consumer completes processing. This lock
ensures that the message won’t be delivered to other consumers, even on different bus instances reading…
ensures that the message won’t be delivered to other consumers, even on different bus instances reading…
🤯2👍1
Оч простая вещи, но в целом тоже иногда нужна бывает - это шифрование данных в ASP.NET. Штатно есть Data Protection API, который по дефолту ложит ключи в %LOCALAPPDATA%\ASP.NET\DataProtection-Keys, в линуксовом контейнере это /root/.aspnet - который можно (нужно) вытащить как volume в docker-compose, чтобы фарш из шифрованных данных можно было провернуть назад после апдейта контейнера :) к щастью там просто XML файлы, которые несложно сохранить. Ну или хранить не в XML, а в каком-то другом сторадже персистить (база данных, redis, ...) #dotnet
👍3
Интересные штуки завезут в .NET 9 (релиз уже через месяц!).
Жаль конечно, что большая часть это для ARM. #dotnet
Жаль конечно, что большая часть это для ARM. #dotnet
Microsoft News
Engineering the Scalable Vector Extension in .NET
Let's take an in-depth look at how the team implemented the Scalable Vector Extension (SVE) for .NET.
🔥4
Очень простой и строготипизированный PredicateBuilder - когда надо собрать выражение в EF вида
(или других условий) и вот этих условий в OR неизвестное (динамическое) количество, зависящее от внешних условий.
С традиционным AND обычно никаких проблем:
А вот с OR такого не прокатит, так что PredicateBuilder спасает в этом случае. #dotnet
select ...
from table1
where (x=1 and y=2) or (x=3 and y=5) or (x=3 and y=5 and coef>1)
(или других условий) и вот этих условий в OR неизвестное (динамическое) количество, зависящее от внешних условий.
С традиционным AND обычно никаких проблем:
var q = db.Items.AsQueryable();
q = q.Where(...);
q = q.Where(...);
...
var items = await q.ToArrayAsync();
А вот с OR такого не прокатит, так что PredicateBuilder спасает в этом случае. #dotnet
👍5🔥1
Как использовать Result<T> и немного LINQ для railway oriented programming или "у вас result'янка". С одной стороны выглядит красиво и реализует short-circuit, когда фейл одного из степов сразу возвращает Result.Error и всё прекращается. Но под капотом некоторое количество не оч кросивого кода. Наверное имеет смысл для ознакомления, но использовать я такое не буду. #dotnet
👍3❤1
инструмент для мониторинга исходящих http запросов
А также 9 интересных статей на тему внутренних штук дотнета (для собирания метрик в т.ч.) с примерами кода #dotnet
dotnet tool install -g dotnet-http
А также 9 интересных статей на тему внутренних штук дотнета (для собирания метрик в т.ч.) с примерами кода #dotnet
🔥7👀1
В .net 9 завезли поддержку OAuth 2.0 Pushed Authorization Requests и вот статья с примерами реализации (да, на примере Duende IdentityServer) #dotnet
🔥6🤯1
Чятики принесли интересную штуку - какой-то новый профайлер для дотнета. Опенсурс, но по фичам надо сравнивать с dotProfiler и dotMemory конечно. #dotnet
👍2
Всё никак не могу добраться, чтобы попробовать Aspire на каком-то живом проекте, но регулярно попадаюца статьи про то, как там всё удобно :)) в т.ч. для гетерогенных микросервисов #dotnet
DEV Community
Orchestrating Distributed Apps (Spin/Rust and .NET/C#) with .NET Aspire/Dapr
Introduction If you have followed me long enough, then you know that I strongly believe...
🤔6
Очередная статья (12-я) из серии про Source Generators. Помоему это самая большая серия статьей про source gen, которые мне попадались. #dotnet
Andrew Lock | .NET Escapades
Reading compilation options and the C# version in source generators: Creating a source generator - Part 12
In this post I show how to read details of a target project from a source generator, such as assembly name, the current configuration, or the c# version
🔥12
Похоже что будет серия интересных статей про написание собственного GC. Пока что опубликована первая часть, но я буду следить :) Этот же автор кстати писал интересную другую серию статей про профайлинг. #dotnet
minidump.net
Writing a .NET Garbage Collector in C# - Part 1
First part of a series of articles about writing a .NET Garbage Collector in C# using NativeAOT. This part sets the expectations and setups the project, dealing with the first difficulties.
👍5👀2🔥1🤯1
Недавно в чятике видел вопрос/проблему - несоответствие scope для сервисов в DI, которые стреляют в рантайме в момент ресолва-активации сервиса (=в случайный момент времени, который может случится очень несразу).
Ну так вот на эту тему есть решение, которое провалидирует scope сервисов и сломает запуск, если там что-то не так #dotnet
upd в камментах написали, что это лучше делать для DEBUG окружении - конечно да, для релиза/прода это не имеет особого смысла и увеличивает время старта.
Ну так вот на эту тему есть решение, которое провалидирует scope сервисов и сломает запуск, если там что-то не так #dotnet
upd в камментах написали, что это лучше делать для DEBUG окружении - конечно да, для релиза/прода это не имеет особого смысла и увеличивает время старта.
🔥17👍3