ar
Feedback
C# (C Sharp) programming

C# (C Sharp) programming

الذهاب إلى القناة على Telegram

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام C# (C Sharp) programming

تُعد قناة C# (C Sharp) programming (@csharp_ci) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 18 129 مشتركاً، محتلاً المرتبة 7 041 في فئة التكنولوجيات والتطبيقات والمرتبة 36 302 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 18 129 مشتركاً.

بحسب آخر البيانات بتاريخ 29 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -78، وفي آخر 24 ساعة بمقدار -7، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 15.03‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 7.44‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 2 725 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 348 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 0.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل .net, api, логика, архитектура, string.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 30 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

18 129
المشتركون
-724 ساعات
-157 أيام
-7830 أيام
أرشيف المشاركات
🔦 Fluent UI Blazor — библиотека компонентов от Microsoft, которая переносит фирменный Fluent Design в Blazor-приложения. Она
🔦 Fluent UI Blazor — библиотека компонентов от Microsoft, которая переносит фирменный Fluent Design в Blazor-приложения. Она включает готовые решения для кнопок, карточек, таблиц и сложных элементов вроде диалоговых окон, сохраняя единый стиль современных продуктов Microsoft. Проект имеет глубокую интеграцию с .NET 8/9 и гибкость: темы настраиваются через CSS-переменные, есть поддержка RTL и адаптация под системные настройки. Для старта можно использовать готовые шаблоны dotnet new или вручную подключить NuGet-пакеты. 🤖 GitHub @csharp_ci

Рефлексия тормозит приложения? Пора управлять компилятором! Устали писать одинаковый код снова и снова? Рефлексия съедает про
Рефлексия тормозит приложения? Пора управлять компилятором! Устали писать одинаковый код снова и снова? Рефлексия съедает производительность в рантайме, а генерация boilerplate-кода отнимает часы. Современный C# предлагает элегантное решение — заставить компилятор работать на вас. 🎥 Вебинар «Заставьте компилятор работать на вас: магия метапрограммирования с Source Generators в C#» 📅 6 августа, 20:00 👩‍🏫 Елена Сычева Разберём на практике: → Почему рефлексия — узкое место и как Source Generators решают проблему на этапе компиляции → Устройство компилятора Roslyn: синтаксические деревья и семантическая модель → Live-coding первого Source Generator для избавления от рутинного кода → Применение генераторов в популярных библиотеках .NET 7+ Результат: вы научитесь создавать собственные генераторы кода, которые автоматизируют рутину и повышают производительность приложений без runtime-накладных расходов. Вебинар проходит в рамках курса «C# углубленный» — участники получают эксклюзивные условия обучения. → Регистрация: https://otus.pw/1j45/ Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963

🧠 Model Context Protocol (MCP) для новичков — от Microsoft Microsoft выложила в open-source обучающий курс, чтобы помочь пон
🧠 Model Context Protocol (MCP) для новичков — от Microsoft Microsoft выложила в open-source обучающий курс, чтобы помочь понять, как работает Model Context Protocol — протокол, лежащий в основе взаимодействия LLM с внешним контекстом. 📘 Что внутри: — понятные объяснения концепций MCP — практические примеры на .NET, Java, TypeScript, JavaScript и Python — пошаговые упражнения для начинающих Подойдёт тем, кто хочет разобраться, как строятся LLM-агенты, функции и контекстные вызовы в MCP-экосистеме. 👉 Репозиторий: https://github.com/microsoft/mcp-for-beginners

📌 PolySharp — удобный способ использовать новые фичи C# на старых версиях .NET. Этот NuGet-пакет работает как source-генерат
📌 PolySharp — удобный способ использовать новые фичи C# на старых версиях .NET. Этот NuGet-пакет работает как source-генератор, автоматически подбирая нужные полифиллы в зависимости от целевой платформы. Для работы достаточно добавить ссылку на PolySharp, установить последнюю версию C# и можно писать современный код даже для .NET Framework или UWP. Инструмент обладает умной генерацией только необходимых типов. Например, если компилятору C# 13 нужен [IsExternalInit] для init-only свойств, PolySharp создаст его за кулисами. При этом он не трогает фичи, требующие поддержки рантайма, но покрывает огромный пласт синтаксических улучшений — от nullable-аннотаций до интерполированных строковых обработчиков. 🤖 GitHub @csharp_ci

