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
帖子存档
Какие методы отслеживания здоровья вы используете?
Anonymous voting

😊 Привет, шарписты! Мы собираем данные о том, какие методы биохакинга действительно помогают разрабам улучшить качество жизн
😊 Привет, шарписты! Мы собираем данные о том, какие методы биохакинга действительно помогают разрабам улучшить качество жизни и повысить продуктивность. Поделитесь своим опытом — это поможет другим сделать осознанный выбор в мире биохакинга.

⚙️ Пайпы в F#: как писать чистый и читаемый код Если вы работаете с F#, то наверняка слышали о пайпах (pipes). Это инструмент
⚙️ Пайпы в F#: как писать чистый и читаемый код Если вы работаете с F#, то наверняка слышали о пайпах (pipes). Это инструмент языка, который помогает писать код в стиле "конвейера", делая код читаемым и выразительным. Давайте разберем, как они работают и зачем их использовать. ❓Что такое пайпы? Пайпы — это операторы, которые передают результат одной функции в качестве входного аргумента другой. В F# есть два оператора:Прямой пайп (|>) — передает значение слева в функцию справа. • Обратный пайп (<|) — передает значение справа в функцию слева. 1️⃣ Прямой пайп (|>) — этот оператор используется чаще всего. Он делает код более линейным и похожим на "конвейер". Пример:
let add x y = x + y
let multiplyBy2 x = x * 2

// Без пайпа
let result1 = multiplyBy2 (add 3 4) // 3 + 4 = 7, затем 7 * 2 = 14

// С пайпом
let result2 = add 3 4 |> multiplyBy2 // То же самое, но более читаемо
2️⃣ Обратный пайп (<|) — этот оператор менее популярен, но не менее полезен для улучшения читаемости. Пример:
let result = multiplyBy2 <| add 3 4 // То же, что и multiplyBy2 (add 3 4)
3. Зачем использовать пайпы? Код становится линейным и понятным. Не нужно вкладывать вызовы функций в скобки. Пайпы подчеркивают функциональную природу F#. 🐸Библиотека шарписта

🔄 Meadow v2: что изменилось Команда Wilderness Labs выпустила долгожданную Meadow v2 — крупное обновление платформы для разр
🔄 Meadow v2: что изменилось Команда Wilderness Labs выпустила долгожданную Meadow v2 — крупное обновление платформы для разработки IoT-устройств на базе .NET! 🚀 Если вы занимаетесь созданием умных устройств или встраиваемых систем, этот релиз точно заслуживает вашего внимания. Давайте разберем, что нового: ➡️ Meadow v2 получил серьезные улучшения в работе операционной системы, что повышает стабильность и производительность устройств. ➡️ Добавлены новые API для работы с периферией, сенсорами и другими компонентами, что упрощает разработку сложных IoT-решений. ➡️ Теперь Meadow лучше работает с различными аппаратными компонентами, что расширяет возможности для создания уникальных устройств. ➡️ Множество багов и проблем, обнаруженных в предыдущих версиях, были устранены, что делает платформу более надежной. ➡️ Wilderness Labs постарались улучшить документацию, чтобы разработчикам было проще начать работу с платформой. 📎 Полный список изменений доступен на официальной странице релиза 🐸Библиотека шарписта #новость

👋 Привет, шарписты! Есть идеи для пет-проектов? А может уже что-то делаете? Поделитесь своими задумками с сообществом! 👇 Ве
👋 Привет, шарписты! Есть идеи для пет-проектов? А может уже что-то делаете? Поделитесь своими задумками с сообществом! 👇 Ведь это субботний #интерактив! Не стесняйтесь делиться своими идеями и прогрессом в их реализации. Мы уверены, что среди вас много талантливых разработчиков, которые могут создать что-то уникальное и интересное. 🐸Библиотека шарписта

