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

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

前往频道在 Telegram

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

显示更多

📈 Telegram 频道 Библиотека шарписта | C#, F#, .NET, ASP.NET 的分析概览

频道 Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 21 860 名订阅者,在 技术与应用 类别中位列第 6 187,并在 俄罗斯 地区排名第 30 800

📊 受众指标与增长动态

невідомо 创建以来,项目保持高速增长,吸引了 21 860 名订阅者。

根据 14 六月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -44,过去 24 小时变化为 5,整体触达仍然可观。

  • 认证状态: 未认证
  • 互动率 (ER): 平均受众互动率为 12.77%。内容发布后 24 小时内通常能获得 7.38% 的反应,占订阅者总量。
  • 帖子覆盖: 每篇帖子平均可获得 2 793 次浏览,首日通常累积 1 614 次浏览。
  • 互动与反馈: 受众积极参与,单帖平均反应数为 8
  • 主题关注点: 内容集中在 .net, шарписта, навигация, await, string 等核心主题上。

📝 描述与内容策略

作者将该频道定位为表达主观观点的平台:
Все самое полезное для C#-разработчика в одном канале. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @proglib_adv Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

凭借高频更新(最新数据采集于 15 六月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。

21 860
订阅者
+524 小时
-207
-4430
帖子存档
Роботы уже помогают получить работу в Сбере 🤖 ⚡️ 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-приложения. ➡️ Подробнее в блоге разработчиков 🐸Библиотека шарписта