⚡️ Почему лучшие разработчики всегда на шаг впереди? Потому что они знают, где брать настоящие инсайд! Оставь “программирование в вакууме” в прошлом, выбирай свой стек — подпишись и погружайся в поток идей, лайфхаков и знаний, которые не найдёшь в открытом доступе. ИИ: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Devops: t.me/DevOPSitsec Базы данных: t.me/sqlhub Мл собес t.me/machinelearning_interview C++ t.me/cpluspluc Docker: t.me/DevopsDocker Хакинг: t.me/linuxkalii МЛ: t.me/machinelearning_ru Data Science: t.me/data_analysis_ml Javascript: t.me/javascriptv C#: t.me/csharp_ci Java: t.me/java_library Python собеседования: t.me/python_job_interview Мобильная разработка: t.me/mobdevelop Golang: t.me/Golang_google React: t.me/react_tg Rust: t.me/rust_code ИИ: t.me/vistehno PHP: t.me/phpshka Android: t.me/android_its Frontend: t.me/front Big Data: t.me/bigdatai МАТЕМАТИКА: t.me/data_math Kubernets: t.me/kubernetc Разработка игр: https://t.me/gamedev Физика: t.me/fizmat SQL: t.me/databases_tg Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка FRONTEND: https://t.me/addlist/mzMMG3RPZhY2M2Iy 🎓954ГБ ОПЕНСОРС КУРСОВ: @courses 😆ИТ-Мемы: t.me/memes_prog 🇬🇧Английский: t.me/english_forprogrammers 🧠ИИ: t.me/vistehno 🖥 Chatgpt для кода в тг: @Chatgpturbobot - 📕Ит-книги: https://t.me/addlist/BkskQciUW_FhNjEy 💼ИТ-вакансии t.me/addlist/_zyy_jQ_QUsyM2Vi Подпишись, чтобы всегда знать, куда двигаться дальше!

Что выведет на экран это код?
Anonymous voting

#ПятничныйКвиз #СахарЭтоБелаяСмерть
#ПятничныйКвиз #СахарЭтоБелаяСмерть

😬 Почти каждый разработчик делал эту ошибку Код вроде бы нормальный: - API для регистрации вызывает UserService - UserServic
😬 Почти каждый разработчик делал эту ошибку Код вроде бы нормальный: - API для регистрации вызывает UserService - UserService сохраняет пользователя и вызывает EmailService - EmailService отправляет письмо через SmtpClient Но если присмотреться — SendWelcomeEmail помечен как **async void** ❗️ Почему это проблема? ❌ async void делает невозможным отлов исключений. Если внутри SendEmailAsync() что-то пойдёт не так — try/catch не сработает. Исключение пролетит мимо и может тихо крашнуть приложение или вызвать странные баги. Почему так? 🔸 async void не возвращает Task, значит await невозможен 🔸 Исключения из таких методов не перехватываются обычным образом ✅ Как правильно: Всегда возвращай Task — только так можно надёжно обрабатывать ошибки. 📌 Запомни правило: async void допустим только в event‑handler’ах. Больше — нигде. Ты уже сталкивался с этой ловушкой? Пиши свои фейлы или советы 👇

🛠 Игра начинается: лутайте призы на сервере Selectel в Minecraft Пока вы работаете, пиглины добывают золото в недрах Незера.
🛠 Игра начинается: лутайте призы на сервере Selectel в Minecraft   Пока вы работаете, пиглины добывают золото в недрах Незера. Пора и вам немного развеяться: присоединяйтесь к игре на сервере Selectel. Стройте, исследуйте, конкурируйте — или просто создайте ферму из кактусов, никто не осудит.   На сервере три режима игры под разное настроение:   ▪️ Ванильное выживание на нормальной сложности — бессмертная классика с мини-квестами и внутриигровыми наградами каждый день. ▪️ Креатив с пиксельными дата-центрами Selectel, гигантскими фигурками героев аниме и другими постройками. ▪️ Арена — особый режим, на котором раз в неделю будут запускать разные PVP- и PVE-события с призами.   На сервере нет и не будет донатов. Чтобы начать, достаточно установить на ПК копию Minecraft Java Edition 1.21.5 или новее, а затем зарегистрироваться ➡️ Реклама. АО «Селектел», ИНН 7810962785, ERID: 2Vtzqx834rk