⚡️ Автоматическая регистрация зависимостей в C# Scrutor — это библиотека для упрощения регистрации зависимостей в контейнере
⚡️ Автоматическая регистрация зависимостей в C# Scrutor — это библиотека для упрощения регистрации зависимостей в контейнере инверсии управления (IoC) Microsoft.Extensions.DependencyInjection. Она позволяет автоматически сканировать сборки и регистрировать классы по заданным правилам, избавляя от необходимости вручную прописывать каждую зависимость. 💻 Пример использования С помощью Scrutor можно зарегистрировать все классы в сборке, реализующие интерфейсы, в несколько строк:
services.Scan(scan => scan
    .FromAssemblyOf<Startup>() // Сканирование текущей сборки
    .AddClasses()              // Добавление всех классов
    .AsImplementedInterfaces() // Регистрация их как интерфейсов
    .WithScopedLifetime());    // Установка времени жизни
💡 Основные возможности • Автоматическая регистрация классов. • Фильтрация классов по правилам (например, по имени или пространству имён). • Настройка времени жизни (Transient, Scoped, Singleton). • Регистрация классов с пользовательскими интерфейсами или без них. 📎 GitHub библиотеки 🐸Библиотека шарписта

С Новым годом и Годом Змеи! 🐍 Пусть этот год принесет вам успех, рост и меньше усилий для достижения больших целей. Мы в Pro
С Новым годом и Годом Змеи! 🐍 Пусть этот год принесет вам успех, рост и меньше усилий для достижения больших целей. Мы в Proglib Academy пришли с хорошими новостями в начале года. 🌟 Обновления курсов! Мы работаем над тем, чтобы ваше обучение было проще и эффективнее. Вот что мы уже улучшили: 📈 Data Science: улучшили блок «Геометрическая прогрессия и векторная алгебра» — ключевой этап курса, который идет сразу после теории множеств. Он закладывает фундамент для работы с данными: от анализа роста и убывания величин (геометрическая прогрессия) до понимания многомерных пространств и операций с векторами. Знания которых пригодятся в машинном обучения и аналитики. 🐍 Python: обновили курс с учетом последней версии Python 3.9.5, добавив актуальные материалы и улучшив структуру. Чтобы вы могли лучше закрепить пройденный материал, мы добавили новые интересные задачи и практические примеры. Учебный процесс стал еще удобнее и эффективнее, а вы сможете быстрее освоить современные инструменты и техники программирования Общие обновления: - Перезаписали демо-курсы и презентации. Чтобы вы точно одурели с этой прикормки. - Сократили время проверки домашних заданий, ответы теперь приходят быстрее. - Видео теперь без перекрытий, презентации стали четче, а задания логичнее. Но главное — мы растем для вас и с вами. Ваша обратная связь помогает нам становиться лучше. Делитесь идеями, и вместе мы создадим лучший образовательный продукт для вас! 💡 С 27.01.25 цены изменятся на 10%. Пример: Математика для DS (Базовый): 20,990 → 23,090 ₽. Это позволяет нам делать курсы еще круче. Давайте сделаем 2025 год годом вашего профессионального успеха! 🚀 Выбрать курс

👀 Трансляция о .NET и работе с данными Недавно прошла трансляция «.NET Data Community Standup» , на которой эксперты обсудил
👀 Трансляция о .NET и работе с данными Недавно прошла трансляция «.NET Data Community Standup» , на которой эксперты обсудили ключевые подходы и инструменты для оптимизации работы с данными в .NET. 🔉 Что обсудили? ➡️ Context Pooling: • Рассказали, как эффективно управлять контекстами данных в .NET. • Обсуждали оптимизацию ресурсов, улучшение производительности приложений и типичные случаи использования пуллинга. ➡️ Метод FromSql: • Объяснили, как использовать необработанные SQL-запросы в Entity Framework. • Разобрали, когда FromSql может быть полезен, а когда его лучше избегать. ➡️ Скомпилированные запросы: • Показали, как предварительная компиляция запросов снижает накладные расходы. • Поделились примерами, где скомпилированные запросы позволяют ускорить повторное выполнение запросов. 📎 Смотреть запись трансляции 🐸Библиотека шарписта

🌵🕵️‍♂️ Git-квест: 10 испытаний для повелителя репозиториев Привет, шарписты! Вы пишете код, который собирается в проекты, п
🌵🕵️‍♂️ Git-квест: 10 испытаний для повелителя репозиториев Привет, шарписты! Вы пишете код, который собирается в проекты, покоряющие мир, но знаете ли вы, как не запушить .env в мастер? Этот тест — шанс доказать, что вы не только мастер LINQ, но и ветвлений в Git ✏️ Пройти тест

