Amazing .NET
Open in Telegram
В этот канал публикуются интересные материалы, связанные с .NET тематикой. Без рекламы и прочей х*йни. Идеи и предложения: https://github.com/Chakrygin/amazing-dotnet/issues Или в личку: @ichakrygin См. также: https://t.me/amazing_devops
Show more1 816
Subscribers
No data24 hours
+17 days
+530 days
Posts Archive
1 816
The awaitable pattern: writing your own awaitable
Meziantou's blog | Gérald Barré | October 8, 2026
This post is part of the series 'Async/await in C#'. Be sure to check out the rest of the blog posts of the series!
https://www.meziantou.net/the-awaitable-pattern-writing-your-own-awaitable.htm
🏷️ .NET
1 816
CRUD vs Task Driven: Are You Losing User Intent?
CodeOpinion | Derek Comartin | October 7, 2026
What happens when everything in your system just becomes an update?
You need to cancel an order: change the status. You need to approve something: change the status. Some workflow completes: just change the status.
Everything becomes an update.
https://codeopinion.com/crud-vs-task-driven/
🏷️ Architecture
1 816
The Task lifecycle and TaskCompletionSource
Meziantou's blog | Gérald Barré | October 7, 2026
This post is part of the series 'Async/await in C#'. Be sure to check out the rest of the blog posts of the series!
https://www.meziantou.net/task-taskcompletionsource-and-the-task-lifecycle.htm
🏷️ .NET
1 816
Собеседования на программиста в эпоху AI
Хабр | 6 октября 2026 г.
Есть ли теперь вообще толк от собесов, проверяющие знание теории? И как их теперь проводить, когда по ту сторону уже сидит не только кандидат, но и live-агент, отвечающий на вопрос быстрее, чем вы успели его закончить. Толк есть, но только не в том виде, как мы привыкли. Об этом далее.
https://habr.com/ru/articles/1091238/
🏷️ .NET, C#, Искусственный интеллект
1 816
A faster, lighter C# Dev Kit
DevBlogs | .NET Blog | October 6, 2026
We developers know just how fast computers can be, and we want to feel that speed in our tools. Waiting for language support to load, builds to complete and tests to run is time we could better spend in other ways.
As part of .NET 11, C# Dev Kit has been completely rearchitected to deliver huge improvements to performance and memory usage. It also has some great new features.
This is the first in a series of blog posts covering the improvements in C# Dev Kit 11.0. In this post we will cover the improvements at a high level, and future posts will dig into the details for those who are interested.
We are aligning C# Dev Kit’s version with the current release of .NET. The new extension version is 11.0, and the previous was 3.3.
Let’s see what’s new.
https://devblogs.microsoft.com/dotnet/faster-lighter-csharp-dev-kit/
1 816
There is no thread: OS async I/O and the .NET thread pool
Meziantou's blog | Gérald Barré | October 6, 2026
This post is part of the series 'Async/await in C#'. Be sure to check out the rest of the blog posts of the series!
https://www.meziantou.net/there-is-no-thread-os-async-i-o-and-the-dotnet-thread-pool.htm
🏷️ .NET
1 816
What Would You Build in Azure If You Didn’t Have to Ask for a Budget First?
DevBlogs | Visual Studio Blog | October 6, 2026
Maybe you’d deploy that .NET application you’ve been working on. Try a serverless architecture. Experiment with containers. Build a proof of concept. Or spend some time exploring an Azure service you haven’t used yet.
If you’re an eligible Visual Studio subscriber, you may already have a personal Azure sandbox waiting for you.
Many Visual Studio Subscriptions include Azure credits, giving developers a simple way to explore Azure, build skills, develop applications, and experiment with cloud services without first needing a separate Azure budget.
https://devblogs.microsoft.com/visualstudio/what-would-you-build-in-azure-if-you-didnt-have-to-ask-for-a-budget-first/
1 816
Stripping extra dependencies in .NET NativeAOT apps using linker substitutions
.NET Escapades | Andrew Lock | October 6, 2026
In this post I describe how to perform method-substitutions with the NativeAOT linker to remove additional dependencies that the linker couldn't see were unused.
https://andrewlock.net/stripping-extra-dependencies-in-.net-nativeaot-apps-using-linker-substitutions/
🏷️ .NET Core, Observability
1 816
Why async exists: the cost of blocking a thread
Meziantou's blog | Gérald Barré | October 5, 2026
This is the first post of a series about async/await in C#. Before looking at how it works, it is worth being precise about what problem it solves, because the usual explanations are either vague ("it makes your app faster") or wrong ("it runs your code in the background").
async/await does not make anything faster. A network call takes as long as it takes. What it changes is what your process does while waiting, and that turns out to matter a great deal.
https://www.meziantou.net/why-async-exists-the-cost-of-blocking-a-thread.htm
🏷️ .NET
1 816
dotInsights | October 2026
The JetBrains Blog | .NET Tools | October 5, 2026
C# 15 Collection Expression Arguments: What’s New vs C# 12 and 13: https://laurentkempe.com/2026/09/26/csharp-15-collection-expression-arguments/
Creating an Account UI in .NET MAUI: https://www.telerik.com/blogs/creating-account-ui-net-maui
Adding Properties with extension methods in C# 14: https://steven-giesel.com/blogPost/4368fcea-c922-403e-bb3b-6b4990eb36d2
Control Flow Obfuscation: A Practitioner’s Guide for .NET and Java Teams: https://www.preemptive.com/blog/control-flow-obfuscation/
The hidden trap of fixed buffers in C#: https://minidump.net/the-hidden-trap-of-fixed-buffers-in-csharp/
Interactive Terminals in the Browser with Aspire and .NET!!!: https://www.youtube.com/watch?v=YMyo16QX4I0
https://blog.jetbrains.com/dotnet/2026/10/05/dotinsights-october-2026/
🏷️ dotInsights
1 816
UWP and WinUI 3 apps: UI testing with MSTest
DevBlogs | .NET Blog | October 5, 2026
Reliable testing of UWP and WinUI 3 apps needs the app’s real UI dispatcher, not just a single-threaded apartment (STA) thread, so that test setup, async test code, and cleanup all run with UI-thread access. A WinUI 3 test still looks this simple:
https://devblogs.microsoft.com/dotnet/testing-uwp-and-winui-3-apps-with-mstest/
1 816
143 выпуск. Мудрёный hill-climbing, опасный supply chain, полезный memory dump
RadioDotNet | October 4, 2026
[00:01:30] — Creating a memory dump in C#
[00:18:10] — Building a Supply Chain Attack with .NET and NuGet
[00:53:10] — Разбор hill-climbing в .NET 9
[01:17:00] — What Runs Before Main() and Why It Sometimes Hangs
[01:39:00] — Кратко о разном
Слушать на Яндекс.Музыке: https://music.yandex.ru/album/12041961
Слушать на YouTube: https://www.youtube.com/playlist?list=PLbxr_aGL4q3SpQ9GRn2jv-NEpvN23CUC5
Слушать на Mave: https://radiodotnet.mave.digital/ep-144
Поддержать на Boosty: https://boosty.to/radiodotnet
1 816
О пользе ограничений в MSSQL
Хабр | Блог компании Контур | 30 сентября 2026 г.
Мы привыкли, что ограничения (CONSTRAINT) — это способ указания допустимых значений для столбцов, ограничение уникальности и создание связей между таблицами. Это отличный способ поддерживать целостность данных, предотвращая некорректные операции. Но помимо этого, ограничения также помогают оптимизатору запросов генерировать более эффективный план выполнения. Как именно? Читайте ниже.
https://habr.com/ru/companies/skbkontur/articles/1082258/
🏷️ .NET, SQL, Базы данных, Программирование
1 816
Поменяли object на Lock, и два потока встретились в критической секции
Хабр | Блог компании OTUS | 30 сентября 2026 г.
В .NET 9 появился новый примитив синхронизации System.Threading.Lock, и многие команды начали заменять привычные object-замки на новый тип в поисках более предсказуемого поведения и производительности. Но такая замена меняет саму механику работы lock: достаточно одного места, где экземпляр потеряет свой тип, чтобы два участка кода перестали синхронизироваться между собой.
В статье разберемся, как именно устроена новая модель блокировок в C#, где компилятор помогает заметить проблему, а где она остаётся скрытой, и стоит ли переходить на Lock ради заявленных преимуществ.
https://habr.com/ru/companies/otus/articles/1087292/
🏷️ .NET, C#, Программирование
1 816
Multi-Tenant Best Practices Can Backfire
CodeOpinion | Derek Comartin | September 24, 2026
You have a multi-tenant system, but you discover a pretty horrible bug. How can that be? You followed all the best practices!
Your HTTP API places a message on a queue to generate an invoice. A background process picks up that message and executes it. Everything looks like it worked. There were no exceptions, no failed database calls, and no errors in your logs.
However, something went horribly wrong.
https://codeopinion.com/multi-tenant-best-practices-can-backfire/
🏷️ Architecture
1 816
50 минут руками — 5 минут автоматически. Или как я майнер удалял
Хабр | 28 сентября 2026 г.
Думаю, многие из вас знают, что такое майнер, а если нет, то вкратце — это программа, которая использует ресурсы компьютера для добычи (майнинга) криптовалюты. Сам по себе майнер не является вирусом, но есть те, кто им злоупотребляет, распространяя его скрытую вариацию под видом пиратского софта и сборок с играми.
Вэтой истории я расскажу, как столкнулся с таким майнером и потратил почти час на ручное удаление, как это позже удалось автоматизировать, и как уже из этого зародилась утилита по устранению таких майнеров.
https://habr.com/ru/articles/1087634/
🏷️ .NET, C#, Windows, Антивирусная защита, Информационная безопасность
1 816
Visual Studio September Update – Power Your Workflow with Your Model
DevBlogs | Visual Studio Blog | September 29, 2026
The best LLM in Visual Studio is the one you choose. This month’s update puts that idea front and center: pick the model that fits how you work, then use it everywhere GitHub Copilot already helps you today, from fixing vulnerable packages to reviewing pull requests. And once you’re in the editor, you’ll find sharper debugging tools too, whichever model is doing the thinking alongside you.
Grab the Visual Studio 2026 Stable Channel update and let us know what’s working and where we should invest next.
https://devblogs.microsoft.com/visualstudio/visual-studio-september-update-power-your-workflow-with-your-model/
1 816
OLAP OVER HTTP: как отдавать большие аналитические данные через API и не положить сервис
Хабр | Блог компании Ozon Tech | 28 сентября 2026 г.
Каждый день в 18:00 клиентам становится доступна отчётность по продажам, и многие одновременно нажимают кнопку «Загрузить отчёт». Это может быть детализированный отчёт по списаниям, юридическая отчётность, аналитическая выгрузка или API, используя который клиент получает данные для дальнейшей обработки. В этот момент даже хорошо подобранное хранилище может стать узким местом.
В моей практике разработки часто встречаются сценарии, когда необходимо предоставить доступ к большому количеству данных по HTTP. На первый взгляд задача выглядит простой: берём подходящее хранилище, пишем endpoint, выполняем запрос и отдаём результат пользователю. Но на практике такая схема быстро упирается в ограничения.
https://habr.com/ru/companies/ozontech/articles/1084762/
🏷️ .NET, Базы данных, Высоконагруженные системы, Хранение данных
1 816
Adding JsonPath support to custom object models in .NET
Meziantou's blog | Gérald Barré | September 28, 2026
In Using JsonPath with System.Text.Json to query JSON in .NET, we used JsonNode as the input type. If your data is already loaded in domain classes, you can evaluate JsonPath directly on those classes without converting to JsonNode.
Meziantou.Framework.JsonPath exposes JsonPathNavigator<TValue> for this scenario. You provide JSON-like navigation semantics for your node type, and the evaluator does the rest. This is the same approach as in XPath for custom types in .NET, where we exposed custom objects to XPath by implementing an XPathNavigator: you expose navigation primitives through a navigator, and the query engine handles expression evaluation.
https://www.meziantou.net/adding-jsonpath-support-to-custom-object-models-in-dotnet.htm
🏷️ .NET
1 816
Rider 2026.2.3 Is Released!
The JetBrains Blog | .NET Tools | September 28, 2026
Rider 2026.2.3 brings AI performance analysis to the Monitoring tool window and fixes an issue with the AI Agent Setup widget on Windows. You can update directly from the IDE, through the Toolbox App, or by downloading the latest version from our website.
https://blog.jetbrains.com/dotnet/2026/09/28/rd-2026-2-3/
🏷️ AI, Performance monitoring, Release, Rider, dotTrace
