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

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

Ir al canal en Telegram

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

Mostrar más

📈 Análisis del canal de Telegram Библиотека шарписта | C#, F#, .NET, ASP.NET

El canal Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 21 866 suscriptores, ocupando la posición 6 209 en la categoría Tecnologías y Aplicaciones y el puesto 30 824 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 21 866 suscriptores.

Según los últimos datos del 11 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -95, y en las últimas 24 horas de -6, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 12.48%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 7.13% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 2 729 visualizaciones. En el primer día suele acumular 1 560 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 9.
  • Intereses temáticos: El contenido se centra en temas clave como .net, шарписта, навигация, await, string.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Все самое полезное для C#-разработчика в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/b60af5a4 Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 12 junio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

21 866
Suscriptores
-624 horas
-237 días
-9530 días
Archivo de publicaciones
🎮 Память в 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