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

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

Open in Telegram

Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @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 866 subscribers, ranking 6 212 in the Technologies & Applications category and 30 851 in the Russia region.

📊 Audience metrics and dynamics

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

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

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 12.06%. Within the first 24 hours after publication, content typically collects 7.04% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 2 638 views. Within the first day, a publication typically gains 1 540 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#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Thanks to the high frequency of updates (latest data received on 11 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 866
Subscribers
-424 hours
-167 days
-8730 days
Posts Archive
🎮 Память в Unity и лаги, что реально чинит FPS Мы делились этой статьей, и сейчас напомним. Главная мысль простая, лаги част
🎮 Память в Unity и лаги, что реально чинит FPS Мы делились этой статьей, и сейчас напомним. Главная мысль простая, лаги часто приходят не из за рендера, а из за памяти и резких скачков GC. ➡️ В статье объясняют, почему аллокации и сборщик мусора могут давать фризы и как с этим жить 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #лучшее_из_библиотеки_2025

⚡️ Асинхронная обработка в C# Тогда мы уже рассказывали про IAsyncEnumerable и await foreach. Сейчас повторяем, потому что эт
⚡️ Асинхронная обработка в C# Тогда мы уже рассказывали про IAsyncEnumerable и await foreach. Сейчас повторяем, потому что это одна из тех фич, которую многие видели, но мало кто применяет осознанно. Асинхронные потоки IAsyncEnumerable позволяют эффективно обрабатывать последовательности данных, поступающих с задержками. В целом это положительно влияет на пользовательский опыт и скорость работы приложения 1. Базовый синтаксис:
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

static async IAsyncEnumerable<int> GenerateSequenceAsync(int count, [EnumeratorCancellation] CancellationToken token = default)
{
    for (int i = 0; i < count; i++)
    {
        // Симулируем асинхронную задержку
        await Task.Delay(100, token);
        yield return i;
    }
}

static async Task ConsumeAsync()
{
    await foreach (var item in GenerateSequenceAsync(5))
    {
        Console.WriteLine($"Получено значение: {item}");
    }
}
• Ключевое слово async перед IAsyncEnumerable<T>. • yield return внутри асинхронного метода. • await foreach для потребления. 2. Обработка отмены и ошибок:
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(1));
try
{
    await foreach (var item in GenerateSequenceAsync(10, cts.Token).WithCancellation(cts.Token))
    {
        Console.WriteLine(item);
    }
}
catch (OperationCanceledException)
{
    Console.WriteLine("Операция была отменена.");
}
• Передаём CancellationToken через атрибут [EnumeratorCancellation]. • Используем метод расширения .WithCancellation(token) для явной поддержки отмены в await foreach. 3. Советы по применению • Всегда учитывайте семантику отмены: пробрасывайте CancellationToken до источника потока. • Избегайте долгих синхронных операций внутри цикла генерации — это сведёт на нет преимущества асинхронности. • При больших объёмах данных комбинируйте с буферизацией через Channel<T> для сглаживания пиковой нагрузки. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #лучшее_из_библиотеки_2025

#️⃣ Async Task в Unity против корутин Мы уже делились этим разбором в марте, и сейчас самое время напомнить. В статье хорошо
#️⃣ Async Task в Unity против корутин Мы уже делились этим разбором в марте, и сейчас самое время напомнить. В статье хорошо объясняют, что корутины это не настоящая параллельность, они просто размазывают выполнение по кадрам и все равно живут в основном потоке. Поэтому если внутри корутины сделать блокирующую работу, игра встанет. ➡️ Освежить статью в памяти 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #лучшее_из_библиотеки_2025

👀 Какую IDE выбрать для C# в 2026 Мы уже поднимали тему выбора IDE. Сейчас повторим, потому что смена IDE часто совпадает с
👀 Какую IDE выбрать для C# в 2026 Мы уже поднимали тему выбора IDE. Сейчас повторим, потому что смена IDE часто совпадает с переходом на новый проект или новый стек. 👍 За Visual Studio 🔥 За Rider Остальное в комменты 👇 💬 Что у вас сейчас в роли основной IDE и что бесит больше всего в выбранном варианте? 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #лучшее_из_библиотеки_2025

