C# (C Sharp) programming
18.5K subscribers
799 photos
41 videos
8 files
702 links
По всем вопросам- @haarrp

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

@ai_machinelearning_big_data - Machine learning

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

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

@pythonlbooks- книги📚

Реестр РКН: https://clck.ru/3Fk3kb
Download Telegram
⚙️ Создание фоновых задач в .NET с Quartz

Если тебе нужно планировать фоновые задачи в .NET — попробуй Quartz.
Всё просто: реализуешь интерфейс, регистрируешь задачу — и Quartz берёт на себя расписание и выполнение.

Что делает Quartz удобным:
- Глубокая интеграция с Dependency Injection — можно внедрять сервисы, логеры и репозитории;
- Scoped-область задач — безопасно использовать DbContext без проблем с жизненным циклом;
- Умный планировщик: без ручных таймеров и бесконечных циклов.

После Quartz уже не хочется возвращаться к ручным решениям.

📘 Подробный гайд по продвинутой работе с Quartz в .NET
Что выведет на экран этот код?
Anonymous Quiz
27%
A42
15%
A6
10%
G
22%
71
22%
Код не скомпилируется
4%
🥒
А ты правильно называешь свои DTO? 🤔

DTO (Data Transfer Object) — это объект передачи данных.

Проще говоря, это класс или структура, которая используется, чтобы передавать данные между слоями приложения или между сервером и клиентом (например, в API).

Когда ты создаёшь Web API, твои эндпоинты принимают и отдают данные.
Обычно такие модели называют с суффиксом DTO (Data Transfer Object).

Но вот в чём проблема 👇

DTO часто смешивают входные и выходные данные в одном классе.
Со временем такие классы разрастаются и становятся неразберихой.

👉 Лучше использовать суффиксы Request и Response:
• CreateUserRequest — для входных данных
• UserResponse — для выходных

Почему это лучше:

Понятнее — сразу видно, для чего модель.
Масштабируемо — изменения в Response не ломают Request.
Удобнее сопровождать — не нужно гадать, что делает UserDto.

📌 Совет: какую бы схему ты ни выбрал — будь последовательным и используй её во всём проекте.

А ты используешь Request/Response или по-старинке DTO? 👇
EF Core: Что скрывают за репозиторием?

Entity Framework Core — мощный инструмент, но его часто оборачивают в Repository Pattern, не задумываясь, действительно ли это нужно. На открытом вебинаре курса OTUS C# Developer. Professional Виктор Дзицкий покажет, когда репозиторий оправдан, а когда он только мешает.

📌 5 ноября, 20:00EF
Core: Что скрывают за репозиторием?
— когда Repository Pattern избыточен
— реализация Specification Pattern для гибких запросов
— как объединить оба подхода для чистой архитектуры

Вебинар бесплатный и будет полезен C# и .NET-разработчикам, которые активно используют EF Core и хотят сделать код доступа к данным тестируемым и поддерживаемым.

👉 Регистрируйтесь: https://otus.pw/SwNU/?erid=2W5zFJEjp2k

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
🔥 dotenvx — улучшенная версия популярной библиотеки dotenv, созданная её автором!

💡 Dotenvx предназначен для управления переменными окружения в приложениях и предлагает расширенные возможности, такие как поддержка нескольких сред, шифрование .env файлов и кроссплатформенность.

🔍 Основные преимущества dotenvx:

🌟 Шифрование .env файлов: обеспечивает безопасность конфиденциальных данных, хранящихся в переменных окружения.

🌟 Кроссплатформенность: совместим с различными языками программирования и фреймворками, такими как Python, PHP, Ruby, Go, Rust, Java, .NET и другие.

🔐 Лицензия: BSD-3-Clause

🖥 Github

@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM
Приходи на C#-дебаты – 1,5 часа на полезные знакомства и обсуждения

28 октября пройдут C#-дебаты — вечер, где обсуждаем код, архитектуру и инженерные решения. Твое мнение важно!

Как это будет: Участники случайным образом распределяются в zoom-комнаты, в каждой — модератор, который поможет разогнать разговор (или вовремя потушить пожар 🔥). 3 раунда по 30 минут.

Зачем приходить:

- Обсудишь темы, которые вызывают споры: performance vs readability, скорость vs стабильность, код vs бизнес-задачи.

-Заберешь идеи и практики, которые работают у других, и поделишься своим опытом.

- Найдешь полезные контакты и познакомишься с C#-коммьюнити.

Вечер организует Mindbox, но будет «без оружия»: никакого хантинга и рассказа про вакансии, пока ты сам не спросишь.

