.NET / C# – Telegram
.NET / C#
3.92K subscribers
2.14K photos
40 videos
1 file
3.68K links
Лучшие материалы по разработке на платформе .NET и языке C#

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
.NET 8: новые возможности для разработчиков

В книге подробно раскрыты современные технологии .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 | Другие наши каналы
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 | Другие наши каналы
2
Ошибки в DI-контейнерах, особенно с Delegate-регистрациями в Autofac, приводят к сбоям в приложениях. Новая статья рассказывает, как с помощью анализа IL-кода и валидации при сборке избежать проблем с зависимостями и повысить стабильность сервиса.

Читать подробнее: 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 | Другие наши каналы
Деревья выражений в C# помогают создавать быстрые и эффективные методы преобразования данных, ускоряя работу с объектами и запросами в Entity Framework Core. В статье раскрываются механизмы мэппинга и построения сложных фильтров через IQueryable.

Читать подробнее: 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 | Другие наши каналы
❤‍🔥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 | Другие наши каналы
Генерация EventHandler-ов и работа с шиной сообщений теперь проще. В статье рассказывается о создании интерфейсов для отправки и обработки сообщений, включая работу с MassTransit, и об оптимизации генерации кода, уменьшающей рукописный объем и ускоряющей разработку. Генерация BatchEventHandler для WebAPI и MassTransit

Статья подробно описывает процесс создания генераторов для 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 | Другие наши каналы
Как работает генератор случайных чисел Rnd() в VBA

В статье раскрывают механизм функции 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 | Другие наши каналы
2
Анализ кода Lean trading engine выявил критичные ошибки, способные привести к финансовым потерям. Статический анализатор PVS-Studio нашёл баги в ключевых методах и опасные моменты в обработке данных. Важно учитывать эти проблемы при разработке торговых стратегий.

Читать подробнее: https://habr.com/ru/companies/pvs-studio/articles/933190/

#ru

@dot_net_c_sharp | Другие наши каналы
Почему throw не лучше goto: стоит ли избегать исключений?
В статье обсуждают параллели между throw и goto, показывая, что бездумное использование исключений ведёт к сложному, запутанному коду. Рекомендуется выбрасывать исключения только в критичных случаях, отдавая предпочтение явному возврату ошибок. Как избежать try-catch и упростить обработку ошибок в C#? В статье показан паттерн Result, который аккуратно обрабатывает успешные и ошибочные результаты без лишних исключений. Решение улучшает читаемость кода и позволяет удобно работать с ошибками и данными. Ошибка при пустом значении и выбор места для Result — важная тема для разработчиков. Статья рассказывает, как избежать ошибок и сделать код понятнее. Также проводится опрос о способах обработки ошибок в коде.

Читать подробнее: https://habr.com/ru/articles/933454/

#ru

@dot_net_c_sharp | Другие наши каналы
4🤣2
Готовое решение или собственная разработка для подписок и регулярных платежей? Павел из DD Planet делится опытом и рассказывает, с какими вызовами сталкиваются сервисы, выбирая между универсальными инструментами и созданием кастомных систем. Подробнее по ссылке.

Читать подробнее: https://habr.com/ru/articles/933844/

#ru

@dot_net_c_sharp | Другие наши каналы
👍4
Новый NuGet-обновлятор в Dependabot ускоряет и улучшает обновление зависимостей .NET, используя нативные инструменты .NET. Это повышает надёжность, уменьшает количество ошибок и поддерживает сложные проекты, сохраняя настройки SDK и совместимость с приватными фидами.

Подробности: https://devblogs.microsoft.com/dotnet/the-new-dependabot-nuget-updater/

#en

@dot_net_c_sharp | Другие наши каналы
Как программист создал Telegram-бота для организации игр с друзьями. Бот помогает планировать игровые сессии и напоминает о них. Проект набирает популярность: более 300 пользователей и почти 100 групп. Автор делится опытом продвижения и развития своего пет-проекта. Как продвигать игровые боты: опыт и трудности

Автор делится неудачами в продвижении своего бесплатного игрового бота через платформы Хабр, DTF, Пикабу, Reddit и StopGame. Несмотря на старания, модерация и отсутствие отклика мешают росту аудитории. Бот не покорил массы, но приносит пользу друзьям. Автор поделился опытом создания и продвижения бота, который так и остался нишевым, но помогает не забывать о совместных играх. Хотите попробовать или помочь с идеями?

Читать подробнее: https://habr.com/ru/articles/934016/

#ru

@dot_net_c_sharp | Другие наши каналы
👎1
Новая поддержка Passkey в ASP.NET Core Identity появилась в предварительном релизе .NET 10. Теперь в шаблоне Blazor можно создавать и использовать пассключи для аутентификации без пароля. Пока пароль всё ещё обязателен, но вход с пассключом упрощает процесс и повышает безопасность. Новые возможности .NET 10: поддержка Passkeys в ASP.NET Core Identity

Статья рассказывает о внедрении поддержки Passkeys в ASP.NET Core Identity и Blazor Web App. Описан процесс создания, сохранения и использования паскейков для безопасного входа без пароля.

Подробности: https://andrewlock.net/exploring-dotnet-10-preview-features-6-passkey-support-for-aspnetcore-identity/

#en

@dot_net_c_sharp | Другие наши каналы
.NET Conf 2025: открыт приём докладов! С 11 по 13 ноября пройдёт онлайн-конференция, посвящённая запуску .NET 10 и новым возможностям платформы. Уникальный шанс поделиться опытом и вдохновить сообщество. Подайте заявку до 31 августа!

Подробности: https://devblogs.microsoft.com/dotnet/dotnet-conf-2025-announcing-the-call-for-content/

#en

@dot_net_c_sharp | Другие наши каналы
Новые возможности для оценки ИИ в .NET
Microsoft расширила библиотеки Microsoft.Extensions.AI.Evaluation, добавив инструменты для анализа качества работы ИИ-агентов и метрик NLP. Теперь стало проще проверять корректность понимания, выполнения задач и сходство текстов без использования моделей. Новые возможности оценки качества AI-агентов от Microsoft позволяют анализировать ответы моделей с помощью специальных инструментов. В статье показано, как настроить и запустить тесты для оценки качества обслуживания и NLP, а также как получить подробный HTML-отчет с результатами.

Подробности: https://devblogs.microsoft.com/dotnet/exploring-agent-quality-and-nlp-evaluators/

#en

@dot_net_c_sharp | Другие наши каналы
Как организовать автоматическое логирование методов бесплатно и эффективно? В статье рассказывается об использовании NuGet-пакета MethodBoundaryAspect.Fody, который через атрибуты позволяет фиксировать вызовы методов и исключения. Правила подключения и важные нюансы внедрения. Логирование с помощью атрибута LogAttribute требует аккуратности: класс атрибута не сохраняет состояние, поэтому для сохранения данных вызывается args.MethodExecutionTag. Это помогает отслеживать вызовы методов, но сложности возникают с генераторами и передачей correlation id. Логирование методов через атрибуты: как работают генераторы в C# с MethodBoundaryAspect.Fody. В статье подробно разбирается последовательность вызовов генераторов и особенности их логирования без вложенности. Полезно для разработчиков, работающих с AOP и асинхронным кодом.

Читать подробнее: https://habr.com/ru/articles/934350/

#ru

@dot_net_c_sharp | Другие наши каналы