Блог о переходе Microsoft Office с RTC (Real-Time Channel) на современный .
NET
! Это было одно из самых первых применений
SignalR
в компании!#dotnet #aspnetcore #signalr
https://devblogs.microsoft.com/dotnet/office-rtc-dotnet-migration/
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Каждый разработчик должен знать о тестовых контейнерах. Это отличный инструмент, который нужно знать и применять, когда он вам понадобится.
Вот пример работы с Testcontainersна .NET:
https://testcontainers.com/guides/getting-started-with-testcontainers-for-dotnet/
#dotnet #csharp #fsharp
@csharp_1001_notes
Вот пример работы с Testcontainersна .NET:
https://testcontainers.com/guides/getting-started-with-testcontainers-for-dotnet/
#dotnet #csharp #fsharp
@csharp_1001_notes
🎉 Анонс выпуска .NET 9 Preview 3. 🙌
Узнайте, что нового появилось в библиотеках #dotNET, среде выполнения и SDK, включая:
➖ Библиотеку токенизаторов
➖ Более быстрая обработка исключений
... и многое другое.
Получить подробную информацию и ссылки на ресурсы можно здесь
➡️ https://github.com/dotnet/core/discussions/9271
Узнайте, что нового появилось в библиотеках #dotNET, среде выполнения и SDK, включая:
➖ Библиотеку токенизаторов
➖ Более быстрая обработка исключений
... и многое другое.
Получить подробную информацию и ссылки на ресурсы можно здесь
➡️ https://github.com/dotnet/core/discussions/9271
https://github.com/dotnet/runtime/issues/101437
#dotNET
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
List Add is way slower (almost 3 times) in `net9.0 preview 3` than with `net8.0` · Issue #101437 · dotnet/runtime
With the latest preview 3 (net9) there seems to be a major performance regression on MacOS 14.4 (M2 Pro) with lists. Given that they are one of the most used types, it should receive special treatm...
🔥 UUID v7 в .NET 9
.NET изначально поддерживает UUID v4 через
При этом начиная с предварительной версии 7, появилась поддержка UUID версии 7.
📌 UUID v7
Так как
Главным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.
Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.
📌 Контроль метки времени
Поскольку метод ожидает
#csharp #dotnet #code
Источник
@csharp_1001_notes
.NET изначально поддерживает UUID v4 через
Guid.NewGuid().
При этом начиная с предварительной версии 7, появилась поддержка UUID версии 7.
📌 UUID v7
Так как
GUID
является альтернативным названием для UUID,
новый API находится в пространстве имен System.Guid:
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
Главным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.
Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.
📌 Контроль метки времени
Поскольку метод ожидает
DateTimeOffset,
вызывающая функция может использовать TimeProvider для контроля UtcNow:
var uuid = Guid.CreateVersion7(timeProvider.GetUtcNow());
timeProvider
может быть получен через DI контейнер и подделан в тестовых сценариях.#csharp #dotnet #code
Источник
@csharp_1001_notes
🚀 Быстрый совет по увеличению производительности .NET API! 🚀
Использование потоков (async/await) может предотвратить блокировку между эндпоинатми и увеличить скорость работы вашего API! 🚀
#DotNET #APIOptimization #DevTips #Coding
@csharp_1001_notes
Использование потоков (async/await) может предотвратить блокировку между эндпоинатми и увеличить скорость работы вашего API! 🚀
#DotNET #APIOptimization #DevTips #Coding
@csharp_1001_notes
Если ты пишешь на .NET — возможно, ты хотя бы раз совершал одну из этих архитектурных (или просто утомительных) ошибок. Вот список анти-паттернов.
1. Blazor вместо React
Переизобретать веб на C# ради UI? Ты не Google. Если нужен зрелый фронт, бери то, что уже доказало свою масштабируемость.
2. Serverless Azure Functions на одном App Service Plan
"О, это же серверлесс!" — пока не замечаешь, что всё сидит на одном сервисе. Масштабируемость мнимая, расходы настоящие.
3. Самодельный MVC поверх Minimal APIs
Зачем ты пишешь свою обвязку маршрутов, контроллеров и зависимостей, если MVC уже всё это умеет?
4. Хранимки для CRUD
Хранимки — не антипаттерн, но когда их 200 штук для банального Insert/Update/Delete — это просто ORM с человеческим лицом, только сложнее.
5. "Юнит-тесты", которым нужен деплой БД
Это не юнит-тесты. Это интеграционные, а если быть честным — "fragile-тесты".
6. AutoMapper
В теории красиво, в проде — «а почему здесь null?». Иногда проще написать руками и понять, что происходит.
7. Игнор Microsoft Orleans
Если делаешь real-time, pub/sub, воркеры — Orleans стоит хотя бы попробовать. Он закрывает много боли, которую ты иначе сам будешь собирать по кускам.
8. Начинать с "микросервисов"
Монолит — не зло. Зло — это 12 проектов в solution, которые общаются через HTTP и собираются 10 минут.
9. gRPC для фронта
Если у тебя браузер → JS → gRPC → base64 → JSON — просто остановись. Возьми REST или GraphQL и живи спокойно.
10. Razor Pages вместо MVC
Да, они проще на старте. Но когда проект растёт, ты захочешь нормальное разделение по слоям, маршрутам и структуре.
🧠 Вывод: не все возможности .NET надо использовать. Иногда сила — в простоте.
C чем согласны ? Что добавили бы ?
#dotnet #csharp #webdev #архитектура #программирование
Please open Telegram to view this post
VIEW IN TELEGRAM