📅 Когда: 28 октября
Во сколько: 19:00–20:50 (мск)
📍 Где: Zoom (ссылку пришлём после регистрации)

👉 Зарегистрироваться
⚙️ 3 способа определить Middleware в ASP.NET Core

Middleware - это компоненты, которые добавляют дополнительную логику до или после обработки HTTP-запроса.

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

🔧 В ASP.NET Core уже встроено множество middleware (Static Files, Routing, Authentication и др.),
но вы можете создавать и свои собственные.

Вот три основных способа это сделать:
- Request Delegates - определяете логику прямо в app.Use(...)
- Convention-based - создаёте класс с методом Invoke или InvokeAsync
- Factory-based - используете фабрику с внедрением зависимостей (DI)

🧠 Подробный разбор и примеры кода - в статье


#dotnet #aspnetcore #backend #middleware #csharp
Media is too big
VIEW IN TELEGRAM
Не пропусти МТС True Tech Champ — масштабный фестиваль 21 ноября для тех, кто живет технологиями 🔥

Тебя ждут:

▫️ Захватывающая сюжетная линия. Тебя ждет уникальная кибервселенная с возможностью влиять на ход происходящего.
▫️ Конференция с международными спикерами. Эксперты расскажут о трендах в ИИ и инновациях в индустрии.
▫️ ИТ-качалка. Наращивай экспертизу на воркшопах.
▫️ Шоу-финал ИТ-чемпионата. Более 250 талантов со всей России сразятся в лайв-кодинге и программировании роботов на скоростное прохождение лабиринтов со спецэффектами. Выбирай и болей за фаворитов.
▫️ Айтивности. Тебя ждут бои роботов, кодерские челленджи, пайка плат и не только. Заработай True Coins и обменяй их на стильный мерч.
▫️ HR-Hub. Команда МТС расскажет о возможностях для развития в компании и поможет перезагрузить карьерный трек.
▫️ Афтепати со звездными хэдлайнерами. Зажги под популярные хиты.

Когда: 21 ноября, МТС Live Холл в Москве и онлайн.

Регистрируйся на сайте. Участие бесплатно, количество мест ограничено.
This media is not supported in your browser
VIEW IN TELEGRAM
Не пропустите! 28 октября в 20:00 пройдет бесплатный урок курса “Unity Game Developer. Professional” по теме “Unity Архитектура: от хаоса к порядку.” Запись: https://otus.pw/udwz/

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

Что вы узнаете:

- Индустриальные стандарты разработки игр — погрузимся в реальные практики топовых студий
- Scene Driven Design — рассмотрим плюсы и минусы популярного подхода создания игр "От Сцены"
- AppScene + Additive — разберем профессиональный подход создания игр, где сцена перестает быть главным состоянием игры и становится одним из элементов геймплея
- Лучшие практики — изучим проверенные временем решения для создания стабильных проектов
- Типичные ошибки — узнаем, как избежать распространенных проблем в архитектуре

Записывайтесь на вебинар и получите спец. предложение на обучение:

https://otus.pw/udwz/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963
Media is too big
VIEW IN TELEGRAM
🖥 Шардирование в базах данных: обзор концепции

Шардирование или шардинг - это принцип проектирования базы данных, при котором данные разбиваются на части и размещаются на разных шардах.

Интерактивный лонгрид по шардированию баз данных.

В нем разобрано все - от принципов работы шардов и причин, зачем это вообще нужно, до тонкостей проектирования и типовых ошибок.
Каждый раздел сопровождается интерактивными диаграммами, с которыми можно экспериментировать прямо в статье.

Отличный материал, чтобы прокачать понимание распределённых БД на выходных 💡

Статья: https://planetscale.com/blog/database-sharding

Видео: https://www.youtube.com/watch?v=R2ML2jLs3_U
Please open Telegram to view this post
VIEW IN TELEGRAM
Ubuntu Unity остался без разработчиков и новых релизов

Проект Ubuntu Unity не может сформировать новый релиз 25.10 из-за отсутствия разработчиков, способных исправить критические проблемы с работой пользовательского окружения Unity, возникающие при использовании пакетной базы Ubuntu 25.10. Пользователям Ubuntu Unity не рекомендуется обновлять свои системы до ветки 25.10 или пытаться установить пакеты с Unity поверх других редакций Ubuntu 25.10, так как это может нарушить работоспособность системы.

https://opennet.ru/64125/
Интенсив по Unity: создай и монетизируй свою инди-игру

Присоединяйся к 2-месячному интенсиву по Unity, во время которого ты с нуля создашь культовую игру «2048», научишься кастомизировать проект с помощью нейросети и работать с алгоритмами. 