🎵 «Кодю под windows - да, это легко» Предлагаем послушать авторский айти ремикс о нашем любимом C#! Без наездов на джавистов
🎵 «Кодю под windows - да, это легко» Предлагаем послушать авторский айти ремикс о нашем любимом C#! Без наездов на джавистов не обошлось. 🎧 Слушать 🐸Библиотека шарписта

👨‍💻 Кроссплатформенная разработка с .NET MAUI и Blazor Hybrid 💡 .NET MAUI и Blazor Hybrid предоставляют возможность исполь
👨‍💻 Кроссплатформенная разработка с .NET MAUI и Blazor Hybrid 💡 .NET MAUI и Blazor Hybrid предоставляют возможность использовать единую кодовую базу для создания приложений, работающих на мобильных устройствах, настольных системах и в вебе. Это решение для тех, кто хочет оптимизировать процесс разработки. 🎯 Чем это удобно? • Переиспользование Razor-компонентов между вебом, мобильными и настольными приложениями. • Единый стиль работы для разработчиков, знакомых с экосистемой .NET Если вы хотите понять, как это работает на практике, рекомендуем ознакомиться с одной из статей, где подробно описывается процесс создания кроссплатформенного приложения на основе .NET MAUI и Blazor Hybrid. 📎 Посмотреть как разработать мультиплатформенное приложение 🐸Библиотека шарписта

⚙️ Мини-гайд по реализации MFA в .NET Многофакторная аутентификация (MFA) — это важный инструмент для повышения безопасности
⚙️ Мини-гайд по реализации MFA в .NET Многофакторная аутентификация (MFA) — это важный инструмент для повышения безопасности приложений. Она требует подтверждения личности пользователя через два или более независимых фактора, таких как пароль и одноразовый код из приложения-аутентификатора (например, Google Authenticator). Как это работает: ➡️Для каждого пользователя создается уникальный секретный ключ. Этот ключ используется для генерации одноразовых паролей (TOTP). ➡️Секретный ключ кодируется в формате QR-кода. Пользователь сканирует этот код своим приложением-аутентификатором, чтобы настроить MFA. ➡️После настройки приложение генерирует коды, которые действуют в течение ограниченного времени. ➡️При входе в приложение пользователь вводит код из аутентификатора. Сервер проверяет его, сравнивая с тем, что должно быть сгенерировано для данного пользователя. Основные этапы реализации в .NET: 1️⃣ Настройте библиотеку для работы с TOTP и генерации QR-кодов. 2️⃣ Реализуйте процесс генерации секретного ключа и сохранения в базе данных. 3️⃣ Организуйте валидацию кода на сервере при каждом входе. 📎 Пример реализации с кодом 🐸Библиотека шарписта

⚡️ Работа с gRPC API в .NET 8 ❓Что такое gRPC? gRPC — это фреймворк удаленных вызовов процедур, который использует HTTP/2 для
⚡️ Работа с gRPC API в .NET 8 ❓Что такое gRPC? gRPC — это фреймворк удаленных вызовов процедур, который использует HTTP/2 для передачи данных между приложениями. Он выделяется высокой производительностью благодаря бинарному формату Protocol Buffers. 🧑‍💻Реализация API В статье из C#Corner пошагово описан процесс реализации API в .NET 8: 1️⃣ Всё начинается с создания нового проекта с использованием шаблона "gRPC Service". 2️⃣ Затем внимание уделяется определению Proto-файла, который задает структуру запросов и ответов, а также созданию методов API. 3️⃣ Далее рассматривается, как написать серверную логику, обрабатывающую CRUD-операции, и настроить маршруты для работы API. 4️⃣ Заключительный этап — тестирование с использованием Postman, который позволит отправить gRPC-запросы и проверить функциональность сервиса. 📎 Пошаговое руководство для gRPC API 🐸Библиотека шарписта