🧪 ABP Framework — мощный инструмент для .NET-разработчиков, который превращает стандартный ASP.NET Core в платформу для корп
🧪 ABP Framework — мощный инструмент для .NET-разработчиков, который превращает стандартный ASP.NET Core в платформу для корпоративных решений. Это не просто фреймворк, а целая экосистема с готовыми модулями, шаблонами проектов и инструментами автоматизации. Проект имеет поддержку DDD, мультитенантности и микросервисов из коробки. ABP берет на себя рутинные задачи вроде авторизации, валидации и логирования, позволяя сосредоточиться на бизнес-логике. 🤖 GitHub @csharp_ci

🚀 Хочешь масштабировать своё API по горизонтали? Без балансировщика нагрузки не обойтись. Вот как быстро собрать свой на .NE
🚀 Хочешь масштабировать своё API по горизонтали? Без балансировщика нагрузки не обойтись. Вот как быстро собрать свой на .NET с помощью YARP (Yet Another Reverse Proxy): 3 простых шага: 1. Установи библиотеку YARP (`Microsoft.ReverseProxy`) 2. Настрой YARP в Program.cs и appsettings.json 3. Укажи пути к downstream-сервисам После этого твой прокси уже готов к работе — будет распределять трафик между сервисами. Но это только начало. YARP мощный и расширяемый. Он поддерживает разные политики балансировки нагрузки прямо "из коробки": ▪ Random — случайный выбор ▪ RoundRobin — по кругу ▪ LeastRequests — к тому, у кого меньше всего запросов ▪ FirstAlphabetical — по алфавиту ▪ PowerOfTwoChoices — выбери лучший из двух случайных (дефолт) Автор статьи применил YARP для масштабирования нескольких приложений и делится опытом в полном гайде: 📖 Читай подробнее: https://milanjovanovic.tech/blog/horizontally-scaling-aspnetcore-apis-with-yarp-load-balancing

😱💻 Хотите прокачать архитектурные скилы и стать востребованным fullstack-разработчиком? Пройдите вступительный тест и получ
😱💻 Хотите прокачать архитектурные скилы и стать востребованным fullstack-разработчиком? Пройдите вступительный тест и получите бесплатные уроки курса «C# ASP.NET Core разработчик» от OTUS! 👉 Пройти тест: https://otus.pw/I9v5/ 🚀 Зарядите карьеру: увеличьте доход, берите сложные проекты и работайте с современным стеком! Всего за 6 месяцев вы научитесь: • Разрабатывать веб-приложения на ASP.NET Core, рассматривая ASP.NET подробно, со всеми его механизмами • Создавать различные технологии межсервисного взаимодействия + реалтайм с клиентским приложением •Интегрировать фронтенд (ReactJS + JavaScript+Typescript) с бэкендом • Тестировать приложения: интеграционные и нагрузочные тесты • Автоматизировать процессы с CI/CD и Kubernetes • Проектировать микросервисы и освоить event-driven архитектуру 🎁 Бонус: После теста — доступ к урокам! 👉 Проверьте свои силы прямо сейчас: https://otus.pw/I9v5/ Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963

🎯 Design pattern, который должен знать каждый — Decorator Один из самых гибких и мощных паттернов — особенно в мире .NET и D
🎯 Design pattern, который должен знать каждый — Decorator Один из самых гибких и мощных паттернов — особенно в мире .NET и DI. ▪ Что это такое? Decorator позволяет обернуть реализацию сервиса в дополнительное поведение — например, логгирование, кэширование или retry-механику — без изменения исходного кода. ▪ Как применить на практике? В .NET это особенно удобно с библиотекой Scrutor — она расширяет встроенный DI-контейнер и позволяет добавлять декораторы в одну строчку. Пример:

services.Decorate<IService, LoggingDecorator>();
Зачем это нужно? — логгировать вызовы без лома архитектуры — централизованно обрабатывать ошибки — добавить метрики без влезания в бизнес-логику 📌 Подробнее

Что выведет на экран этот код?
Anonymous voting

#ПятничныйКвиз #ЗанимательнаяМатематика
#ПятничныйКвиз #ЗанимательнаяМатематика