Кому подойдёт интенсив:
➡️ Планируешь усилить портфолио крутым проектом, чтобы попасть на стажировку в геймдев студии;
➡️ Думаешь о монетизации собственных знаний уже сейчас
➡️ Хочешь научиться работать с нейросетями, чтобы добавить игре свой стиль;

Только на этом потоке онлайн-лекции проходят лично с создателями интенсива — опытными геймдев-разработчиками.

▪️старт 3 ноября
▪️длительность: 2 месяца
▪️стоимость за весь курс 35 000 руб.

Переходи на сайт и оставляй заявку, чтобы всего через 2 месяца начать зарабатывать на собственной инди-игре

erid: 2W5zFHXTbda
Но я уже и сам догадался
🔐 Что такое RBAC (Role-Based Access Control)

RBAC - это модель контроля доступа на основе ролей. Она помогает управлять авторизацией в приложениях просто и масштабируемо.

Как работает RBAC:
- Ролям назначаются определённые разрешения (permissions);
- Пользователям присваиваются роли, и через них - разрешения;
- Разрешения определяют, что пользователь может или не может делать.

📌 Преимущество RBAC в том, что можно централизованно управлять правами доступа.
Но часто роли оказываются слишком «грубыми» — не хватает точности для отдельных политик безопасности.

Здесь на помощь приходят permissions — разрешения на конкретные действия.
Если нужно дать доступ другой роли, достаточно просто добавить разрешение к роли, не переписывая всю систему авторизации.

💡 Простая концепция, но невероятно мощная в управлении доступом.

Подробнее
Last Call: не пропусти Wink AI Challenge — первый в России ИИ-хакатон в киноиндустрии. Создай своё решение, которое ускорит производство фильмов и сериалов. Призовой фонд — 1 125 000 рублей.

Регистрация открыта до 4 ноября: https://cnrlink.com/winkaichallengecsharp

Приглашаем ML-инженеров, backend- и frontend-разработчиков, DevOps, MLOps и мультимедиа-инженеров.

Главные причины присоединиться:
🔸 Работа с настоящими сценариями и материалами, анализ текстов, извлечение сущностей, генерация структуры съёмок.
🔸 Практика применения NLP, NER и мультимодальных данных в задачах кинопроизводства.
🔸 Разработка ИИ-сервиса, который оценят и будут использовать продюсеры популярных российских фильмов и сериалов.
🔸 Реальный кейс в портфолио, созданный специально для крупнейшего онлайн-кинотеатра.
🔸Финалисты отправятся в Москву — Wink оплатит билеты и проживание.

Успей зарегистрироваться на первый в России хакатон по применению ИИ в кинопроизводстве: https://cnrlink.com/winkaichallengecsharp
⚡️ Хорошая архитектура ничего не стоит, если её легко сломать.

Есть три способа заставить команду придерживаться дизайна:
- компилятор и статический анализ
- архитектурные тесты
- код-ревью

Компилятор - лучший друг. Он мгновенно ловит ошибки и не даст собрать проект, если что-то нарушено.
Но как использовать это для защиты архитектуры?

В .NET можно скрывать типы через internal и разделять код на проекты, чтобы изолировать модули.
Проблема - при масштабировании проектов становится слишком много.

Статический анализ полезен, но писать свои Roslyn-правила - удовольствие на любителя.

Поэтому я делаю ставку на архитектурные тесты.
Они позволяют задать правила в виде автотестов и контролировать зависимости между модулями, особенно в модульном монолите: каждый модуль видит только публичный API других модулей.

Ну и код-ревью - финальный фильтр. Кто-то должен глазами подтвердить, что всё ок.

Что выбрать?
Я больше всего полагаюсь на компилятор и архитектурные тесты - это помогает ловить проблемы максимально рано.

Хотите больше? Посмотрите пример использования архитектурных тестов и подход shift left.
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Не пропустите! 06 ноября в 20:00 пройдет бесплатный урок курса “Unity Game Developer. Professional” по теме “ECS: Секретное оружие топовых разработчиков.” Запись: https://otus.pw/c4Lq/

Устал от медленных и запутанных игровых механик? ECS изменит твое представление о разработке игр!

Что вы узнаете:
- Основы ECS — разберем ключевые принципы работы на примере LeoEcsLite
- Сравнение подходов — проведем детальный анализ ООП vs ECS
- Преимущества ECS — узнаем, почему крупные студии выбирают именно эту архитектуру
- Практические кейсы — рассмотрим реальные примеры оптимизации геймплея
- Производительность — разберем, как ECS помогает достичь максимальной эффективности

Записывайтесь на вебинар и получите спец. предложение на обучение:

https://otus.pw/c4Lq/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963