C# Portal | Программирование – Telegram
C# Portal | Программирование
14.9K subscribers
972 photos
118 videos
24 files
813 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для C#-разработчика

Связь: @devmangx

РКН: https://clck.ru/3FocB6
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Switch-выражения. Вы либо любите их, либо ненавидите

Но одно можно сказать точно:

Они используются в каждом проекте

И никуда не исчезнут.

Один простой способ упростить конструкцию switch — использовать switch-выражение.

Это способ сразу присвоить результат switch-конструкции переменной.

Смотрите пример на видео выше

А что предпочитаете вы: switch-оператор или switch-выражение? ☕️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍265😁2
Что нового в C# 14

Статья

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥1
Простой, хоть и не самый распространённый способ упростить условия if

—> используйте сопоставление с образцом по свойствам

Сопоставление с образцом по свойствам в C# — это мощный инструмент, который помогает упростить код и сделать его более понятным

👍 — база
🔥 — всё верно

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥23🤯53
Хочешь стать крутым разработчиком?

Разберись с конечными автоматами.

Вот определение для тех, кто любит точность:

"Конечный автомат — это математическая модель, которая используется для проектирования алгоритмов. Он получает входные данные и в зависимости от них переходит в другое состояние."


А если по-простому:

> Есть текущее состояние

> Происходит какое-то событие или действие

> Переход в новое состояние

Мы задаём все возможные состояния, переходы между ними и что эти переходы запускает

А дальше можно реализовать это как Saga — способ управления бизнес-логикой, которая тянется во времени

MassTransit
предлагает одну из самых удобных реализаций

Вот как можно начать: read

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥2😁2🤔1
BotSharp — мощный .NET-фреймворк для создания AI-агентов

Хочешь собрать собственного умного ассистента или интегрировать LLM в свой бизнес? Обрати внимание на BotSharp — это open-source фреймворк от SciSharp на .NET Core для создания AI-агентов и чат-ботов

👍 — как раз в тему
🔥 — лайк

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍203🤔2
Хочешь разрабатывать приложения в Azure? Запомни эти 3 типа облаков

> IAAS – Ты управляешь приложениями и данными, провайдер отвечает за «железо» и сеть.
> PAAS – Провайдер берёт на себя инфраструктуру и ОС, ты просто пишешь код.
> SAAS – Готовые приложения; минимум гибкости, максимум удобства

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
6
This media is not supported in your browser
VIEW IN TELEGRAM
Один простой хак для продуктивности умных C#-разработчиков

Создавай сразу несколько классов в Visual Studio

Как это сделать?

В окне «Добавить новый элемент» просто введи несколько названий классов, разделяя их запятыми

P.S. Смотри видео выше, как это работает

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍473
Многие неправильно понимают Clean Architecture

Я вижу одну и ту же ошибку снова и снова

Разработчики узнают про Clean Architecture, вдохновляются её идеями —
и сразу начинают лепить структуру проекта по знаменитой диаграмме

Но фишка вот в чём > Clean Architecture — это не про папки. Это про зависимости.

Саймон Браун даже написал «пропущенную главу» к книге дяди Боба, где как раз поднимает эту тему.

Но по какой-то причине главный смысл все равно теряется

Можно использовать Clean Architecture и без слоёв
Главное — правильно направлять зависимости

Вот два способа, как реально лучше структурировать приложение на Clean Architecture: читать

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍172
Пример SQL-запроса, который генерирует Entity Framework для вставки в SQL Server

Обрати внимание на использование оператора MERGE, который изначально предназначался для объединения двух таблиц

Такой подход выбран из соображений производительности 👍

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102🔥1
5 фич EF Core, которые тебе точно пригодятся

Разделение запросов (Query Splitting)
— Делит JOIN-запросы на несколько отдельных
— Может ускорить выполнение, особенно при сложных связях

Массовое обновление (Bulk Updates)
— Использует ExecuteUpdate для изменения множества сущностей
— Обновление идёт сразу в базу, мимо Unit of Work

Сырые SQL-запросы (Raw SQL)
— Подгружай сущности напрямую через SQL
— Полный контроль над запросом, можно юзать фичи SQL

Массовое удаление (Bulk Deletes)
— Через ExecuteDelete удаляешь пачку записей
— Тоже обходит Unit of Work и идёт сразу в базу