💎 CSharpier — бескомпромиссный форматтер для C#. Этот инструмент берёт ваш код и переписывает его по своим строгим правилам,
💎 CSharpier — бескомпромиссный форматтер для C#. Этот инструмент берёт ваш код и переписывает его по своим строгим правилам, вдохновлённым Prettier. Никаких бесконечных настроек, только единый стандарт оформления для всего проекта. Инструмент интегрируется с редакторами, работает через CLI и даже в CI/CD. Будет особенно удобен для команд, где важна единообразная кодовая база без ручной правки стиля. 🤖 GitHub @csharp_ci

✂️ Clipper2 — библиотека для работы с полигонами. Этот проект представляет собой современную версию классической библиотеки C
✂️ Clipper2 — библиотека для работы с полигонами. Этот проект представляет собой современную версию классической библиотеки Clipper, переписанную с нуля для поддержки новых стандартов. Инструмент выполненяет булевые операций (объединение, пересечение, вычитание) над сложными полигональными фигурами, а также их офсетное преобразование. Библиотека имеет кроссплатформенную поддержку: помимо нативных C++, C#, Delphi-реализаций, доступны адаптации для Java, Kotlin и даже WebAssembly. При этом версия на С# демонстрирует наибольшую производительность, она идеально подходит для задач CAD-систем и GIS-приложений. 🤖 GitHub @csharp_ci

🎯 Хитрая задача на C# для продвинутых Твоя цель — реализовать ленивую фильтрацию по уникальному ключу без LINQ. Условие: Есть класс:

class User
{
    public string Name { get; set; }
    public int Age { get; set; }
}
Нужно написать метод UniqueBy<T, TKey>, который возвращает только уникальные элементы по ключу. Нельзя использовать LINQ (Distinct, GroupBy и т.д.). Метод должен быть ленивым — использовать yield return. Пример:

var users = new List<User>
{
    new User { Name = "Alice", Age = 30 },
    new User { Name = "Bob", Age = 25 },
    new User { Name = "Alice", Age = 35 },
    new User { Name = "Eve", Age = 25 }
};

foreach (var user in UniqueBy(users, u => u.Name))
{
    Console.WriteLine($"{user.Name}, {user.Age}");
}
// Вывод:
// Alice, 30
// Bob, 25
// Eve, 25
🧠 Решение:

public static IEnumerable<T> UniqueBy<T, TKey>(IEnumerable<T> source, Func<T, TKey> keySelector)
{
    var seen = new HashSet<TKey>();
    foreach (var item in source)
    {
        var key = keySelector(item);
        if (seen.Add(key))
            yield return item;
    }
}
📌 Чем эта задача интересна: ▪ Требует знания HashSet, yield return и замыканий ▪ Работает с любыми коллекциями и даже бесконечными потоками ▪ Часто нужна при фильтрации API-результатов, логов и UI Ставь лайк, если хочешь больше таких продвинутых C#-задач.

Устали править копипастные участки кода и бороться с хаосом в проекте? ⏺️ Приглашаем на открытый урок «Переиспользуемый код н
Устали править копипастные участки кода и бороться с хаосом в проекте?  ⏺️ Приглашаем на открытый урок «Переиспользуемый код на C#: архитектурный подход» 15 июля в 20:00 МСК. Разберём, как строить приложение по принципам SOLID, DRY, KISS и YAGNI и избавляться от дублирования на уровне архитектуры. Вы увидите, как декомпозировать систему на слои, внедрять зависимости через абстракции и собирать «Lego-приложение» для разных интерфейсов. 🔴 Встречаемся 15 июля в 20:00 МСК. ➡️ Успейте зарегистрироваться на урок количество участников ограничено: https://otus.pw/55rM/?erid=2W5zFJJBcuE  Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.

⚠️ Как вы обрабатываете ошибки в C#? Многие используют исключения для управления потоком и быстрого фейла. Но в C# метод не с
⚠️ Как вы обрабатываете ошибки в C#? Многие используют исключения для управления потоком и быстрого фейла. Но в C# метод не сообщает, какие именно исключения он может выбросить — это не видно в сигнатуре. 🔍 Мой подход: Исключения — только для исключительных ситуаций. Если метод может ожидаемо провалиться, пусть это будет явно. ✅ Используйте Result-паттерн: — Метод возвращает Result<T> вместо выбрасывания исключения — Caller обязан проверить IsSuccess и обработать ошибку — Код становится предсказуемее и легче тестируется — Дополнительно: пропускная способность может быть выше, чем при throw/catch Пример:

Result<User> result = userService.FindById(id);
if (!result.IsSuccess)
    return Error(result.Error);
Подробнее