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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish

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

Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 21 687 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 5 949-o'rinni va Rossiya mintaqasida 30 265-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 21 687 obunachiga ega bo‘ldi.

31 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -56 ga, so‘nggi 24 soatda esa -12 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 17.05% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 7.97% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 3 698 marta ko‘riladi; birinchi sutkada odatda 1 728 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 23 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent .net, шарписта, навигация, await, string kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

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

Yuqori yangilanish chastotasi (oxirgi ma’lumot 01 Sentabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

21 687
Obunachilar
-1224 soatlar
-177 kunlar
-5630 kunlar
Postlar arxiv
Лайфхак: 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 — это не просто удобство, а инструмент, требующий понимания его тонкостей. 🐸Библиотека шарписта #буст