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

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

Open in Telegram

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

Show more

📈 Analytical overview of Telegram channel Библиотека шарписта | C#, F#, .NET, ASP.NET

Channel Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) in the Russian language segment is an active participant. Currently, the community unites 21 687 subscribers, ranking 5 949 in the Technologies & Applications category and 30 265 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 21 687 subscribers.

According to the latest data from 31 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -56 over the last 30 days and by -12 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 17.05%. Within the first 24 hours after publication, content typically collects 7.97% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 3 698 views. Within the first day, a publication typically gains 1 728 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 23.
  • Thematic interests: Content is focused on key topics such as .net, шарписта, навигация, await, string.

📝 Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Thanks to the high frequency of updates (latest data received on 01 September, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

21 687
Subscribers
-1224 hours
-177 days
-5630 days
Posts Archive
Лайфхак: foreach работает даже с числами Начиная с C# 9 можно итерироваться по числам:
foreach (int x in 5)
    Console.Write($"{x} ");
// Вывод: 1 2 3 4 5  

foreach (var n in 42..46)
    Console.Write($"{n} ");
// Вывод: 42 43 44 45 46 
Для этого достаточно добавить 🐸Библиотека шарписта #буст

🤯 Баги, которые IDE не смогла предсказать Программисты доверяют своим инструментам, но иногда даже самая умная IDE оказывает
🤯 Баги, которые IDE не смогла предсказать Программисты доверяют своим инструментам, но иногда даже самая умная IDE оказывается бессильна перед хитроумными багами. Это те моменты, когда компилятор молчит, дебаггер пожимает плечами, а ты смотришь в монитор и думаешь: «Как так-то». 🛠 В Библиотеке программиста мы считаем, что самые крутые истории — это те, которые заставляют нас учиться. Делитесь своими случаями, когда: — Компилятор не ругался, но всё работало "не так". — Ошибка пряталась в очевидном месте, но её никто не замечал. — Код выглядел идеально, но прод сказал: "ну ты и наделал..." — Рефакторинг только ухудшил ситуацию. Начнём с нашего админа:
Одной из моих первых фичей была отправка письма по шаблону. Отправку реализовал — с этим проблем не возникло. Добавил логирование, чтобы отслеживать какие письма кому идут. Так случилось, что на тестирование подзабили, потому что письма на тестовой среде не отправлялись. Вывели это в прод и оказалось, что ошибся в форматировании строки в логах... IDE как-то упустила этот момент, а мне зелёному хотелось поскорее увидеть плоды своего творения. В тот же день я и повёз свой первый хотфикс.
🐸Библиотека шарписта #междусобойчик

😊 Промт дня: генератор регулярных выражений Регулярные выражения это что-то на эльфийском. Вместо ручного написания попросите об этом нейросеть с помощью промта:
I want you to act as a regex generator. Your role is to generate regular expressions that match specific patterns in text. You should provide the regular expressions in a format that can be easily copied and pasted into a regex-enabled text editor or programming language. Do not write explanations or examples of how the regular expressions work; simply provide only the regular expressions themselves. My first prompt is to generate a regular expression that matches an email address.
В этом примере будет сгенерировано выражение, для матчинга email-адресов. 💬 Часто пишете регулярки? Делитесь в комментариях! 🚀 🐸Библиотека шарписта #буст

💬 Как оставлять комментарии в чате нашего канала В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи. ⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии. ❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас. ✅ Как присоединиться к чату, чтобы бот вас не забанил — Зайдите в описание канала и нажмите кнопку Discuss / Чат — Нажмите Join / Присоединиться — Сразу обратите внимание на сообщение от бота Shieldy — Решите простой пример и отправьте ответ в чат После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат. ❗️ Если вас все-таки забанили — Это временная блокировка на несколько минут — Подождите и попробуйте зайти позже, бот снова отправит вам капчу Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение. 👾 Спасибо, что активно участвуете в обсуждении наших постов!

⚙️ Передаём данные между потоками В C# есть несколько способов передать данные из одного потока в другой. Выбор зависит от тр
⚙️ Передаём данные между потоками В C# есть несколько способов передать данные из одного потока в другой. Выбор зависит от требований к производительности, удобству и безопасности. Несколько распространенных вариантов: 1️⃣ Использование BlockingCollection<T> Это потокобезопасная коллекция, позволяющая передавать данные от одного потока к другому.
var collection = new BlockingCollection<int>();

        // Поток-поставщик (Producer)
        Task.Run(() =>
        {
            for (int i = 0; i < 10; i++)
            {
                collection.Add(i);
                Console.WriteLine($"Производитель: добавил {i}");
                Thread.Sleep(500);
            }
            collection.CompleteAdding();
        });

        // Поток-потребитель (Consumer)
        Task.Run(() =>
        {
            foreach (var item in collection.GetConsumingEnumerable())
            {
                Console.WriteLine($"Потребитель: получил {item}");
            }
        }).Wait();
2️⃣ Использование TaskCompletionSource<T> Когда нужно передать значение между потоками в будущем.
var tcs = new TaskCompletionSource<int>();

        // Поток-поставщик
        Task.Run(() =>
        {
            Thread.Sleep(2000);
            tcs.SetResult(42);
        });

        // Поток-потребитель
        int result = await tcs.Task;
        Console.WriteLine($"Получено: {result}");
3️⃣ Использование ConcurrentQueue<T> Если нужно неблокирующее хранилище данных.
var queue = new ConcurrentQueue<int>();

        // Поток-поставщик
        Task.Run(() =>
        {
            for (int i = 0; i < 10; i++)
            {
                queue.Enqueue(i);
                Console.WriteLine($"Добавлено {i}");
                Thread.Sleep(500);
            }
        });

        // Поток-потребитель
        Task.Run(() =>
        {
            while (true)
            {
                if (queue.TryDequeue(out int item))
                {
                    Console.WriteLine($"Получено {item}");
                }
                Thread.Sleep(100);
            }
        }).Wait();
4️⃣ Использование Channel<T> (System.Threading.Channels) Альтернативный подход к BlockingCollection<T>
var channel = Channel.CreateUnbounded<int>();

        // Поток-поставщик
        _ = Task.Run(async () =>
        {
            for (int i = 0; i < 10; i++)
            {
                await channel.Writer.WriteAsync(i);
                Console.WriteLine($"Производитель: {i}");
                await Task.Delay(500);
            }
            channel.Writer.Complete();
        });

        // Поток-потребитель
        await foreach (var item in channel.Reader.ReadAllAsync())
        {
            Console.WriteLine($"Потребитель: {item}");
        }
💬 Какой вариант вам больше всего понравился? 🐸Библиотека шарписта #буст

🎮💾 Оптимизация памяти в Unity: как избежать лагов и повысить FPS в играх Оптимизация памяти в Unity — ключ к стабильной раб
🎮💾 Оптимизация памяти в Unity: как избежать лагов и повысить FPS в играх Оптимизация памяти в Unity — ключ к стабильной работе игр. Если хочется избежать лагов и повысить FPS, важно правильно управлять памятью. Использование эффективных методов загрузки и выгрузки данных, уменьшение количества аллокаций и грамотное применение сборщика мусора помогут улучшить производительность и стабильность игры. ➡️ Подробнее в статье 🐸Библиотека шарписта

💾 Шпаргалка по C# Все важные моменты в одном репозитории. Сохраняйте себе в закладки. ➡️ Репозиторий со шпаргалкой 🐸Библиот
💾 Шпаргалка по C# Все важные моменты в одном репозитории. Сохраняйте себе в закладки. ➡️ Репозиторий со шпаргалкой 🐸Библиотека шарписта #буст

🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов В 1991 году на компьютере с 4 мегабайтами пам
🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей. ➡️ Читать статью ➡️ Зеркало

📝 Visual Studio теперь сам пишет комментарии Microsoft представила автоматическую генерацию комментариев в Visual Studio с п
📝 Visual Studio теперь сам пишет комментарии Microsoft представила автоматическую генерацию комментариев в Visual Studio с помощью GitHub Copilot. Теперь, просто введя /// перед методом, можно получить готовое описание его работы, параметров и возвращаемого значения. • Доступно в Visual Studio 17.14 Preview 2. ➡️ Подробнее в блоге разработчиков Как думаете, полезно или лучше вообще не писать комментарии? 💬 🐸Библиотека шарписта #свежак

Количество уникальных букв в строке 1. Создаем строку str, которую нужно проанализировать. 2. Применяем метод Distinct() для
Количество уникальных букв в строке 1. Создаем строку str, которую нужно проанализировать. 2. Применяем метод Distinct() для получения уникальных символов в строке. 3. Вызываем метод Count() для получения количества элементов в последовательности уникальных символов. 4. Добавляем параметр char.IsLetter, чтобы учитывать только буквы алфавита.

Как устроены поколения в сборке мусора Garbage Collector (GC) в .NET работает по поколенческой (generational) модели и исполь
Как устроены поколения в сборке мусора Garbage Collector (GC) в .NET работает по поколенческой (generational) модели и использует три поколения, нумеруемые от 0. 1️⃣ Gen 0 (Первое поколение) • В этом поколении создаются новые объекты. • Сборки происходят часто, но занимают мало времени. • Если объект переживает сборку мусора, он перемещается в Gen 1. Очистка происходит когда выделено определенное количество памяти или когда в системе недостаточно памяти. 2️⃣ Gen 1 (Второе поколение) • Содержит объекты, которые выжили после очистки Gen 0. • Используется как буфер перед Gen 2. • Очистка Gen 1 происходит реже, чем Gen 0. Очистка происходит когда Gen 0 заполняется, и GC не смог освободить достаточно памяти. 3️⃣ Gen 2 (Третье поколение) • Включает долгоживущие объекты, например, кеш, синглтоны. • Очистка происходит редко и занимает больше времени. • Все объекты, пережившие сборку в Gen 1, перемещаются в Gen 2. Очистка происходит, когда в системе не хватает памяти. А также есть LOH (Large Object Heap) – специальная область для больших объектов. В нём очистка очень редкая и дорогостоящая. Чем меньше объектов доживает до Gen 2, тем лучше работает GC. 🐸Библиотека шарписта #буст

📰 Еженедельный дайджест Что произошло за прошедшую неделю марта: ➖ EF Core 9 в MongoDB — в MongoDB обновили провайдер для En
📰 Еженедельный дайджест Что произошло за прошедшую неделю марта: ➖ EF Core 9 в MongoDB — в MongoDB обновили провайдер для Entity Framework Core, добавив совместимость с EF Core 9. Новый формат файлов решений в .NET — В .NET представлена поддержка нового XML-формата файлов решений — SLNX. ➖ Сервисные обновления .NET — Microsoft выпустила мартовские обновления для .NET 8.0 и 9.0, устраняющие уязвимость повышения привилегий (CVE-2025-24070) ➖ ТОП-30 вопросов и ответов для собеседований в 2025 году — собрали для вас самые частые вопросы со структурами данных. 🐸Библиотека шарписта #свежак

🚀 CQRS, DDD, Event Sourcing — мощные паттерны или способ усложнить жизнь В мире .NET (и не только) многие разработчики рано
🚀 CQRS, DDD, Event Sourcing — мощные паттерны или способ усложнить жизнь В мире .NET (и не только) многие разработчики рано или поздно сталкиваются с модными архитектурными подходами: CQRS, DDD и Event Sourcing. Но где проходит граница между «правильной» архитектурой и бессмысленным оверинжинирингом. 💬 Как думаете, эти патерны — must-have или бесполезный оверхед? Делитесь своим опытом! 👇 🐸Библиотека шарписта #междусобойчик

Любите делать техдолг? 🐸Библиотека шарписта #развлекалово
Любите делать техдолг? 🐸Библиотека шарписта #развлекалово

➕➖ Нужна ли математика программисту Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащилс
Нужна ли математика программисту Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё. ➡️ Что внутри: ✓ Почему все считают, что программисты — математики ✓ В каких сферах разработки можно вообще не знать математику ✓ Где хватит готовых библиотек, а где придётся разбираться в формулах ✓ Какие области программирования требуют мощного математического бэкграунда ✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science ✓ Топ книг, которые помогут понять и даже полюбить математику 🔵 Чтобы знать математику, забирайте наш курс → «Математика для Data Science» 📎 Читать статью Proglib Academy

⭐️ Новый выпуск .NET Rocks C# 13 уже на горизонте! Какие изменения нас ждут, и стоит ли разработчикам опасаться очередного «р
⭐️ Новый выпуск .NET Rocks C# 13 уже на горизонте! Какие изменения нас ждут, и стоит ли разработчикам опасаться очередного «революционного» обновления? В новом выпуске подкаста .NET Rocks! ведущий архитектор C#, раскрывает детали будущего языка. 🧐 О чем выпуск • Будущее C# — какие новые возможности появятся в C# 13. • Как Microsoft принимает решения о развитии языка. • Как новые фичи повлияют на разработчиков. Если вы работаете с .NET, этот выпуск точно стоит послушать. ➡️ Слушать подкаст 🐸Библиотека шарписта #буст

DotNet Rocks: новый выпуск подкаста C# 13 уже на горизонте. Какие изменения нас ждут, и стоит ли разработчикам опасаться очередного «революционного» обновления? В новом выпуске подкаста .NET Rocks! ведущий архитектор C#, раскрывает детали будущего языка. 🧐 О чем выпуск • Будущее C# — какие новые возможности появятся в C# 13. • Как Microsoft принимает решения о развитии языка. • Как новые фичи повлияют на разработчиков. Если вы работаете с .NET, этот выпуск точно стоит послушать. ➡️ Слушать подкаст 🐸Библиотека шарписта #буст

❓ Всё ещё пишете на Entity Framework или уже перешли на Dapper EF, Dapper, ADO.NET… ORM vs чистый SQL – споры не утихают! 💭
Всё ещё пишете на Entity Framework или уже перешли на Dapper EF, Dapper, ADO.NET… ORM vs чистый SQL – споры не утихают! 💭 Кто-то остаётся на EF Core, потому что удобство важнее всего. 🚀 Кто-то выбирает Dapper ради скорости и контроля. ⚖️ А кто-то комбинирует оба подхода, используя сильные стороны каждого. А какой ваш путь? Почему именно этот инструмент, что помогло, а что оказалось головной болью? Делитесь в комментах! 👇 🐸Библиотека шарписта #междусобойчик

✅ Чек-лист: правильное использование LINQ в C# Этот чек-лист поможет вам писать чистый и оптимальный LINQ-код без лишних опер
Чек-лист: правильное использование LINQ в C# Этот чек-лист поможет вам писать чистый и оптимальный LINQ-код без лишних операций и ошибок: ➖ Основные принципы LINQ ✓ Понимать разницу между IEnumerable<T> и IQueryable<T> ✓ Фильтровать (Where()) данные как можно раньше в цепочке вызовов. ✓ Извлекать (Select()) только нужные поля, а не всю сущность. ✓ Использовать Any() вместо Count() > 0 для проверки наличия элементов. ✓ Избегать многократных проходов по коллекции (повторных .Where(), .Select()) ✓ Знать разницу между отложенным и немедленным выполнением. ➖ Работа с Where, Select, FirstOrDefault ✓ Не использовать Where().FirstOrDefault() – просто FirstOrDefault(). ✓ Вызывать Where() перед Select(), а не наоборот. ✓ Использовать FirstOrDefault(predicate), если проверяется только одно значение. ➖ Nullable ✓ Использовать ?? для значений, которые могут быть null. ✓ Использовать DefaultIfEmpty() при GroupBy(). ➖ Избегание дублирующих данных ✓ Использовать Distinct() для уникальных значений. ✓ Использовать Union() для объединения без дубликатов. ✓ Использовать Except() и Intersect() для разницы между коллекциями. Помните, что LINQ — это не просто удобство, а инструмент, требующий понимания его тонкостей. 🐸Библиотека шарписта #буст