C# (C Sharp) programming
18.8K subscribers
738 photos
36 videos
8 files
661 links
По всем вопросам- @haarrp

C# - обучающий канал Senior C# разработчика.

@ai_machinelearning_big_data - Machine learning

@itchannels_telegram - 🔥лучшие ит-каналы

@csharp_ci - C# академия

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
🔦 Fluent UI Blazor — библиотека компонентов от Microsoft, которая переносит фирменный Fluent Design в Blazor-приложения. Она включает готовые решения для кнопок, карточек, таблиц и сложных элементов вроде диалоговых окон, сохраняя единый стиль современных продуктов Microsoft.

Проект имеет глубокую интеграцию с .NET 8/9 и гибкость: темы настраиваются через CSS-переменные, есть поддержка RTL и адаптация под системные настройки. Для старта можно использовать готовые шаблоны dotnet new или вручную подключить NuGet-пакеты.

🤖 GitHub

@csharp_ci
🧪 Puppeteer Sharp — .NET-порт популярной библиотеки Puppeteer для автоматизации браузера Chrome через DevTools Protocol. Позволяет скриптовать действия в браузере: делать скриншоты, генерировать PDF, парсить динамический контент и тестировать веб-приложения.

Проект поддерживает .NET Standard 2.0+ и .NET 8, включая AOT-компиляцию. Интеграция с C# делает его удобным альтернативным Node.js-версии, например, для E2E-тестов в ASP.NET или массовой генерации документов.

🤖 GitHub

@csharp_ci
🔥 В C# 14 (.NET 10 preview) появляется новое ключевое слово — field

Больше не нужно вручную создавать приватные поля для автосвойств.
Теперь можно обращаться к автоматически создаваемому полю через field прямо внутри get, set или init.

🧩 Пример:

string Name
{
get => field;
set => field = value.Trim();
}


Работает во всех аксессорах
Меньше кода — больше читаемости
Особенно удобно при валидации, логировании, модификации значений

⚠️ Если у тебя уже есть переменная с именем field, будут конфликты. Решения:
- использовать field
- или this.field
- или переименовать существующее поле
Хотите разобраться в тестировании API на ASP.NET Core?

➡️ Присоединяйтесь к открытому уроку «Тестирование API в ASP.NET Core: Интеграция и Нагрузка» 5 августа в 20:00 МСК. На вебинаре мы:
- Разберем ключевые концепции интеграционного и нагрузочного тестирования.
- Научимся писать интеграционные тесты с популярными библиотеками.
- Освоим инструменты для нагрузочного тестирования и анализа результатов.

📗 Этот урок — отличная подготовка к курсу «C# ASP.NET Core разработчик», который стартует совсем скоро. Все участники вебинара получат скидку на обучение!

Записаться на вебинар → https://otus.pw/ZkFR/?erid=2W5zFHq4zj2

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🖍️ MudBlazor — Material Design для Blazor-приложений. Библиотека компонентов для создания современных веб-интерфейсов на C# с минимальным использованием JavaScript. Включает все основные Material-элементы: кнопки, таблицы, диалоги и сложные компоновки.

Инструмент имеет глубокую интеграция с Blazor WASM и Server, включая темы, анимации и адаптивную верстку. Не требует сторонних зависимостей, что упрощает развертывание.

🤖 GitHub

@csharp_ci
🔥 Малоизвестная, но мощная фича в C# — System.Threading.Channels

Если ты всё ещё используешь Queue<T>, BlockingCollection<T> или ConcurrentQueue<T> для передачи данных — пора перейти на новый уровень.

💡 Channels — это современная реализация паттерна producer-consumer:
– без жёсткой связности между компонентами
– с полной поддержкой async/await
– с высокой пропускной способностью

📌 Каналы позволяют безопасно и эффективно передавать данные между частями приложения, особенно в асинхронных пайплайнах.

Есть два типа:
– UnboundedChannel — без лимита, но риск захламления памяти
– BoundedChannel — с ограничением, идеально для управления нагрузкой

⚙️ Используй Channel<T> вместо старых коллекций — и получи масштабируемую, надёжную архитектуру.

@csharp_ci