Почему асинхронность в C# важна для производительности
Статья раскрывает, как async/await в C# снижает нагрузку на процессор, ускоряя выполнение задач и оптимизируя работу с потоками. Подробно рассматриваются внутренние механизмы и перспективы развития асинхронного кода в .NET.
Читать подробнее: https://habr.com/ru/articles/928322/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья раскрывает, как async/await в C# снижает нагрузку на процессор, ускоряя выполнение задач и оптимизируя работу с потоками. Подробно рассматриваются внутренние механизмы и перспективы развития асинхронного кода в .NET.
Читать подробнее: https://habr.com/ru/articles/928322/
#ru
@dot_net_c_sharp | Другие наши каналы
✍1
Универсальный слой доступа к данным в .NET без ORM
Статья раскрывает подход создания persistence layer с помощью DAO на C# для работы с разными СУБД. Рассматриваются интерфейсы, менеджеры подключений и использование инъекций зависимостей для оптимизации управления соединениями и повышения производительности.
Читать подробнее: https://habr.com/ru/articles/928616/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья раскрывает подход создания persistence layer с помощью DAO на C# для работы с разными СУБД. Рассматриваются интерфейсы, менеджеры подключений и использование инъекций зависимостей для оптимизации управления соединениями и повышения производительности.
Читать подробнее: https://habr.com/ru/articles/928616/
#ru
@dot_net_c_sharp | Другие наши каналы
👎4
Как атрибуты Nullable улучшают безопасность кода в C#
Атрибуты [MaybeNull] и [NotNullWhen] в C# помогают компилятору учитывать возможность null даже для неnullable типов. Это улучшает проверку в дженериках и повышает надёжность кода, делая API более безопасным и удобным в использовании.
Читать подробнее: https://habr.com/ru/companies/otus/articles/928286/
#ru
@dot_net_c_sharp | Другие наши каналы
Атрибуты [MaybeNull] и [NotNullWhen] в C# помогают компилятору учитывать возможность null даже для неnullable типов. Это улучшает проверку в дженериках и повышает надёжность кода, делая API более безопасным и удобным в использовании.
Читать подробнее: https://habr.com/ru/companies/otus/articles/928286/
#ru
@dot_net_c_sharp | Другие наши каналы
👍5
Как управлять параллелизмом в Hangfire при работе с ограниченными ресурсами
Статья рассказывает, как с помощью очередей Hangfire эффективно контролировать количество параллельно выполняемых задач, обращающихся к ограниченным ресурсам, например, базам данных или API, без сложной ручной логики. Как ограничить параллельные задачи в C# на примере ClickHouse и SemaphoreSlim. В статье показано, как вручную управлять нагрузкой на разные ноды с помощью семафоров, сравнивая с удобством готового решения Hangfire и его преимуществами в масштабировании и поддержке. Как эффективно управлять нагрузкой с Hangfire? Статья рассказывает, как с помощью нескольких серверов и очередей в Hangfire можно контролировать параллелизм и распределять задачи по ресурсам без дополнительного кода. Это незаменимый инструмент для оптимизации работы.
Читать подробнее: https://habr.com/ru/articles/928136/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья рассказывает, как с помощью очередей Hangfire эффективно контролировать количество параллельно выполняемых задач, обращающихся к ограниченным ресурсам, например, базам данных или API, без сложной ручной логики. Как ограничить параллельные задачи в C# на примере ClickHouse и SemaphoreSlim. В статье показано, как вручную управлять нагрузкой на разные ноды с помощью семафоров, сравнивая с удобством готового решения Hangfire и его преимуществами в масштабировании и поддержке. Как эффективно управлять нагрузкой с Hangfire? Статья рассказывает, как с помощью нескольких серверов и очередей в Hangfire можно контролировать параллелизм и распределять задачи по ресурсам без дополнительного кода. Это незаменимый инструмент для оптимизации работы.
Читать подробнее: https://habr.com/ru/articles/928136/
#ru
@dot_net_c_sharp | Другие наши каналы
👍3
GitHub Copilot Chat для .NET: как выбрать режим работы. Ask Mode помогает быстро получить советы и примеры кода, не затрагивая файлы. Agent Mode — работает непосредственно с проектом, проводит рефакторинг и исправления. Выбор режима ускорит разработку и облегчит задачи.
Подробности: https://devblogs.microsoft.com/dotnet/ask-mode-vs-agent-mode/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://devblogs.microsoft.com/dotnet/ask-mode-vs-agent-mode/
#en
@dot_net_c_sharp | Другие наши каналы
Microsoft завершила поддержку Xamarin.Forms, рекомендуя переходить на MAUI — пока крайне сырой и несовместимый с наследуемыми проектами. В статье подробно разбирают, как обойти проблемы с компиляцией iOS-приложений и требованиями Apple при использовании Xamarin. Ошибка ITMS-91061 мешает загрузке .ipa из Xamarin.iOS в App Store из-за отсутствия PrivacyInfo.xcprivacy. В статье описан пошаговый способ создания файла, подписи фреймворков и сборки приложения, позволяющий успешно публиковать релизы через Transporter App.
Читать подробнее: https://habr.com/ru/articles/929780/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/929780/
#ru
@dot_net_c_sharp | Другие наши каналы
😢2
Новая API для source generators в .NET 10 решает проблему конфликтов с "маркерными атрибутами". С помощью атрибута [Embedded] и метода AddEmbeddedAttributeDefinition() теперь можно избежать предупреждений при сборке и упростить использование генераторов кода в многопроектах. Новые возможности для авторов source-генераторов в .NET 10 позволяют использовать AddEmbeddedAttributeDefinition() для встраивания атрибутов, упрощая разработку и снижая требования к пакетам. Альтернатива — shared dll, которая подходит для сложных публичных API. Выбор зависит от задач и аудитории.
Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-4-solving-the-source-generator-marker-attribute-problem-in-dotnet-10/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-4-solving-the-source-generator-marker-attribute-problem-in-dotnet-10/
#en
@dot_net_c_sharp | Другие наши каналы
Электронная подача документов в Черногории пока не работает. Автор статьи проверил систему CRPS: документы через личный кабинет отправить можно, но на стороне регистратора их не видят. Для регистрации всё равно нужны бумажные документы и личное общение с чиновниками. Регистрация компаний и налоговые сервисы в Черногории работают нестандартно: несмотря на сложности с подачей документов и старые технические решения, процесс двигается. Есть свои нюансы, но многие вопросы решаются с помощью поддержки. Опыт одного предпринимателя — в статье. Особенности жизни в Черногории глазами автора
В Черногории строго охраняется частная собственность: велосипед на парковке стоит год без опасений кражи. Местные читают много и разнообразно, книжных магазинов здесь больше, чем школ. Весной Подгорица оживает яркими контрастами природы.
Читать подробнее: https://habr.com/ru/articles/929072/
#ru
@dot_net_c_sharp | Другие наши каналы
В Черногории строго охраняется частная собственность: велосипед на парковке стоит год без опасений кражи. Местные читают много и разнообразно, книжных магазинов здесь больше, чем школ. Весной Подгорица оживает яркими контрастами природы.
Читать подробнее: https://habr.com/ru/articles/929072/
#ru
@dot_net_c_sharp | Другие наши каналы
❤1
MCP C# SDK обновился до спецификации 2025-06-18. Добавлены улучшенный протокол аутентификации, поддержка интерактивного сбора данных от пользователей и структурированный вывод инструментов. Это расширяет возможности создания безопасных и гибких AI-приложений на .NET. Новые возможности MCP C# SDK: поддержка протокола версии 2025-06-18 открывает расширенные функции для разработчиков AI на .NET. Обновлённый SDK улучшил аутентификацию, работу с инструментами и вывод данных, делая интеграции более мощными и безопасными.
Подробности: https://devblogs.microsoft.com/dotnet/mcp-csharp-sdk-2025-06-18-update/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://devblogs.microsoft.com/dotnet/mcp-csharp-sdk-2025-06-18-update/
#en
@dot_net_c_sharp | Другие наши каналы
.NET 8: новые возможности для разработчиков
В книге подробно раскрыты современные технологии .NET 8: работа с Web API, gRPC, Blazor Full Stack и мобильной разработкой на MAUI. Издание поможет освоить эффективные методы построения масштабируемых и безопасных приложений.
Читать подробнее: https://habr.com/ru/companies/piter/articles/930400/
#ru
@dot_net_c_sharp | Другие наши каналы
В книге подробно раскрыты современные технологии .NET 8: работа с Web API, gRPC, Blazor Full Stack и мобильной разработкой на MAUI. Издание поможет освоить эффективные методы построения масштабируемых и безопасных приложений.
Читать подробнее: https://habr.com/ru/companies/piter/articles/930400/
#ru
@dot_net_c_sharp | Другие наши каналы
Автоматизация мобильного тестирования: как команда Мельникова перешла от ручного регресса к ферме устройств и автотестам в CI. В статье подробно рассказывается о выборе инструментов, устройстве инфраструктуры и первых шагах к эффективности и качеству. Автоматизация тестирования мобильных приложений: как в Android удалось полностью запустить авто-тесты на реальных устройствах, а для iOS пока есть ограничения Apple. В планах — виртуальная ферма устройств и автозапуск тестов после деплоя. Оптимизация виртуальных ферм iOS: опыт и идеи
В статье обсуждаются подходы к решению проблем на iOS и улучшению работы виртуальных ферм. Автор приглашает делиться своим опытом и мыслями в комментариях, чтобы вместе найти лучшие решения.
Читать подробнее: https://habr.com/ru/companies/ingos_it/articles/931012/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье обсуждаются подходы к решению проблем на iOS и улучшению работы виртуальных ферм. Автор приглашает делиться своим опытом и мыслями в комментариях, чтобы вместе найти лучшие решения.
Читать подробнее: https://habr.com/ru/companies/ingos_it/articles/931012/
#ru
@dot_net_c_sharp | Другие наши каналы
SUMMARIZECOLUMNS в Power BI продолжает развиваться, а для C# появилось решение — NuGet пакет DaxSharp. Он реализует логику SUMMARIZECOLUMNS с декартовым произведением и выполнением по частям, позволяя создавать DAX-style запросы напрямую в C#, сохраняя контроль над процессом. Работа SUMMARIZECOLUMNS в DAX: как избежать декартова произведения и обрабатывать большие данные. В статье показаны примеры использования SUMMARIZECOLUMNS с группировками из одной и разных таблиц, а также как эффективно работать с миллиардными объемами данных без потери производительности. DaxSharp демонстрирует впечатляющую производительность, обрабатывая 100 млн записей с декартовым произведением полей 1 млн x 1 млн. Это подтверждает алгоритмическую корректность пакета и возможность создания C#-аналога логики DAX для Power BI.
Читать подробнее: https://habr.com/ru/articles/928416/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/928416/
#ru
@dot_net_c_sharp | Другие наши каналы
❤2
Ошибки в DI-контейнерах, особенно с Delegate-регистрациями в Autofac, приводят к сбоям в приложениях. Новая статья рассказывает, как с помощью анализа IL-кода и валидации при сборке избежать проблем с зависимостями и повысить стабильность сервиса.
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/925146/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/companies/skbkontur/articles/925146/
#ru
@dot_net_c_sharp | Другие наши каналы
❤2
Новое в .NET 10: команда dnx позволяет запускать инструменты без их установки. Это упрощает использование одноразовых утилит, аналогично npx в Node.js. Команда загружает и запускает инструмент напрямую из кэша, сокращая время и усилия.
Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-5-running-one-off-dotnet-tools-with-dnx/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-5-running-one-off-dotnet-tools-with-dnx/
#en
@dot_net_c_sharp | Другие наши каналы
Деревья выражений в C# помогают создавать быстрые и эффективные методы преобразования данных, ускоряя работу с объектами и запросами в Entity Framework Core. В статье раскрываются механизмы мэппинга и построения сложных фильтров через IQueryable.
Читать подробнее: https://habr.com/ru/articles/932110/
#ru
@dot_net_c_sharp | Другие наши каналы
Читать подробнее: https://habr.com/ru/articles/932110/
#ru
@dot_net_c_sharp | Другие наши каналы
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
.NET Aspire 9.4: крупное обновление с новой CLI, интерактивными дашбордами и поддержкой AI. Теперь разработка приложений стала быстрее и удобнее благодаря нативному AOT-инструменту и расширенным возможностям взаимодействия с пользователем.
Подробности: https://devblogs.microsoft.com/dotnet/announcing-aspire-9-4/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://devblogs.microsoft.com/dotnet/announcing-aspire-9-4/
#en
@dot_net_c_sharp | Другие наши каналы
❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаем простое TODO-приложение на React и Aspire. В статье подробно описывают настройку проекта, интеграцию с ASP.NET Core Web API и работу с базой SQLite через Entity Framework. Подробные инструкции помогут быстро запустить и протестировать приложение.
Подробности: https://devblogs.microsoft.com/dotnet/new-aspire-app-with-react/
#en
@dot_net_c_sharp | Другие наши каналы
Подробности: https://devblogs.microsoft.com/dotnet/new-aspire-app-with-react/
#en
@dot_net_c_sharp | Другие наши каналы
Генерация EventHandler-ов и работа с шиной сообщений теперь проще. В статье рассказывается о создании интерфейсов для отправки и обработки сообщений, включая работу с MassTransit, и об оптимизации генерации кода, уменьшающей рукописный объем и ускоряющей разработку. Генерация BatchEventHandler для WebAPI и MassTransit
Статья подробно описывает процесс создания генераторов для BatchEventHandler, которые упрощают обработку пакетных вставок и интеграцию с MassTransit, снижая объем ручного кода при разработке WebAPI с высокой нагрузкой. Регистрация и генерация кода для обработки событий облегчают разработку на .NET. В статье описывают создание генераторов для WebAPI, DTO и обработчиков, а также настройку шины сообщений с MassTransit. Кодогенерация сокращает трудозатраты в 11 раз, повышая скорость разработки.
Читать подробнее: https://habr.com/ru/articles/932630/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья подробно описывает процесс создания генераторов для BatchEventHandler, которые упрощают обработку пакетных вставок и интеграцию с MassTransit, снижая объем ручного кода при разработке WebAPI с высокой нагрузкой. Регистрация и генерация кода для обработки событий облегчают разработку на .NET. В статье описывают создание генераторов для WebAPI, DTO и обработчиков, а также настройку шины сообщений с MassTransit. Кодогенерация сокращает трудозатраты в 11 раз, повышая скорость разработки.
Читать подробнее: https://habr.com/ru/articles/932630/
#ru
@dot_net_c_sharp | Другие наши каналы
❤2
Как правильно работать с часовыми поясами в Telegram-ботах? Автор делится опытом решения проблем с отображением и сохранением времени в проекте для записи на игры. Основная сложность — разные часовые пояса участников и необходимость выбора локального времени вручную. Почему важно правильно работать с таймзонами в боте
Проблемы с датами и временем в Telegram-ботах связаны с часовыми поясами и переходом на летнее время. Автор статьи советует использовать реальные таймзоны и хранить время в UTC или таймзоне группы, чтобы избегать ошибок при планировании игр.
Читать подробнее: https://habr.com/ru/articles/932818/
#ru
@dot_net_c_sharp | Другие наши каналы
Проблемы с датами и временем в Telegram-ботах связаны с часовыми поясами и переходом на летнее время. Автор статьи советует использовать реальные таймзоны и хранить время в UTC или таймзоне группы, чтобы избегать ошибок при планировании игр.
Читать подробнее: https://habr.com/ru/articles/932818/
#ru
@dot_net_c_sharp | Другие наши каналы
Как работает генератор случайных чисел Rnd() в VBA
В статье раскрывают механизм функции Rnd() в VBA — её линейный конгруэнтный алгоритм, влияние аргументов на последовательность и особенности вычислений по модулю. Это полезный вводный обзор для тех, кто интересуется внутренним устройством генератора.
Читать подробнее: https://habr.com/ru/articles/932850/
#ru
@dot_net_c_sharp | Другие наши каналы
В статье раскрывают механизм функции Rnd() в VBA — её линейный конгруэнтный алгоритм, влияние аргументов на последовательность и особенности вычислений по модулю. Это полезный вводный обзор для тех, кто интересуется внутренним устройством генератора.
Читать подробнее: https://habr.com/ru/articles/932850/
#ru
@dot_net_c_sharp | Другие наши каналы
В C# проекты часто попадают ошибки из-за отключенного nullable-анализa. Включение #nullable enable и трактовка предупреждений как ошибок помогает избежать распространённых NullReferenceException и повысить надёжность кода. Это важный этап для безопасного и аккуратного программирования. Как избежать лишних копий struct и утечек памяти в C#
Статья разбирает, почему непомеченный readonly struct вызывает лишние копии, как правильно использовать readonly методы и in-параметры. Также объясняет, как забытые подписки на события приводят к утечкам памяти и как этого избежать. Тестирование и оптимизация в ASP.NET Core: узнайте, как проводить API-тесты и улучшать микросервисы с CQRS и Event Sourcing на .NET. Бесплатные открытые уроки и тесты доступны через Telegram-бот. Проверьте свои знания и развивайтесь вместе с профессионалами!
Читать подробнее: https://habr.com/ru/companies/otus/articles/932888/
#ru
@dot_net_c_sharp | Другие наши каналы
Статья разбирает, почему непомеченный readonly struct вызывает лишние копии, как правильно использовать readonly методы и in-параметры. Также объясняет, как забытые подписки на события приводят к утечкам памяти и как этого избежать. Тестирование и оптимизация в ASP.NET Core: узнайте, как проводить API-тесты и улучшать микросервисы с CQRS и Event Sourcing на .NET. Бесплатные открытые уроки и тесты доступны через Telegram-бот. Проверьте свои знания и развивайтесь вместе с профессионалами!
Читать подробнее: https://habr.com/ru/companies/otus/articles/932888/
#ru
@dot_net_c_sharp | Другие наши каналы
❤2