C# 1001 notes
6.5K subscribers
338 photos
9 videos
2 files
317 links
Регулярные короткие заметки по C# и .NET.

Просто о сложном для каждого.

admin - @haarrp
加入频道
⚙️☝️ Вебинар: Как Solidity обеспечивает доверие и прозрачность в взаимодействии пользователей

19 августа в 20:00 МСК мы разберемся, как технология блокчейн и смарт-контракты создают доверенную среду для всех участников. На примере реальных кейсов мы покажем, как эта технология применяется в децентрализованных финансах, голосованиях, управлении поставками и других критичных областях, где важна надежность и предсказуемость операций.

💪 Мы расскажем, как писать прозрачные и надежные системы для самых актуальных и перспективных технологий.
Запишитесь на вебинар и повышайте свою ценность на рынке. Все участникии получат индивидуальное предложение на курс «Solidity Developer».

👉 Для участия зарегистрируйтесь: https://otus.pw/Tdr7/?erid=2W5zFJetmkk

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🖥 Большинство .NET разработчиков никогда с этим не сталкиваются.

Но это делает отладку в 10 раз проще.

Стандартный вид при отладке:

{Namespace.ObjectName}


Никакого контекста. Много путаницы.

Но всего одной строкой кода?

Теперь окно наблюдения показывает:


Order ORD-2025-002: Bob Evans - 89.50
Order ORD-2025-003: Maria Lee - 1200.00


В чём фишка?

Используйте DebuggerDisplay.

Добавляете этот атрибут в начало класса, чтобы контролировать, как будет отображаться информация о классе при отладке.

В следующий раз, когда будете смотреть на {Namespace.ObjectName}, помните: так не обязательно должно быть.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔐 RBAC (Role-Based Access Control) в действии

Как работает RBAC:
- Роли получают набор разрешений
- Пользователи получают роли → а значит и разрешения
- Разрешения определяют, что пользователь может или не может делать

📌 Поток авторизации:
1. Пользователь проходит аутентификацию
2. Получает access token (JWT)
3. Делает API-запрос с токеном
4. Токен преобразуется в claims
5. Проверка прав (authorize)
6. Ответ API

Пример обработчика RBAC в C#:

internal sealed class PermissionAuthorizationHandler
: AuthorizationHandler<PermissionRequirement>
{
protected override Task HandleRequirementAsync(
AuthorizationHandlerContext context,
PermissionRequirement requirement)
{
HashSet<string> permissions = context.User.GetPermissions();

if (permissions.Contains(requirement.Permission))
{
context.Succeed(requirement);
}
return Task.CompletedTask;
}

}
В EF Core чаще всего используют два подхода:
- Database-First — быстрое создание моделей из готовой БД
- Code-First — проектирование схемы через C# классы и миграции

Но оба могут тормозить разработку при сложных связях и настройках.

👉 Есть третий путь — Model-First.
Вы визуально проектируете модель, а она автоматически превращается в EF Core сущности и схему БД.

🛠 Один из лучших инструментов — Entity Developer от Devart:
- drag-and-drop интерфейс вместо ручного кода
- меньше рутины и ошибок в конфигурации
- точная генерация кода и SQL-скриптов
- быстрее дизайн → генерация → обновление моделей

Меньше кода ✍️, больше скорости 🚀.

#dotnet #efcore #csharp #devtools
Ваши .NET проекты превратились в спагетти-код — пора перейти к Clean Architecture

Пока одни разработчики продолжают страдать с legacy-кодом, другие применяют Clean Architecture и создают гибкие, тестируемые приложения. Виктор Дзицкий покажет эволюционный путь от классической многослойной архитектуры к современным принципам проектирования.

Вебинар «От N-Layer к Clean Architecture: эволюция проектирования .NET приложений» в рамках курса «C# Developer. Professional»

→ 27 августа, 20:00

Программа:

→ Сравнение подходов: классическая N-Layer vs современная Clean Architecture
→ Принцип инверсии зависимостей (DIP) и Dependency Injection как основа трансформации
→ Практическая демонстрация: как реорганизовать N-Layer проект в Clean Architecture
→ Достижение независимости бизнес-логики от инфраструктуры

Бесплатная регистрация — превратите хаос в порядок: https://otus.pw/oUxz/?erid=2W5zFJASDdJ

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🔥 Хотите разобраться в ASP.NET Core на практике?

Репозиторий — это более 400+ римеров для всех версий ASP.NET Core (от 2.1 до 10 Preview).

Что внутри:
- Minimal API, Blazor, SignalR, gRPC
- Аутентификация, кэширование, health-checks
- Middleware, Razor Pages, HTMX и многое другое

Каждый пример запускается командой dotnet watch run и демонстрирует отдельную фичу.

Репо собрало уже 10k+ звёзд и считается одним из лучших ресурсов для изучения ASP.NET Core.

📌 Github
GoSharp Weekend — летняя перезагрузка для backend-разработчиков на Go и C#.

Спикеры — топовые инженеры Ozon Tech. Они расскажут:
🟢 как превратить блокировку ресурсов в инструмент оптимизации,
🟢 почему важно контролировать количество входящего трафика при использовании API Gateway,
🟢 как защитить домен от DDoS.

Помимо докладов: музыка, летние развлечения и закат на пирсе исторического яхт-клуба в центре Москвы.

Кстати, ведущим C#-трека станет автор онлайн-книги .NET Platform Architecture и спикер многих конференций — Станислав Сидристый.

Успейте забрать максимум от этого лета!

Участие бесплатное — нужно только зарегистрироваться и дождаться приглашения.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from C# (C Sharp) programming
🔍 NetSonar — инструмент для сетевой диагностики от sn4k3

NetSonar — это лёгкая и кроссплатформенная утилита, которая помогает диагностировать сеть, визуализировать данные и управлять сетевыми интерфейсами.

🧰 Возможности:
Многопротокольные пинги: ICMP, TCP, UDP и HTTP — проверка доступности и измерение задержек
Управление интерфейсами: просмотр IP‑конфигураций, статистики и управление адаптерами в реальном времени
Сканирование сети: обнаружение устройств, подсетей и открытых портов
Современный UI: интерфейс на Avalonia + SukiUI с тёмной темой и графиками
Кроссплатформенность: работает на Windows, macOS и Linux (на базе .NET)
Открытый код: лицензия AGPL‑3.0 — можно адаптировать и дорабатывать

🛠 Установка:
🔹 Windows:


🖥 Github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM