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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Новая эра тестирования с Microsoft.Testing.Platform

Год назад Microsoft.Testing.Platform сделал первый шаг в мир тестирования .NET. Теперь все главные фреймворки, включая NUnit, xUnit.net и MSTest, поддерживают эту платформу. Она облегчает разработку, убирая зависимость от vstest.console и dotnet test, и свободно распространяется. Полный код доступен на GitHub. Эволюция .NET тестирования с xUnit.net

Текст: Изучите обновление в xUnit.net с поддержкой платформы Microsoft Testing Platform. Новая конфигурация проекта Contoso.Tests использует современные технологии для расширенных тестирований. Присоединяйтесь к сообществу разработчиков и помогайте в развитии .NET экосистемы!

Подробности: https://devblogs.microsoft.com/dotnet/mtp-adoption-frameworks/

#en

@dot_net_c_sharp | Другие наши каналы
🚀 Новая библиотека компонентов V-Control для .NET MAUI

Теперь разработка мобильных приложений станет еще проще! Выпущена библиотека V-Control, которая предлагает готовые UI-компоненты для быстрого создания интерфейсов. Используйте .NET MAUI и V-Control для эффективной разработки кроссплатформенных приложений. Подробнее на GitHub.

Подробности: https://jevonsflash.hashnode.dev/v-control-an-out-of-the-box-net-maui-component-library-is-released

#en

@dot_net_c_sharp | Другие наши каналы
Вдумчивое использование типов в проектировании

Текст: В статье раскрываются методы применения типов для улучшения дизайна и корректности на микроуровне. Рассматривается пример с типом Contacts и идеи создания "атомарных" типов для консистентности данных. F# выделяется лёгкостью работы с типами.

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

#ru

@dot_net_c_sharp | Другие наши каналы
🛡️ Защита от XSS-атак с Trusted Types в ASP.NET Core

Обеспечьте безопасность вашего приложения с помощью Trusted Types и Content-Security-Policy (CSP), чтобы предотвратить XSS-атаки. Узнайте, как Trusted Types изменяет использование небезопасных API, таких как `innerHTML`, и как безопасно отображать пользовательский ввод, чтобы предотвратить уязвимости. Поддержка доступна в Chromium с версии 83. Как защититься от XSS-атак с помощью Trusted Types

Текст: В браузерной среде некоторые API могут быть уязвимы для XSS-атак. Статья знакомит с использованием API Trusted Types для повышения безопасности. Для минимизации рисков разработчикам предлагается создавать собственные политики или использовать библиотеки вроде DOMPurify.

Подробности: https://andrewlock.net/preventing-client-side-cross-site-noscripting-vulnerabilities-with-trusted-types/

#en

@dot_net_c_sharp | Другие наши каналы
Часть 1: Почему стандартное логирование может тормозить .NET-приложения

Узнайте, как стандартное логирование в .NET может замедлять работу приложения. Разбираем основные проблемы, связанные с записью логов, и их влияние на производительность.

Читать: «Часть 1: Почему стандартное логирование может тормозить .NET-приложения»

#ru

@dot_net_c_sharp | Другие наши каналы
2
Улучшения в C# Dev Kit: что нового?

Вышло обновление C# Dev Kit для VS Code, улучшающее ваш опыт работы. Включены режим работы без файлов решений, поддержка .NET Aspire для оптимизации процессов и усовершенствования в Razor/Blazor. Обновленные функции делают разработку и отладку более эффективной и удобной. Дайте нам знать ваше мнение!

Подробности: https://devblogs.microsoft.com/dotnet/csharp-on-visual-studio-code-just-got-better-with-enhancements-to-csharp-dev-kit/

#en

@dot_net_c_sharp | Другие наши каналы
🔧 Обновления .NET: версии 9.0.2 и 8.0.13

В этом месяце вышли новые обновления .NET 9.0.2 и 8.0.13, но никаких новых исправлений безопасности не добавлено. Обновления касаются ASP.NET Core, EF Core и других компонентов. Подробности смотрите в релиз-заметках. Не забудьте обновить свои версии.

Подробности: https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-february-2025-servicing-updates/

#en

@dot_net_c_sharp | Другие наши каналы
🔍 Разделяй и здравствуй: CQRS и MediatR

В .NET часто связывают CQRS с библиотекой MediatR, что приводит к излишней сложности и недопониманию. CQRS разделяет операции чтения и записи, тогда как MediatR упрощает коммуникацию между компонентами. Стоит оценивать их совместное применение, учитывая контекст проекта.

Подробности: https://milanjovanovic.hashnode.dev/stop-conflating-cqrs-and-mediatr

#en

@dot_net_c_sharp | Другие наши каналы
🔧 Увеличьте продуктивность с C# Source Generators

C# Source Generators — это инструмент, который упрощает разработку, автоматически генерируя код во время компиляции. Он позволяет избежать рутинных задач и повысить производительность. Узнайте о создании методов `ToString` и генерации классов на основе таблиц БД в статье.

Подробности: https://softlogy.hashnode.dev/c-source-generators-let-your-code-write-code-for-you

#en

@dot_net_c_sharp | Другие наши каналы
Новый курс: Генеративный ИИ для .NET-разработчиков

Узнайте, как начать работать с генеративным ИИ в .NET! Этот курс познакомит вас с базовыми понятиями, настройкой среды и созданием решений на основе ИИ с использованием инструментов Microsoft и GitHub. Присоединяйтесь и применяйте ИИ в своих проектах уже сегодня!

Подробности: https://devblogs.microsoft.com/dotnet/announcing-generative-ai-for-beginners-dotnet/