🎆 Праздники — время лучшего контента 2025 Новый год наступил, но мы не уходим на каникулы. Все праздники публикуем топовые п
🎆 Праздники — время лучшего контента 2025 Новый год наступил, но мы не уходим на каникулы. Все праздники публикуем топовые посты года — те, что вы сохраняли в закладки и пересылали коллегам. ➡️ Ежедневные порции лучшего по хэштегу #лучшее_из_библиотеки_2025 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта

🎄 С Новым годом, шарписты! var year = new Year(2026); year.Wishes = new[] { "чистый код", "нулевой техдолг", "стабильный про
🎄 С Новым годом, шарписты!
var year = new Year(2026);
year.Wishes = new[] { "чистый код", "нулевой техдолг", "стабильный прод" };

while (year.InProgress)
{
    await you.Ship(Features.Amazing);
    await you.Avoid(Bugs.Critical);
    you.Happiness++;
}
🐸Библиотека шарписта

❓ У вас есть ёлка дома
Anonymous voting

🎄 Социальный опрос айтишников Есть два типа людей: те, кто ставит ёлку в начале декабря и наслаждается атмосферой целый меся
🎄 Социальный опрос айтишников Есть два типа людей: те, кто ставит ёлку в начале декабря и наслаждается атмосферой целый месяц, и те, кто украшает её 31-го под бой курантов. 💬 Скидывайте фото своих ёлок в комменты 👇 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #entry_point

📅 Даты и время в .NET без сюрпризов В .NET есть разные типы под разные задачи, и из этого обычно и растут ошибки. DateTime это просто дата и время, но без явного смещения. DateTimeOffset хранит дату, время и смещение от UTC, поэтому однозначно задает момент времени. Для часовых поясов используйте TimeZoneInfo, Microsoft прямо пишет, что для новой разработки лучше TimeZoneInfo вместо старого TimeZone.
var nowUtc = DateTimeOffset.UtcNow;
var moscow = TimeZoneInfo.FindSystemTimeZoneById("Europe/Moscow");
var nowMoscow = TimeZoneInfo.ConvertTime(nowUtc, moscow);

Console.WriteLine(nowUtc);
Console.WriteLine(nowMoscow);
TimeZoneInfo умеет переводить время между часовыми поясами, а DateTimeOffset делает момент переносимым между машинами и окружениями. Еще два полезных типа. DateOnly для календарной даты без времени, например отпуск или дата рождения. TimeOnly для времени без даты, например расписание.
var vacation = new DateOnly(2026, 1, 10);
var standup = new TimeOnly(10, 30);

Console.WriteLine(vacation);
Console.WriteLine(standup);
DateOnly и TimeOnly заменяют костыли с DateTime и TimeSpan, когда вам не нужен момент времени. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #sharp_view

🤔 Не знаете, в чём встречать Новый год? Не беда! Tproger как раз собрал стек новогодних нарядов, чтобы вы сияли ярче, чем лю
🤔 Не знаете, в чём встречать Новый год? Не беда! Tproger как раз собрал стек новогодних нарядов, чтобы вы сияли ярче, чем любая гирлянда. Скорее заходите в виртуальную примерочную и выбирайте скин! 💃 Реклама. ИП Михайлишина Гузель Фаниловна. ИНН 165042823905. Erid 2VtzqukJLdp

📎 Методы вместо сеттеров Открытые геттеры и сеттеры кажутся удобными, но позволяют внешнему коду разрушить внутреннюю логику объекта. Можно предоставлять методы, которые гарантируют соблюдение правил. Например, в заказе количество позиций не должно быть отрицательным. Но с сеттером любой вызовет orderItem.setQuantity(-1000). Объект становится некорректным, а баги проявятся позже. Создайте метод, который принимает ID товара и новое значение. Внутри проверьте, что число положительное, обновите поле и пересчитайте сумму. Пример:
public void ChangeQuantity(string itemId, int newQuantity) {  
    if (newQuantity < 0) throw new ArgumentException("Количество не может быть отрицательным");  
    var item = items.FirstOrDefault(i => i.Id == itemId);  
    if (item != null) {  
        item.Quantity = newQuantity;  
        RecalculateTotal();  
    }  
}  
Так внешний код не может нарушить правила. Можно ограничить сеттер проверкой, но множество проверок может сломать принцип единой ответственности. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #il_люминатор

👨‍💻 Ложная иммутабельность Часто новички в функциональном программировании думают, что сделали иммутабельный код. Берут список, вызывают ToList() или Select() и радуются новому списку. Но в C# это ловушка. Проблема в ссылочных типах. var copy = original.ToList() создаёт новый List, но все элементы внутри — те же самые объекты. Меняете свойство через copy, и оригинал тоже меняется. Правило трёх • Records с init-only свойствами для value-like поведения • ImmutableList<T> из System.Collections.Immutable — настоящие неизменяемые коллекции • Struct только для маленьких типов 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #sharp_view

📂 Files для Windows 11 получил интеграцию с PowerToys Files это популярный сторонний файловый менеджер для Windows 11. В нов
📂 Files для Windows 11 получил интеграцию с PowerToys Files это популярный сторонний файловый менеджер для Windows 11. В новости пишут, что он получил интеграцию с одной из самых удобных утилит PowerToys, которая делает быстрый предпросмотр файлов. Речь про Peek. Вы выделяете файл и жмёте Ctrl плюс Space, и файл открывается в лёгком окне предпросмотра. Это работает как быстрый просмотр, без запуска отдельного приложения. ➡️ Источник 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #async_news

⛄️ Путь к мечте продолжается Пока вы думаете, что «не хватает времени» или «сложные обстоятельства» — Стас перенёс две нейрох
⛄️ Путь к мечте продолжается Пока вы думаете, что «не хватает времени» или «сложные обстоятельства» — Стас перенёс две нейрохирургические операции, собирает себя по кусочкам, при этом проходит курс по C++, пилит проекты для портфолио и откликается на вакансии. ➡️ Читать продолжение пути Стаса 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта

🌐 Постоянные редиректы в ASP.NET RedirectPermanent работает в контроллерах MVC и Core. Метод отправляет статус 301 Moved Permanently, браузеры кэшируют такой редирект и сразу переходят на новый адрес без повторных запросов к старому. В контроллере это выглядит просто:
public IActionResult OldPage()
{
    return RedirectPermanent("/new-page");
}
Здесь запрос на /old-page уйдет на /new-page с кодом 301. Поисковики обновят индекс и перестанут индексировать старый адрес. Разница с обычным Redirect в статусе ответа. Redirect (302) говорит «временно перемещено», браузер каждый раз проверяет старый URL. RedirectPermanent (301) фиксирует «навсегда», что экономит трафик и улучшает SEO. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #sharp_view

AI-агенты: почему LangChain и ReAct — это must-have для шарписта 🛠️ Интеграция ИИ в корпоративный софт больше не ограничивае
AI-агенты: почему LangChain и ReAct — это must-have для шарписта 🛠️ Интеграция ИИ в корпоративный софт больше не ограничивается вызовом API. Нужно строить сложные системы с памятью и автономной логикой. На курсе мы разберём передовой стек разработки мультиагентных систем. Ключевые темы: — реализация логики «Reasoning + Acting» для полной автономности; — использование n8n как мощного визуального оркестратора процессов; — применение протокола MCP от Anthropic для надёжной связи; — построение масштабируемого RAG для работы с Big Data. Создайте систему из нескольких агентов, которая возьмёт на себя сложную аналитику и поддержку клиентов. Старт курса 🚀

👨‍💻 Рабочее место админа пепси-кодера 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #garbage_collector
👨‍💻 Рабочее место админа пепси-кодера 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #garbage_collector

👥 Дайджест 2025 Год завершается, самое время подвести итоги. 2025 принёс нам .NET 10 — юбилейный LTS-релиз. ↪️ .NET 10 Релиз
👥 Дайджест 2025 Год завершается, самое время подвести итоги. 2025 принёс нам .NET 10 — юбилейный LTS-релиз. ↪️ .NET 10 Релиз состоялся 11 ноября 2025 года. Сами Microsoft называет его самым производительным, современным и безопасным выпуском платформы. • Улучшения JIT-компилятора: инлайнинг, девиртуализация методов, оптимизация генерации кода для struct-аргументов. • Поддержка AVX10.2 для Intel и Arm64 SVE для продвинутой векторизации. • Улучшения NativeAOT: меньше размер, быстрее запуск. • Стековая аллокация для маленьких массивов фиксированного размера. • Встроенная поддержка AI через новый Microsoft Agent Framework • Постквантовая криптография: добавлена поддержка алгоритмов ML-KEM (FIPS 203), ML-DSA (FIPS 204) и SLH-DSA (FIPS 205). ↪️ C# 14 C# 14 обновили большим количеством фич: ключевое слово field, блоки расширений, partial-конструкторы и события, оператор null-conditional assignment, перегрузку составных операторов присваивания, модификаторы параметров в лямбдах без указания типа. ↪️ F# 10 У нас был цикл постов про обновления F#. От подавления предупреждений до авто-свойств. ↪️ Entity Framework Core 10 • Полная поддержка типа данных vector и функции VECTOR_DISTANCE() для Azure SQL Database и SQL Server 2025 • EF Core 10 добавляет first-class поддержку операторов LeftJoin и RightJoin • Теперь можно назначать имена фильтрам и управлять ими по отдельности ↪️ ASP.NET 10 и Blazor • Декларативное сохранение состояния через атрибут [PersistentState] • Circuit state persistence — пользователи могут возобновить сессию после дисконнекта. • blazor.web.js теперь сжимается: размер уменьшился на 76% — со 183 KB до ~43 KB. • Встроенная страница NotFound.razor в шаблонах. • Полная поддержка OpenAPI 3.1 и YAML-формата для API-документации. ↪️ .NET MAUI 10 • XAML компилируется во время сборки, а не парсится в runtime • Новый шаблон проекта для интеграции MAUI с .NET Aspire • Экспериментальная возможность использовать CoreCLR вместо Mono .NET Aspire • Команды aspire new, aspire run, aspire config и preview-команды aspire publish/deploy • Можно определить Aspire AppHost без традиционного project file • Типизированные клиентские библиотеки для GitHub Models, Azure AI Foundry и OpenAI ↪️ Visual Studio 2026 • Более 5000 исправленных багов и 300 реализованных фич. • Запуск приложений до 30% быстрее по сравнению с VS 2022 • IDE отвязана от build tools — можно обновлять IDE без влияния на toolchain • Полная поддержка .NET 10 и C# 14 Год получился насыщенным. Все события можно найти по хэштегу #async_news. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #async_news

🌐 Перенаправляем запросы в ASP.NET Redirect в ASP.NET перенаправляет пользователя на другой URL с кодом 302 Found. Это временное перемещение, когда браузер каждый раз проверяет исходный адрес. Основные примеры использования:
// 1. Абсолютный путь
return Redirect("https://example.com");

// 2. Относительный путь
return Redirect("/admin/dashboard");

// 3. Действие контроллера
return RedirectToAction("Edit", "User", new { id = model.Id });

// 4. URL с параметрами
return Redirect($"/products?category={categoryId}");
Redirect подходит для временных переходов. Для постоянных ссылок переходите на RedirectPermanent. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #sharp_view