🔢 Числовая сортировка строк в .NET Спустя 10 лет дискуссий сообщество .NET наконец-то получит поддержку числовой сортировки
🔢 Числовая сортировка строк в .NET Спустя 10 лет дискуссий сообщество .NET наконец-то получит поддержку числовой сортировки строк. Теперь строки с числами, например "file2" и "file10", сортируются логично с учётом чисел. Это стало возможным благодаря новому флагу CompareOptions.NumericOrdering, добавленному в PR#109861. Вопрос впервые подняли ещё в 2015 году в issue#13979, и с тех пор разработчики искали безопасный и универсальный способ его решения. 🎉Эта долгожданная функция будет доступна в будущих версиях .NET, улучшая работу со строками в файлах, версиях и других данных. #новость 🐸Библиотека шарписта

🤨 Неочевидная проблема FirstOrDefault Метод FirstOrDefault в LINQ может стать источником путаницы. Он возвращает первый элем
🤨 Неочевидная проблема FirstOrDefault Метод FirstOrDefault в LINQ может стать источником путаницы. Он возвращает первый элемент последовательности или значение по умолчанию для типа, если элементов нет. Для ссылочных типов и Nullable<T> это null, а для значимых типов (например, int) — это их дефолтное значение (0, false и т.д.). ✏️ Например, вызов FirstOrDefault для пустого списка List<int> вернёт 0, что может быть неожиданно, если 0 имеет смысловое значение в вашем коде.
var numbers = new List<int> { };
var result = numbers.FirstOrDefault();
Console.WriteLine(result); // Вывод: 0
❗️Чтобы избежать ошибок, рекомендуется явно проверять коллекцию на пустоту перед вызовом метода или использовать DefaultIfEmpty, чтобы задать своё значение по умолчанию. Например:
var result = numbers.DefaultIfEmpty(null).FirstOrDefault();
Это гарантирует, что даже для пустой коллекции результат будет null, а не дефолтное значение типа. Такой подход делает код понятным и избавляет от скрытых проблем с обработкой "пустых" результатов. 🐸Библиотека шарписта #tip

💡Лучшие практики работы с HttpClient в C# HttpClient — это часто неочевидная область, где мелкие ошибки могут обернуться бол
💡Лучшие практики работы с HttpClient в C# HttpClient — это часто неочевидная область, где мелкие ошибки могут обернуться большими проблемами, такими как утечки ресурсов, игнорирование изменений DNS или перегрузка сети. Вот несколько ключевых уроков, которые помогут вам эффективно управлять HTTP-запросами в ваших приложениях. 1️⃣ Никогда не создавайте HttpClient в цикле Каждый раз, когда вы создаёте новый экземпляр HttpClient, в операционной системе открывается новый TCP-сокет. Если вы забыли правильно утилизировать его (или создаёте их слишком много за короткий промежуток времени), это может привести к исчерпанию доступных портов и замедлению работы приложения. 2️⃣ Используйте IHttpClientFactory Вместо создания HttpClient вручную, внедряйте фабрику IHttpClientFactory. Она решает проблемы утечки сокетов, управляет временем жизни клиентов и правильно обрабатывает изменения DNS. 3️⃣ Используйте политику повторных попыток Сетевые запросы могут иногда прерываться. Настройте стратегию повторных попыток через библиотеку Polly, к примеру.
services.AddHttpClient("RetryClient")
    .AddTransientHttpErrorPolicy(policy =>
        policy.WaitAndRetryAsync(3, _ => TimeSpan.FromSeconds(2)));
📎Если вы хотите погрузиться глубже, разобраться с именованными и типизированными клиентами, управлением DNS и правильной утилизацией, то рекомендуем статью к прочтению

💡 Совет по паттерн-матчингу Когда вы работаете с switch или проверяете объекты через is, не забывайте про символ _. Это унив
💡 Совет по паттерн-матчингу Когда вы работаете с switch или проверяете объекты через is, не забывайте про символ _. Это универсальный паттерн, который подходит для любого значения. Например, в switch он удобно используется для обработки случаев «по умолчанию»:
string DescribeDay(string day) => day switch
{
    "Monday" => "Начало недели",
    "Friday" => "Пятница, ура!",
    _ => "Обычный день" // Все остальные случаи
};