#en

@dot_net_c_sharp | Другие наши каналы
🔥2
🚀 Автоматизация офисных приложений в Linux: новые горизонты

Кирилл Пронин из PIX Robotics делится опытом интеграции PIX Studio с офисными приложениями в Linux. В статье рассматриваются тонкости работы с XML-форматами и выбор между XDocument и XmlDocument. Узнайте, как эффективно обрабатывать данные и управлять документацией.

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

#ru

@dot_net_c_sharp | Другие наши каналы
Часть 2: Как оптимизировать логирование в .NET: советы и примеры

Узнайте, как оптимизировать логирование в .NET на практике. Разбираем тесты производительности, сравниваем методы и показываем, как автоматизировать переход на эффективное логирование.

Читать: «Часть 2: Как оптимизировать логирование в .NET: советы и примеры»

#ru

@dot_net_c_sharp | Другие наши каналы
Новые возможности для разработки с Razor

Вам понравятся свежие обновления для Visual Studio и Visual Studio Code! Функция Extract to Component упростит создание компонентов, а токенизатор Roslyn улучшит обработку C# в Razor. Узнайте, как эти инструменты сделают ваш код чище и эффективнее.

Подробности: https://devblogs.microsoft.com/dotnet/enhancing-razor-productivity-with-new-features/

#en

@dot_net_c_sharp | Другие наши каналы
👍1
🔍 Обнаружены ошибки в MSBuild от Microsoft

В рамках анализа MSBuild, инструмента для сборки приложений от Microsoft, выявлены потенциальные ошибки. Первый случай: некорректная строка формата при вызове метода Trace, что приводит к потере сообщений об ошибках. Во втором случае неправильная отписка от событий может привести к неожиданному поведению.

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

#ru

@dot_net_c_sharp | Другие наши каналы
👍2
Погружаемся в мир делегатов C#

Делегаты в C#—это указатели на методы, хранящие ссылки в хипе и позволящие взаимодействовать с классами и их переменными. В данной статье разъясняется, как делегаты работают на низком уровне. Обсуждаются механизмы, такие как замыкания, и отличается ли их поведение с классами и структурами.

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

#ru

@dot_net_c_sharp | Другие наши каналы
👍4
🔍 Делегаты в C#: что это и зачем нужно?

Делегаты в C# позволяют передавать методы как аргументы и хранить функции в переменных, что делает код более гибким и переиспользуемым. Они похожи на указатели функций в C++, но более безопасны. Из статьи вы узнаете, как использовать делегаты для логирования и динамического вызова методов.

Подробности: https://theoramalatso.hashnode.dev/understanding-delegates-in-c

#en

@dot_net_c_sharp | Другие наши каналы
👍3
Тайны кастования в C#: изучаем детали

В статье автор делится опытом реализации кастования через оператор 'as' в C#, исследуя, при каких условиях возникают ошибки компиляции. Вопросы возникают на границе работы с интерфейсами. Почему компилятор позволяет преобразования, даже если класс не реализует интерфейс напрямую? Ответ скрыт в особенностях C#.

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

#ru

@dot_net_c_sharp | Другие наши каналы
🗿1
Паттерн Репозитория: Когда и как использовать

Суть статьи: Паттерн Репозитория популяризировался благодаря концепциям Domain-Driven Design, но его нередко применяют неуместно. Он эффективен для сложной логики и агрегатов, но избыточен для простых CRUD операций. Важно понимать, когда использовать репозиторий, чтобы не усложнять код. Правильное применение DDD и паттерна Repository

Текст: Domain-Driven Design — это методология, а не универсальное решение. Важно понимать контексты и создавать целостные модели, не превращая каждую таблицу в репозиторий. Ценим простоту и продуманность архитектуры для достижения лучших результатов.

Подробности: https://danyl.hashnode.dev/the-overuse-of-repositories

#en

@dot_net_c_sharp | Другие наши каналы
Генерация случайных строк: быстро и просто

Встретилась необходимость генерировать случайные строки для тестирования или анонимизации данных? Разработанное решение позволяет создать такие строки любой длины с абсолютной случайностью буквально за секунды. Идеально для наполнения тестовой базы данных разработчикам всех уровней. Эффективная генерация уникальных строк на C#

Реализован алгоритм, генерирующий 100 млн. уникальных строк менее чем за минуту на обычном ПК. Генерация происходит через GUID и криптохэширование с параллельной обработкой. Результат сохраняется в массив, который при записи в файл занимает около 4Гб. Код проверен на .NET8.

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

#ru

@dot_net_c_sharp | Другие наши каналы
Настройка переменных окружения в IIS без перезагрузки

Описание: Управление переменными окружения в IIS может быть сложной задачей. В статье рассматриваются различные подходы, такие как настройка на уровне системы, для служб W3SVC и WAS, а также через файл applicationHost.config. Узнайте об их преимуществах и ограничениях.

Подробности: https://andrewlock.net/setting-environment-variables-in-iis-and-avoiding-app-pool-restarts/

#en

@dot_net_c_sharp | Другие наши каналы
Как улучшить производительность запросов в EF Core

Использование EF Core может быть медленным, особенно при обработке больших объемов данных. В статье обсуждается семь стратегий для оптимизации запросов. Среди них — проекция нужных данных, использование .AsSplitQuery() для работы с связанными сущностями и применение асинхронных методов для повышения отзывчивости приложений.

Подробности: https://ujjwal-ghatani-dev.hashnode.dev/boost-your-applications-performance-7-effective-strategies-for-writing-efficient-db-queries-in-ef-core

#en

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