Игнорирование фильтров запросов (Ignore Query Filters)
— Фильтры позволяют скрывать строки по умолчанию
— Иногда нужно отключить, например, для админки

🧠 Бонус: ещё 5 фич EF Core тут

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍201
Фишка в Visual Studio для C# разработчиков — быстрое превращение JSON в классы, без онлайн-сервисов:

Просто скопируй JSON, зайди в Edit → Paste Special → Paste JSON as Classes — и Visual Studio сама сгенерит нужные классы.

Удобно и мгновенно ❤️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥48👍112
Rider 2025.1 получил несколько улучшений для работы с системой контроля версий

Теперь в представлении diff сразу отображаются детали коммита, а при обновлении удалённых репозиториев Git изменения подтягиваются автоматически

🔄 Держите свои репы в актуальном состоянии без лишних усилий

Дополнительные сведения о контроле версий можно найти — здесь

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🥴1
В превью C# 14 теперь можно передавать непараметризированный универсальный тип в nameof

Например, nameof(List<>) вернёт List

Раньше можно было передавать только закрытые универсальные типы, такие как List<int>, чтобы получить List

💖

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17😐7
Новая реализация JsonPatch с использованием System.Text.Json появится в ASP.NET Core 10 Preview 4! 💖

подробнее

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
Вот как завалить юнит-тестирование в C#

Пиши раздутые методы тестов. Если у теста такая структура:

→ Arrange 1
→ Act 1
→ Assert 1
→ Act 2
→ Assert 2
...

— он уже слишком большой. Такой тест проверяет сразу несколько сценариев, и если он упадёт — ты потратишь часы, разбираясь, почему.

Вместо этого пиши тесты по простой структуре:

→ Arrange
→ Act
→ Assert

Так ты сразу понимаешь, какой сценарий покрыт

Ты не Шекспир. Хватит писать тесты с множеством "действий". 😇

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤨41
В C# 14 (preview) допускается использование оператора условного доступа ?. слева от присваивания.

Ранее нужно было проверять, не равен ли customer значению null перед присваиванием заказа

В C# 14 метод GetCurrentOrder не вызывается, если customer равен null

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23🔥4🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Одна из многих функций ReSharper, которые мне нравятся — это постфиксные шаблоны.

> logger.inject → вставит зависимость в конструктор
> Process().await → обернёт вызов в await
> someValue.return → добавит return someValue;

В версии 2025.1 появился новый шаблон — .inject. Теперь внедрять зависимости стало ещё быстрее 💖

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥182
This media is not supported in your browser
VIEW IN TELEGRAM
Писать на C# стало ещё приятнее

В Rider 2025.1 добавили поддержку preview-фич C# 14:

> Упрощение nameof(List<>)
> Преобразования в Span
> Модификаторы у параметров лямбд

Полный разбор тут 😍

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🥴42
Вот 7 популярных репозиториев по архитектуре ПО (для .NET-разработчиков):

1. Эволюционная архитектура на примерах -> тык

2. Модульный монолит с DDD (предметно-ориентированным проектированием) -> тык

3. Стартер-кит на .NET 8 с поддержкой мультиарендности -> тык

4. Пример eCommerce-приложения на микросервисах в .NET -> тык

5. Пример архитектуры вертикальных срезов (Vertical Slice) -> тык

6. Шаблон .NET-приложения с чистой архитектурой -> тык

7. Пример приложения с гексагональной архитектурой -> тык

💖 — круто
👍 — сохранил

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32🔥72🐳1
Трассировка .NET-приложений с OpenTelemetry

Вы можете экспортировать телеметрию в Grafana, Seq, App Insights и другие.

Вот несколько библиотек OpenTelemetry для добавления в приложение:

> HttpClient
> AspNetCore
> EF Core
> Redis (StackExchange)
> PostgreSQL (Npgsql)

При запуске приложения вы сразу увидите трассировки от этих библиотек

OpenTelemetry позволяет глубже понять, как работает ваше приложение

Подробнее тут ❤️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53
Вот 9 отличных библиотек, которые я использую в своих проектах:

> YARP
> Polly
> EF Core
> Refit
> Testcontainers
> OpenTelemetry
> FluentValidation
> xUnit
> Dapper

А какую библиотеку ты бы добавил в этот список? ☕️

👉 @KodBlog
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥1