uk
Feedback
Библиотека шарписта | C#, F#, .NET, ASP.NET

Библиотека шарписта | C#, F#, .NET, ASP.NET

Відкрити в Telegram

Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Показати більше

📈 Аналітичний огляд Telegram-каналу Библиотека шарписта | C#, F#, .NET, ASP.NET

Канал Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 21 698 підписників, посідаючи 5 943 місце в категорії Технології та додатки та 30 267 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 21 698 підписників.

За останніми даними від 29 серпня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -48, а за останні 24 години на -6, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 16.72%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.84% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 3 628 переглядів. Протягом першої доби публікація в середньому набирає 1 702 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 23.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як .net, шарписта, навигация, await, string.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Завдяки високій частоті оновлень (останні дані отримано 30 серпня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

21 698
Підписники
-624 години
-57 днів
-4830 день
Архів дописів
⏱️ Как ускорить асинхронный код в C# Частая ошибка — писать асинхронные вызовы последовательно: await GetUser(); await GetOrd
⏱️ Как ускорить асинхронный код в C# Частая ошибка — писать асинхронные вызовы последовательно:
await GetUser();
await GetOrders();
await GetRecommendations();
Каждая операция ждёт предыдущую и если каждый запрос занимает по секунде, общее время = 3 секунды. А можно иначе:
var userTask = GetUser();
var ordersTask = GetOrders();
var recsTask = GetRecommendations();

await Task.WhenAll(userTask, ordersTask, recsTask);
Все задачи стартуют сразу. Теперь общее время = 1 секунда (ожидание самой длинной операции). Маленький приём — большая разница во времени выполнения. 🐸Библиотека шарписта #sharp_view

❔ Отдохнуть или покушать Давайте помечтаем — ваш работодатель даёт вам выбор: 1 sick-day (отгул с сохранением ЗП) или оплата
Отдохнуть или покушать Давайте помечтаем — ваш работодатель даёт вам выбор: 1 sick-day (отгул с сохранением ЗП) или оплата одного обеда в неделю. 💬 Что вы выберете? Почему? Ждём в комментариях 👇 🐸Библиотека шарписта #entry_point

💡 Domain Validation в .NET и DDD — просто о сложном В .NET-проектах часто пишут валидацию прямо в контроллере или сервисе: — проверили, что поле не пустое, — число больше нуля, — email подходит по формату. Это правильно, но есть проблема — бизнес-правила остаются размазаны по коду. В итоге можно случайно создать объект в некорректном состоянии (например, заказ без товаров). В идеале должно быть два уровня валидации Application Validation И Domain Validation. В одном проверяются входные данные, а в другом строится защита сущностей от нарушения бизнес-правил. Пример проверки на уровне приложения:
public record CreateOrderDto(string CustomerEmail, List<OrderItemDto> Items);

public class OrderApplicationValidator
{
    public static void Validate(CreateOrderDto dto)
    {
        if (string.IsNullOrWhiteSpace(dto.CustomerEmail))
            throw new ArgumentException("Email is required");

        if (!dto.CustomerEmail.Contains("@"))
            throw new ArgumentException("Email format is invalid");

        if (dto.Items == null || dto.Items.Count == 0)
            throw new ArgumentException("Order must contain at least one item");
    }
}
Здесь мы проверяем только корректность ввода. А вот внутри домена мы защищаем бизнес-правила:
public class OrderItem
{
    public string ProductName { get; }
    public int Quantity { get; }
    public Money Price { get; }

    private OrderItem(string productName, int quantity, Money price)
    {
        ProductName = productName;
        Quantity = quantity;
        Price = price;
    }

    public static OrderItem Create(string productName, int quantity, Money price)
    {
        if (string.IsNullOrWhiteSpace(productName))
            throw new InvalidOperationException("Product name cannot be empty");

        if (quantity <= 0)
            throw new InvalidOperationException("Quantity must be greater than zero");

        return new OrderItem(productName, quantity, price);
    }

    public Money GetTotal() => Money.Create(Quantity * Price.Amount);
}
Когда правила закреплены в домене, они становятся частью самой логики, а не зависимыми от внешних слоёв. Это гарантирует, что объект в принципе невозможно построить в некорректном виде. 🐸Библиотека шарписта #il_люминатор

Стань участником МТС True Tech Champ 2025 — масштабного ИТ-чемпионата по программированию с призовым фондом 10 250 000 рублей
Стань участником МТС True Tech Champ 2025 — масштабного ИТ-чемпионата по программированию с призовым фондом 10 250 000 рублей. Соревнования пройдут в двух треках: 1. Алгоритмические задачи Покажи индивидуальное мастерство в работе со структурами данных и написании алгоритмов. Чтобы успешно справиться с заданиями, пригодится опыт решения олимпиад. 2. Программирование роботов Оживи робота с помощью кода, чтобы он прошел лабиринт быстрее всех. Трек будет интересен разработчикам: С++, Go, Python, JS, Java, C# и не только. Участвовать могут школьники, студенты, начинающие ИТ-специалисты и опытные разработчики. Отборочные этапы пройдут онлайн, шоу-финал — 21 ноября в МТС Live Холл в Москве. Ты можешь выйти на арену как участник или наблюдать за чемпионатом как зритель. Регистрируйся до 20 октября по ссылке.

🔢 Когда числа становятся понятными UnitsNet — .NET-библиотека, которая превращает «голые» числа в осмысленные физические вел
🔢 Когда числа становятся понятными UnitsNet — .NET-библиотека, которая превращает «голые» числа в осмысленные физические величины. Пример: вместо double speed = 27.8; вы пишете Speed speed = Speed.FromMetersPerSecond(27.8); и работаете уже с километрами в час, милями или узлами — без ручных пересчётов. В UnitsNet поддерживается более сотни единиц измерения — от времени и массы до температуры и силы. Вам не нужно держать в голове коэффициенты и вручную пересчитывать из одной системы в другую: библиотека сделает это сама. Ещё один плюс — читаемость кода. Ваши расчёты выглядят как документация: сразу видно, где давление, где скорость, а где длина. ➡️ Попробовать либу 🐸Библиотека шарписта #sharp_view

❗ Сегодня премьера В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным — «ИИ-агенты: новая фаза развития искусствен
❗ Сегодня премьера В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта». В программе: — почему агенты ≠ чат-боты; — живое демо простого агента; — и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского. Это прямой эфир: подключиться можно через лендинг курса.

📎 Где заказать курсовую по программированию Курсовые по программированию сегодня можно заказать в пару кликов — рынок перепо
📎 Где заказать курсовую по программированию Курсовые по программированию сегодня можно заказать в пару кликов — рынок переполнен сервисами, готовыми взять на себя любую задачу. За простотой скрываются и подводные камни: сомнительное качество, завышенные цены и риск нарваться на недобросовестных исполнителей. По ссылке топ площадок, которые зарекомендовали себя в 2025 году. ➡️ Узнать, где лучше 🐸Библиотека шарписта

🤩 Live Preview без дебага В Visual Studio 2022 v17.14 появилась функция для .NET MAUI — XAML Live Preview теперь доступен пр
🤩 Live Preview без дебага В Visual Studio 2022 v17.14 появилась функция для .NET MAUI — XAML Live Preview теперь доступен прямо во время дизайна, без запуска отладки. Изменения сразу видны, можно пользоваться Hot Reload и инструментами инспекции. Поддержка работает не только для Windows, но и для Android-эмуляторов, а вместе с GitHub Copilot Vision можно прикрепить картинку макета и получить готовый XAML-код, который отобразится в Live Preview. 🔗 Подробнее 🐸Библиотека шарписта #async_news

⚙️ Почему async void ломает ваш код В C# у async void есть дурная репутация, и не зря. Такой метод не возвращает Task, а значит, его нельзя await-ить, нельзя встроить в пайплайн и невозможно корректно отследить завершение. Исключения из него не ловятся обычным образом — они пробиваются в синхронизационный контекст или в пул потоков, где легко превращаются в необработанные и могут уронить процесс.
// Контроллер ASP.NET Core
[HttpPost]
public async void Create() { await _svc.DoAsync(); } // Исключения мимо pipeline

// Библиотека
public async void SaveAsync(Item item) { await _repo.Save(item); } // Вызывающему не сконтролировать
Правильно — всегда возвращать Task:
[HttpPost]
public async Task<IActionResult> Create() { await _svc.DoAsync(); return Ok(); }

public Task Invoke(HttpContext ctx) => _next(ctx);

public Task SaveAsync(Item item) => _repo.Save(item);
Единственный сценарий, где async void уместен, — обработчики событий в UI-фреймворках вроде WPF или WinForms, где сигнатура задаётся самим фреймворком. Там приходится мириться, но даже там стоит ловить исключения локально и логировать их. 🐸Библиотека шарписта #sharp_view

💡 Что скрывается под капотом IReadOnlyList В .NET есть интерфейс IReadOnlyList<T>. На первый взгляд, он обещает нам неизменяемый список. Но это полуправда. Определение интерфейса:
public interface IReadOnlyList<out T> : IReadOnlyCollection<T>, IEnumerable<T>, IEnumerable
{
    T this[int index] { get; }
}
Интерфейс наследует IReadOnlyCollection, а тот, в свою очередь, наследует IEnumerable. Таким образом, он даёт доступ: к элементам через индекс (this[int index]), к свойству Count, и к итерации через foreach. ⚠️ Важный нюанс: IReadOnlyList не делает коллекцию реально readonly. Если у вас есть List<int> и вы приведёте его к IReadOnlyList<int>, изменять список по-прежнему можно — просто не через эту ссылку. Пример:
var list = new List<int> { 1, 2, 3 };
IReadOnlyList<int> ro = list;

list.Add(4);  // ro теперь "видит" 4
То есть IReadOnlyList — это контракт для чтения, а не гарантия неизменности. Если нужна настоящая защита — используйте ImmutableArray или ReadOnlyCollection. 🐸Библиотека шарписта #il_люминатор

🔥 Не пропустите событие осени для AI-комьюнити 24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты:
🔥 Не пропустите событие осени для AI-комьюнити 24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта» 😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт: — почему ИИ-агенты сейчас на пике инвестиций — чем они отличаются от ChatGPT и обычных моделей — цикл агента: восприятие → планирование → действие → обучение — живое демо простого агента — как бизнес уже получает ROI до 80% ⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.Мест мало, регистрация закроется, как только забьём комнату

⚙️ Когда Hash Join быстрее Nested Loops Внутри SQL-движка соединение таблиц — это не магия, а конкретный алгоритм. Сравним два подхода к соединению таблиц. Nested Loops работает буквально так, как звучит: берём строку из первой таблицы и ищем совпадения во второй. Если вторая таблица имеет подходящий индекс, поиск по нему будет очень быстрым, и такой алгоритм блестяще справляется с задачей маленькое соединяется с большим. Hash Join подходит там, где Nested Loops захлёбывается. Он сначала строит хэш-таблицу по одной из входных таблиц, а затем пробегается по второй и ищет совпадения через хэш-функцию. Это даёт огромный выигрыш, когда нужно соединить два больших набора данных, и когда индексов для ускорения поиска нет. Цена такого подхода — расход памяти. В итоге — если речь идёт о маленьком наборе строк против большого и есть индекс, Nested Loops окажется быстрее. Но если обе таблицы крупные и индексы не спасают, Hash Join чаще всего становится оптимальным выбором. 💬 Как вы бы ответили на такой вопрос на собеседовании? 🐸Библиотека шарписта #dotnet_challenge

👇 Вектор следующей недели
Anonymous voting

➡️ Выбираем направление на неделю Давайте собирать библиотеку вместе. Выбираем тему, которая станет главным фокусом контента на ближайшие 7 дней. 👇 🐸Библиотека шарписта #entry_point

📰 Недельная подборка Прошла неделя и мы снова собрали для вас материалы для прочтения на досуге. — Cake.Sdk теперь умеет dot
📰 Недельная подборка Прошла неделя и мы снова собрали для вас материалы для прочтения на досуге. — Cake.Sdk теперь умеет dotnet publish Вышла бета Cake.Sdk 5.0.25257.82, и главная новость — поддержка dotnet publish. Теперь можно собирать self-contained бинарники и даже контейнеры прямо из Cake-скриптов, без необходимости ставить .NET Runtime на целевой машине. — Цена пропущенного ? в C# На примере open source-проекта Stability Matrix автор показывает ошибки в конструкторах и инициализации, где невинный ? или проверка на null могли бы предотвратить баги и NaN в расчётах. — Кто такие Unit-лид и Technical OwnerMicrosoft увеличивает срок поддержки релизовWolverine 5.0 🐸Библиотека шарписта #async_news

⚙️ Разбор .NET rc1 Недавно мы делились новостью о выходе .NET 10 RC1. Теперь пришло время посмотреть глубже: что именно измен
⚙️ Разбор .NET rc1 Недавно мы делились новостью о выходе .NET 10 RC1. Теперь пришло время посмотреть глубже: что именно изменилось, какие улучшения можно опробовать уже сейчас. Повышение производительности без усилий • Улучшения в рантайме и JIT-компиляторе, благодаря которым уже существующий код работает быстрее при перекомпиляции, без изменения кода. • «Deabstraction»: устранение накладных расходов за счёт оптимизации интерфейсов, лямбд, async, итераторов и др. • Расширенный «escape analysis», позволяющее небольшие объекты размещать в стеке, а не на куче, что уменьшает нагрузку на garbage collector. Улучшения рантайма и GC • Поддержка AVX 10.2 инструкций — подготавливает платформу к современному железу. • Оптимизация фонового GC, улучшение сжатия памяти и управления фрагментацией. Безопасность и квантовая устойчивость • Внедрение апи для пост-квантовой криптографии. • Новый алгоритм цифровой подписи ML-DSA (основанный на решёточных структурах), стандартизированный NIST. Новые возможности для разработчиков и приложенийASP.NET Core: более детальная телеметрия/метрики по аутентификации, токенам и двухфакторке, что облегчает выявление атак типа «credential stuffing», брут форс и др. • EF Core: поддержка векторного поиска и нативного JSON в SQL Server — полезно для AI и полуструктурированных данных. • .NET MAUI: метрики на уровне UI-layout операций (Measure, Arrange) — помогает обнаружить ботлнеки интерфейса. C# 14 — язык становится дружелюбнее и эффективнее • Возможность использовать params не только с массивами, но и со Span для уменьшения аллокаций. • Новый field-контекст в свойствах упрощает код, убирает явное объявление «backing field» — меньше шаблонов, меньше шума. Язык и среда .NET движутся в сторону объединения удобства и производительности: абстракции остаются, но их накладные расходы всё больше уходят. 🐸Библиотека шарписта #il_люминатор

🦸 Wolverine 5.0: релиз 1 октября В новой версии будет реализована поддержка Redis как транспортного механизма для сообщений,
🦸 Wolverine 5.0: релиз 1 октября В новой версии будет реализована поддержка Redis как транспортного механизма для сообщений, улучшена совместимость с различными хранилищами сообщений и проведена работа над Dead Letter Queue в рамках проекта CritterWatch. После релиза Wolverine 5.0 проект CritterWatch станет основным техническим фокусом Джереми Миллера и JasperFx на оставшуюся часть года. ➡️ Блог разработчика 🐸Библиотека шарписта #async_news

😊 Как сделать GitHub Copilot умнее GitHub Copilot теперь можно настроить с помощью Instruction Files и Prompt Files, чтобы AI генерировал код в соответствии с вашими стандартами и требованиями проекта. Файлы с инструкциями задают общие правила для репозитория: стиль кода, соглашения по именам, обязательные тесты, ограничения на изменения и инструкции по CI/CD. Их удобно использовать для командной работы и open-source-проектов, чтобы все предложения Copilot соответствовали принятым стандартам. ➡️ Раскочегарить Copilot 🐸Библиотека шарписта #sharp_view