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

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

Open in Telegram

Все самое полезное для C#-разработчика в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @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 860 subscribers, ranking 6 187 in the Technologies & Applications category and 30 800 in the Russia region.

📊 Audience metrics and dynamics

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

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

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 12.77%. Within the first 24 hours after publication, content typically collects 7.38% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 793 views. Within the first day, a publication typically gains 1 614 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 8.
  • 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/tvpmDQ По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Thanks to the high frequency of updates (latest data received on 15 June, 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 860
Subscribers
+524 hours
-207 days
-4430 days
Posts Archive
Роботы уже помогают получить работу в Сбере 🤖 ⚡️ AI-рекрутер моментально анализирует твои ответы и выдаёт фидбэк сразу после
Роботы уже помогают получить работу в Сбере 🤖 ⚡️ AI-рекрутер моментально анализирует твои ответы и выдаёт фидбэк сразу после интервью. Больше никаких “Мы вам перезвоним” – всё быстро, чётко и по делу. Как получить пре-офер от Сбера? 1️⃣ Зарегистрируйся на платформе 2️⃣ Авторизуйся через Телеграм 3️⃣ Пройди AI-интервью 💡 Обратную связь ты получишь сразу, а рекрутеры Сбера свяжутся с тобой в течение нескольких дней. 🔗 Попробуй прямо сейчас! 👉 https://clc.to/GkOTTA 🚀 Реклама. ПАО СБЕРБАНК, ИНН 7707083893. Erid 2VtzqubZo8S

🆚 Разница API и SDK Если вы когда-либо работали с интеграциями, то наверняка сталкивались с терминами API и SDK. Но что они
🆚 Разница API и SDK Если вы когда-либо работали с интеграциями, то наверняка сталкивались с терминами API и SDK. Но что они означают и когда использовать каждый из них. 📌 API (Application Programming Interface) — это набор методов для взаимодействия с внешними сервисами и приложениями. 📌 SDK (Software Development Kit) — это полный набор инструментов, включающий API, документацию, библиотеки и утилиты для разработки. ➡️ Подробнее в видео 🐸Библиотека шарписта

🛠 Техника для решения задач Бэктрекинг (Backtracking) — это алгоритмическая техника поиска, которая перебирает возможные реш
🛠 Техника для решения задач Бэктрекинг (Backtracking) — это алгоритмическая техника поиска, которая перебирает возможные решения рекурсивно, откатываясь назад, если текущий путь не ведёт к успеху. ➖ Как работает бэктрекинг 1. Выбираем следующий шаг – пробуем одно из возможных решений. 2. Проверяем ограничение – если путь невозможен, откатываемся назад. 3. Продолжаем поиск – если решение найдено, фиксируем его и ищем другие варианты. Пример кода — поиск всех перестановок строки
class Program
{
    static void Permute(char[] arr, int l, int r)
    {
        if (l == r)
        {
            Console.WriteLine(new string(arr));
        }
        else
        {
            for (int i = l; i <= r; i++)
            {
                (arr[l], arr[i]) = (arr[i], arr[l]); // Обмен символами
                Permute(arr, l + 1, r);
                (arr[l], arr[i]) = (arr[i], arr[l]); // Откат назад
            }
        }
    }

    static void Main()
    {
        string str = "ABC";
        Permute(str.ToCharArray(), 0, str.Length - 1);
    }
}
Где используется • Генерация перестановок и комбинаций – подбор паролей, составление расписаний. • Задача N ферзей – расстановка фигур без угрозы друг другу. • Поиск пути в лабиринте – навигация в сложных структурах. • Разбор выражений и парсинг – обработка кода и регулярных выражений. 🤔 Использовали ли вы бэктрекинг в реальных проектах? Делитесь опытом в комментариях! 👇 🐸Библиотека шарписта

Совет на 2025-й — будьте осторожнее с выбором работы. IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарпла
Совет на 2025-й — будьте осторожнее с выбором работы. IT-рынок штормит: массовые сокращения, заморозка найма, снижение зарплат. В такое время особенно важно отличать стоящие офферы от проходных. Знакомо? Открываешь вакансию, а там: «Ищем middle-разработчика с опытом 10 лет, знанием 15 языков и готовностью работать за печеньки. Офис в Челябинске, релокация за ваш счет» 🤦‍♂️ Чтобы не тратить время на сотни сомнительных предложений, подпишитесь на IT Job Hub. Там мы отфильтровываем весь мусор и публикуем только избранные вакансии в стабильных компаниях: — Зарплаты на уровне рынка, а не на уровне голодного студента — Никаких «мы молодая и дружная семья» — только адекватные условия — Проверенные работодатели, а не стартапы из сомнительных сфер Вакансии удобно разбиты по тегам: #python #java #go #data #devops и по другим направлениям. Без воды и лишнего спама — только проверенные вакансии в знакомых компаниях. Подписывайтесь, если не хотите упустить работу мечты → @proglib_jobs

🚀 Когда стоит отказаться от DI через конструктор Внедрение зависимостей через конструктор — стандартная практика, но не всег
🚀 Когда стоит отказаться от DI через конструктор Внедрение зависимостей через конструктор — стандартная практика, но не всегда лучшая. Разберём, когда не стоит её использовать. 🔹 Singleton со Scoped/Transient зависимостями — может вызвать утечки памяти. Решение: фабрики или внедрение через методы. 🔹 Слишком длинные конструкторы — усложняют поддержку. Решение: рефакторинг или внедрение через свойства. 🔹 Динамические зависимости — на этапе компиляции неизвестны. Решение: сервис-локаторы или фабрики. 💡 DI через конструктор хорош, но не универсален. Выбирайте подход в зависимости от контекста ➡️ Подробнее про решение проблем 🐸Библиотека шарписта

📸 Создание сканера штрих-кодов в .NET MAUI для Windows Desktop Мы нашли проект, в котором создано кроссплатформенное приложе
📸 Создание сканера штрих-кодов в .NET MAUI для Windows Desktop Мы нашли проект, в котором создано кроссплатформенное приложение для Windows, позволяющее считывать коды прямо с камеры, без необходимости в дополнительных устройствах. ➖ Что потребовалось для разработки ✅ .NET MAUI — кроссплатформенный фреймворк для разработки UI-приложений. ✅Dynamsoft Barcode Reader — SDK для распознавания штрих-кодов. ✅Windows Media API — работа с камерой и захват изображений. ✅SkiaSharp — библиотека для графического отображения результатов. ➖ Как работает 1. Получение изображения с камеры с помощью Windows Media API. 2.Обработка кадра и передача его в Dynamsoft Barcode Reader. 3. Распознавание штрих-кода и отображение результата. 4. Вывод данных с графическим выделением кода через SkiaSharp. ➡️ Посмотреть реализацию 🐸Библиотека шарписта

🛠 Используем IOptions с record В .NET 9 теперь можно использовать record-тип вместо классов для IOptions. В отличие от класс
🛠 Используем IOptions с record В .NET 9 теперь можно использовать record-тип вместо классов для IOptions<T>. В отличие от классов, record в IOptions<T> в .NET сравнивается по значению. Он неизменяем, что защищает настройки от случайных изменений, а его лаконичный синтаксис делает код более чистым и поддерживаемым. Теперь можно определять конфигурационные записи, загружать их из appsettings.json и внедрять в сервисы через IOptions<T>. Кроме того, IOptionsSnapshot<T> и IOptionsMonitor<T> позволяют динамически обновлять настройки без перезапуска приложения. ➡️ Подробности и примеры 🐸Библиотека шарписта

Теперь разработчики смогут вести разработку с удобного устройства из любой локации Устали носить с собой тяжелые устройства д
Теперь разработчики смогут вести разработку с удобного устройства из любой локации Устали носить с собой тяжелые устройства для разработки? Можно про это забыть — разработчикам стала доступна российская облачная среда для разработки GigaIDE Cloud со встроенным AI-ассистентом. Среда позволит добавить мощности вашему устройству благодаря возможностям облака для хранения кода и выполнения тяжелых вычислений, редактировать репозитории мгновенно и не тратить время на настройку каждого нового проекта. В GigaIDE Cloud интегрирован AI-ассистент, который автоматизирует рутинные процессы, дает советы и подсказки в реальном времени. Пользуйтесь автодополнением кода, оптимизируйте и исправляйте ошибки с поддержкой AI! Начать пользоваться GigaIDE Cloud — по ссылке.

🌳 Бинарное дерево поиска (BST) BST — это бинарное дерево, где: • Значение в левой ветви меньше значения в узле. • Значение в
🌳 Бинарное дерево поиска (BST) BST — это бинарное дерево, где: • Значение в левой ветви меньше значения в узле. • Значение в правой ветви больше значения в узле. Такое свойство обеспечивает эффективный поиск, вставку и удаление — в среднем за O(log n). Пример реализации:
class Node
{
    public int Value;
    public Node Left;
    public Node Right;

    public Node(int value)
    {
        Value = value;
        Left = Right = null;
    }

    // Вставка нового значения в дерево
    public void Insert(int value)
    {
        if (value < Value)
        {
            if (Left == null)
                Left = new Node(value);
            else
                Left.Insert(value);
        }
        else if (value > Value)
        {
            if (Right == null)
                Right = new Node(value);
            else
                Right.Insert(value);
        }
    }

    // Поиск значения в дереве
    public Node Search(int value)
    {
        if (value == Value)
            return this;
        if (value < Value && Left != null)
            return Left.Search(value);
        if (value > Value && Right != null)
            return Right.Search(value);
        return null;
    }

    // Обход дерева в порядке (LNR - InOrder)
    public void InOrderTraversal()
    {
        if (Left != null)
            Left.InOrderTraversal();
        
        Console.Write(Value + " ");

        if (Right != null)
            Right.InOrderTraversal();
    }
}
Как это работает? 1️⃣ Вставка: • Если значение меньше текущего узла, идём в левое поддерево. • Если больше — в правое. • Если узел пуст, создаём новый. 2️⃣ Поиск: • Сравниваем искомое значение с текущим. • Меньше — идём влево, больше — вправо, равное — нашли. 3️⃣ Обход: • In-order обход (LNR) обходит узлы в отсортированном порядке. 💬 А вы уже реализовали BST? Делитесь опытом и вопросами в комментариях! 🐸Библиотека шарписта

🎙Месяц на тесты В обновлении .NET MAUI Community Toolkit от 17 января появилось офлайн-распознавание речи – теперь можно пре
🎙Месяц на тесты В обновлении .NET MAUI Community Toolkit от 17 января появилось офлайн-распознавание речи – теперь можно преобразовывать голос в текст без интернета на Android 33+ и iOS 13+. Также разработчики исправили работу StatusBar на iOS, улучшили CameraView, MediaElement и Maps. 💭 Если вы уже тестировали новые фичи, как впечатления? Делитесь в комментариях👇 🖇 Почитать про релиз 🐸Библиотека шарписта

🚃 Фоновые задачи с Quartz.NET Quartz — это открытая библиотека для планирования задач в .NET приложениях. Она позволяет разр
🚃 Фоновые задачи с Quartz.NET Quartz — это открытая библиотека для планирования задач в .NET приложениях. Она позволяет разработчикам выполнять фоновые задачи в определенное время или с заданными интервалами. Благодаря кластеризации, Quartz может выполнять задачи на нескольких серверах, что особенно важно для систем с высокой нагрузкой. Кроме того, он поддерживает хранение задач в базе данных. Вот так выглядит регистрация задачи с запуском каждые 10 секунд:
var jobKey = new JobKey("MyBackgroundJob");

builder.Services.AddQuartz(q =>
{
    q.AddJob<MyBackgroundJob>(opts => opts.WithIdentity(jobKey));

    q.AddTrigger(opts => opts
        .ForJob(jobKey)
        .WithIdentity("MyBackgroundJob-trigger")
        .WithSimpleSchedule(schedule => schedule
            .WithIntervalInSeconds(10)
            .RepeatForever()));
});
Пример cron-выражения — каждый день в 3 утра:
q.AddTrigger(opts => opts
    .ForJob(jobKey)
    .WithIdentity("DailyTrigger")
    .WithCronSchedule("0 0 3 * * ?"));
➡️ Подробности на сайте инструмента 🐸Библиотека шарписта

👉 Интенсив «Архитектуры и шаблоны проектирования» для middle и senior-разработчиков Проверьте свои знания, ответив на 8 вопр
👉 Интенсив «Архитектуры и шаблоны проектирования» для middle и senior-разработчиков Проверьте свои знания, ответив на 8 вопросов – https://proglib.io/w/08af6203 🧐 Кому подойдет? Разработчикам, которые знают любой объектно-ориентированный язык программирования и хотят углубиться в архитектурные паттерны. 🎮 Как проходит обучение? В течение всего интенсива вы будете создавать игру «Звездные войны» и применять ключевые архитектурные паттерны. В процессе изучите: – Как строить гибкую архитектуру, которая не замедляет разработку – Как применять IoC-контейнеры и писать модульные тесты – Как использовать SOLID за пределами ООП – Как внедрять CI/CD и снижать технический долг 👉 Подробная программа обучения А по промокоду MIDDLE до 28 февраля вы получите дополнительную скидку на обучение

Документация PostgreSQL — лучший источник знаний о СУБД. Но она отличается огромным объемом: не каждый разработчик осилит 302
Документация PostgreSQL — лучший источник знаний о СУБД. Но она отличается огромным объемом: не каждый разработчик осилит 3024 страницы формата А4. Опытный бэкендер составил список самых важных сведений, которые ему самому хотелось бы знать перед началом работы с PostgreSQL. Эта подборка сэкономит вам несколько недель изучения документации, и скорее всего, пригодится для работы с другими СУБД. 👉 Список самого важного

🛡 Поздравляем героев C#-программирования: ▪️ LINQ — спецназовец по зачистке коллекций. Девиз: «Зачем писать 20 строк, когда
🛡 Поздравляем героев C#-программирования: ▪️ LINQ — спецназовец по зачистке коллекций. Девиз: «Зачем писать 20 строк, когда можно всё сделать в одну нечитаемую?» ▪️ async/await — командир отряда асинхронных операций. Спас целое поколение программистов от callback-ада. ▪️ garbage collector — главный санитар полка. Прибирается за всеми, но всегда в самый неподходящий момент. Под чьей защитой ваш код выживает в продакшене? Докладывайте в комментариях 👇

⚙️ Паттерн Saga в микросервисах Saga — это паттерн управления распределёнными транзакциями, который помогает сохранить целост
⚙️ Паттерн Saga в микросервисах Saga — это паттерн управления распределёнными транзакциями, который помогает сохранить целостность данных без монолитных блокировок и традиционных ACID-ограничений. Вместо единой транзакции мы разбиваем процесс на последовательность локальных операций, каждая из которых выполняется в отдельном сервисе. Два подхода к реализации 1️⃣ Оркестрация • Управляется централизованным координатором. • Каждый шаг транзакции выполняется только после получения команды от оркестратора. • Минус: если оркестратор падает, всё останавливается. • Плюс: понятный контроль за процессом, легче отлаживать. 2️⃣ Хореография • Нет центрального контроллера, сервисы реагируют на события друг друга. • Нет узкого места в виде оркестратора. • Минус: сложнее управлять, можно запутаться в каскаде событий. •Плюс: масштабируемость, нет единой точки отказа. Оркестрация проще в управлении, но менее гибкая. Хореография масштабируется лучше, но сложнее в отладке. ➡️ Подробнее про паттерн в источнике 🐸Библиотека шарписта

🌐 Avalonia UI — универсальный UI-фреймворк Avalonia UI — это открытый фреймворк для создания настольных, мобильных и встраив
🌐 Avalonia UI — универсальный UI-фреймворк Avalonia UI — это открытый фреймворк для создания настольных, мобильных и встраиваемых (IoT) приложений. Он поддерживает Windows, macOS, Linux, iOS, Android и даже WebAssembly. Почему Avalonia UI ➖ Совместимость с XAML – привычный синтаксис WPF, но с дополнительными возможностями, которые делают разработку удобнее. ➖ Native AOT — компиляция в нативный код делает приложения лёгкими, быстрыми и не требующими .NET Runtime. ➖ Малый размер приложений — без тяжёлых зависимостей, в отличие от Electron. ➖ Открытый исходный код — сообщество активно развивает фреймворк, исправляет ошибки и добавляет новые функции без привязки к корпорациям. ➖ Гибкость в разработке — легко интегрируется с различными архитектурными паттернами (MVVM, ReactiveUI) и сторонними библиотеками. ➖ Простота в развертывании — поддержка автономных исполняемых файлов, публикация без сложных зависимостей. ➖ Современные технологии — обновляется, развивается и адаптируется под нужды разработчиков, предлагая передовые решения для UI в .NET. ➡️ Документация по фреймворку 🐸Библиотека шарписта

🐳🔍 Как найти утечки памяти в контейнере с .NET Инструмент dotMemory от JetBrains помогает диагностировать и анализировать п
🐳🔍 Как найти утечки памяти в контейнере с .NET Инструмент dotMemory от JetBrains помогает диагностировать и анализировать потребление памяти в .NET-приложениях, даже если они работают в контейнерах. Как использовать dotMemory 1️⃣ Запускаем приложение в контейнере 2️⃣ Подключаемся через dotMemory dotMemory позволяет собирать дампы памяти прямо из работающего контейнера. Например, с помощью dotMemory CLT:
dotmemory start --save-to=memory_dump.dmp
3️⃣ Ищем утечки Используем dotMemory, чтобы определить: • Удерживаемые объекты . • Долгоживущие объекты, которые не очищаются сборщиком мусора. • Утечки, связанные с событиями и подписками. 💬 Боролись с утечками памяти в контейнерах? Какие инструменты использовали? Делитесь в комментариях ⬇️ ➡️ Подробности в статье 🐸Библиотека шарписта

👨‍💻 Microsoft анонсировала Chroma DB C# SDK Теперь разработчики на C# и .NET могут легко интегрировать Chroma DB в свои AI-
👨‍💻 Microsoft анонсировала Chroma DB C# SDK Теперь разработчики на C# и .NET могут легко интегрировать Chroma DB в свои AI-приложения — Microsoft анонсировала официальный SDK для работы с векторными базами данных. Что такое Chroma DB Chroma — это векторная база данных, предназначенная для поиска по эмбеддингам. Она используется в приложениях с искусственным интеллектом, аналитикой данных и RAG-моделями (Retrieval Augmented Generation). Как это использовать в C# 1. Добавляем Chroma в проект:
dotnet add package ChromaDB.Client
2. Подключаем Chroma в C#-коде:
using ChromaDB.Client;

var configOptions = new ChromaConfigurationOptions(uri: "http://localhost:8000/api/v1/");
using var httpClient = new HttpClient();
var client = new ChromaClient(configOptions, httpClient);
3. Создаём коллекцию и добавляем данные:
var collection = await client.GetOrCreateCollection("movies");
var collectionClient = new ChromaCollectionClient(collection, configOptions, httpClient);
Chroma DB C# SDK — ещё один шаг к тому, чтобы .NET-разработчики легко создавали мощные AI-приложения. ➡️ Подробнее в блоге разработчиков 🐸Библиотека шарписта