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

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

Open in Telegram

Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @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 701 subscribers, ranking 5 943 in the Technologies & Applications category and 30 267 in the Russia region.

📊 Audience metrics and dynamics

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

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

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

Thanks to the high frequency of updates (latest data received on 30 August, 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 701
Subscribers
-624 hours
-57 days
-4830 days
Posts Archive
🔄 Что нового в .NET 10 Оптимизации JIT-компиляции и улучшенная генерация кода ускоряют работу приложений. Добавлена поддержк
🔄 Что нового в .NET 10 Оптимизации JIT-компиляции и улучшенная генерация кода ускоряют работу приложений. Добавлена поддержка новых инструкций AVX10.2 и NativeAOT. Появились новые API для криптографии с поддержкой пост-квантовых алгоритмов и расширенными возможностями по ML-DSA. Улучшена поддержка глобализации, сериализации, работы с числовыми данными и ZIP-файлами. Добавлена поддержка WebSocketStream и TLS 1.3 для macOS, а также расширены возможности управления процессами Windows. .NET 10 SDK позволяет создавать контейнерные образы нативно и предлагает улучшенную CLI с генерацией табуляционных сценариев. Новые инструменты SDK поддерживают разные платформы и расширяют возможности для devops и cloud-разработки. Улучшения Blazor, OpenAPI, расширенная проверка форм и поддержка Passkey для Identity. C# 14 получил новые возможности: доступ к backing fields в свойствах, улучшения в nameof для generic-типов, более гибкая работа с Span<T> в лямбдах, расширенные статические методы и операторы, а также новые частичные конструкторы и события. F#, Visual Basic, .NET MAUI, EF Core, Windows Forms и WPF обновились с улучшениями производительности, юзабилити и новым функционалом. ➡️ Блог Microsoft 🐸Библиотека шарписта #async_news

🤨 Что стоит за обещаниями гибкого графика и карьерного роста в IT-вакансиях Читать вакансии нужно внимательно, иначе можно н
🤨 Что стоит за обещаниями гибкого графика и карьерного роста в IT-вакансиях Читать вакансии нужно внимательно, иначе можно не заметить, что под модными словосочетаниями скрываются нестандартные условия труда или неожиданные обязательства. Например, если описана свобода выбора графика, это почти всегда значит, что появятся поздние звонки или потребуется работать когда угодно. Формулировки про перспективы развития часто переводятся на постоянную работу в режиме форсированного многозадачия, где на поддержку рассчитывать не придется. ➡️ Узнать, что работодатели имеют в виду 🐸Библиотека шарписта

📎 Копирование с with Records поддерживают выражение with, которое создаёт изменённую копию объекта без изменения оригинала:
public record Person(string FirstName, string LastName);

var original = new Person("Анна", "Смирнова");
var updated = original with { LastName = "Петрова" };

Console.WriteLine(original.LastName);   // Смирнова
Console.WriteLine(updated.LastName); // Петрова
Особенно полезно в event sourcing, CQRS или Redux-подобных архитектурах, где вы дериватизируете новые состояния без мутации исходных данных:
public record Order(int Id, string Status);

var first = new Order(1, "Ожидает");
var second = first with { Status = "Обработан" };
var third = second with { Status = "Отправлен" };

// Все три состояния существуют независимо
Это гарантирует, что никаких побочных эффектов, никаких неожиданных изменений в другой части кода. История состояний становится явной. 🐸Библиотека шарписта #sharp_view

👀 .NET Conf 2025 — День 2 Скоро начнётся второй день .NET Conf 2025. Среди тем — использование Azure для разработки с контей
👀 .NET Conf 2025 — День 2 Скоро начнётся второй день .NET Conf 2025. Среди тем — использование Azure для разработки с контейнерами, Kubernetes, функциями и AI-сервисами, построение собственных интеграций с помощью Remote MCP серверов, а также интеграция Redis с .NET. ➡️ Трансляция 🐸Библиотека шарписта #async_news

💻 Сравнение по значению автоматом Вы знаете, что с классами сравнение — это боль? Два объекта с одинаковыми данными считаются разными, потому что сравнивается идентичность. Иначе работают Records:
public record Person(string FirstName, string LastName);

var p1 = new Person("Иван", "Иванов");
var p2 = new Person("Иван", "Иванов");

Console.WriteLine(p1 == p2); // true
Без переопределения Equals, без GetHashCode, без перегрузки оператора ==. Record сам сравнит все свойства и даст правильный результат. В словарях, в списках, при проверке условий — везде это работает как вы интуитивно ожидаете. Не будет случайных багов, когда один экземпляр не равен другому из-за того, что вы забыли переопределить Equals.
var users = new HashSet<User>();
users.Add(new User("Мария", "maria@example.com"));
users.Contains(new User("Мария", "maria@example.com")); // true — работает!
Value-based семантика — это основа, на которой строятся остальные возможности Records. 🐸Библиотека шарписта #sharp_view

💻 Скриншоты текста — зло для разработчиков Когда видишь скриншот с кодом или ошибкой, хочется плакать — приходится вручную п
💻 Скриншоты текста — зло для разработчиков Когда видишь скриншот с кодом или ошибкой, хочется плакать — приходится вручную переписывать, тратить время и допускать ошибки. Почему бы просто не вставить текст? Отказ от удобств в угоду ленью — плохой тренд. 💬 Пробовали ли вы объяснять коллегам, почему скриншоты текста — это неудобно? Есть ли похожий опыт? Делитесь болью в комментах 👇 🐸Библиотека шарписта #entry_point

🛒 Black Friday от Proglib.academy! Только до 30 ноября — скидка 40% на ВСЕ курсы. Пора добавить в корзину не носки, а новые
🛒 Black Friday от Proglib.academy! Только до 30 ноября — скидка 40% на ВСЕ курсы. Пора добавить в корзину не носки, а новые скиллы: Python, математика для Data Science, AI, алгоритмы и структуры данных, ML. 🎓 Выбирай курс, который реально двинет тебя в карьере, и учись со скидкой. 👉 Учиться со скидкой

👀 .NET Conf 2025 — День 1 Сегодня начинается 15-я ежегодная виртуальная конференция .NET Conf 2025. В первый день будут докл
👀 .NET Conf 2025 — День 1 Сегодня начинается 15-я ежегодная виртуальная конференция .NET Conf 2025. В первый день будут доклады по C# 14, производительности .NET 10, обновлениям Blazor, фреймворку Aspire, Agentic Development и .NET MAUI. Второй день посвящён облачной разработке с Azure, интеграциям Remote MCP серверов, Redis, расширениям Aspire и новому фреймворку тестирования Microsoft.Testing.Platform ➡️ Трансляция 🐸Библиотека шарписта #async_news

⭐️ Иммутабельность без танцев с бубном Records — это ссылочный тип, который упростил жизнь разработчикам, привыкшим писать иммутабельные классы вручную. Вот зачем они нужны. Раньше иммутабельный класс требовал много кода: readonly свойства, отключённые сеттеры, кастомные конструкторы. И всё равно где-то находилась лазейка. С Records это просто исчезает:
public record User(string Name, string Email);

var user = new User("Алексей", "alex@example.com");
// user.Name = "Новое имя"; — Ошибка компиляции
Все свойства автоматически получают init-accessor. Установить значение можно только при создании объекта. Это не просто синтаксический сахар — это гарантия от багов состояния, которые трудно найти. Если вам нужен объект инициализатор, Records это поддерживают:
public record Product
{
    public string Name { get; init; }
    public decimal Price { get; init; }
}

var book = new Product { Name = "C# Deep Dive", Price = 49.99M };
Проще тестировать, проще рассуждать о коде, проще избежать багов в многопоточной среде. А ошибки, связанные с неожиданным изменением состояния, просто перестают существовать. 🐸Библиотека шарписта #sharp_view

💻 Хочешь MacBook Pro? Просто начни учиться! Да-да, вы не ослышались: Proglib.academy дарит макбук за учёбу! Всё просто: — ку
💻 Хочешь MacBook Pro? Просто начни учиться! Да-да, вы не ослышались: Proglib.academy дарит макбук за учёбу! Всё просто: — купи любой курс Академии до 15 ноября; — пройди 2 недели обучения (можно за два дня); — напиши куратору в чате курса хэштег #розыгрыш. 📚 Выбирай свой курс: ▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными; ▫️ «Основы Python» — чтобы начать писать код с нуля; ▫️ «Алгоритмы и структуры данных» — для будущих инженеров; ▫️ «AI-агенты» или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ. 👉 Участвовать в розыгрыше

⚡️ Когда важна производительность В C# цикл foreach часто воспринимается как самая удобная и красивая форма для обхода коллек
⚡️ Когда важна производительность В C# цикл foreach часто воспринимается как самая удобная и красивая форма для обхода коллекций. Но в вопросах производительности foreach не всегда оптимален. Почему лучше избегать foreach:foreach использует итератор — для массивов его оптимизируют, но для списков, словарей и других коллекций создаётся объект или struct-итератор. • под капотом foreach может создавать временные объекты, что увеличивает нагрузку на сборщик мусора и снижает производительность. • foreach всегда выполняет проверки и гарантирует корректность обхода, но это стоит некоторой производительности. Что использовать вместо foreach: Цикл for с индексом, особенно для массивов:
for (int i = 0; i < data.Length; i++)
{
    // работа с data[i]
}
Span<T> и его методы — для обхода данных без выделения памяти и избыточных проверок:
var span = data.AsSpan();
for (int i = 0; i < span.Length; i++)
{
    // работа с span[i]
}
Когда можно использовать foreach: • Если цикл выполняется нечасто или количество элементов небольшое. • Для обхода коллекций, где критичен чистый и понятный стиль программирования. 🐸Библиотека шарписта #sharp_view

Управление зависимостями в ASP.NET Core: меньше рутины, больше автоматизации. Ручное добавление сервисов через AddScoped и Ad
Управление зависимостями в ASP.NET Core: меньше рутины, больше автоматизации. Ручное добавление сервисов через AddScoped и AddSingleton превращает Program.cs в бесконечный список регистраций. Но есть способ проще — библиотека Scrutor. На открытом вебинаре курса OTUS C# ASP.NET Core разработчик Михаил Дмитриев покажет, как автоматизировать регистрацию сервисов и расширить стандартный IoC контейнер. 📌 18 ноября, 20:00 Управление зависимостями в ASP.NET Core с помощью Scrutor — массовая регистрация сервисов по правилам — использование паттерна декоратор — добавление кэширования без переписывания кода — реальные примеры для продакшн-проектов Вебинар бесплатный и будет полезен ASP.NET Core-разработчикам, которые хотят упростить настройку зависимостей и сделать код чище. 👉 Регистрируйтесь: https://clc.to/kM8GpA Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

🤩 Doom теперь в Telegram В Telegram появился порт классической игры Doom, а также Doom II, который теперь запускается прямо
🤩 Doom теперь в Telegram В Telegram появился порт классической игры Doom, а также Doom II, который теперь запускается прямо внутри WebView виджета. ➡️ Поиграть 🐸Библиотека шарписта #async_news

💻 ВАЖНО: макбук ещё не забрали! Proglib.academy продолжает розыгрыш MacBook Pro 14» (M3 Pro, 36 Гб, 1 Тб SSD). Что нужно для
💻 ВАЖНО: макбук ещё не забрали! Proglib.academy продолжает розыгрыш MacBook Pro 14» (M3 Pro, 36 Гб, 1 Тб SSD). Что нужно для участия? — Берёшь любой курс Академии до 15 ноября. — Проходишь хотя бы 2 недели обучения (можно за два дня). — Пишешь куратору #розыгрыш. Всё — ты в игре! Что за курсы? ▫️Алгоритмы и структуры данных — если хочешь готовиться к собесам в Яндекс, FAANG и не сидеть на джуне вечно. ▫️Архитектуры и шаблоны проектирования — учат думать как senior, а не просто писать код. ▫️ Python, математика для DS, основы IT и другие темы — можно стартовать с нуля или усилить то, что уже знаешь. 👉 Влетай, не думай!

❓ Накидайте плюсиков лучшему контенту недели
Anonymous voting

📰 Дайджест недели Вспоминаем что произошло за последние три рабочих дня и четыре выходных — Релиз SQLite 3.51.0 В новой верс
📰 Дайджест недели Вспоминаем что произошло за последние три рабочих дня и четыре выходных — Релиз SQLite 3.51.0 В новой версии SQLite оптимизирована работа с запросами, расширена поддержка SQL и исправлены критичные ошибки. — Управление доступом в .NETDemystifierДорожная карта Visual StudioСкоро .NET Conf 2025 🐸Библиотека шарписта #async_news

👨‍💻 IOptions vs IOptionsSnapshot vs IOptionsMonitor В .NET существует несколько интерфейсов для работы с настройками: IOptions, IOptionsSnapshot и IOptionsMonitor. Помогаем разобраться, какой из них когда нужен. IOptions — загружает конфигурацию однажды при запуске и всегда возвращает одно и то же значение:
public class MyService
{
    private readonly MySettings _settings;

    public MyService(IOptions<MySettings> options)
    {
        _settings = options.Value;
    }

    public void PrintSettings()
    {
        Console.WriteLine($"API Key: {_settings.ApiKey}");
    }
}
Это подходит для статичных настроек, которые не меняются во время работы приложения. IOptionsSnapshot — создаётся на каждый запрос или скоуп и предоставляет новые значения при каждом новом запросе:
public class MyScopedService
{
    private readonly MySettings _settings;

    public MyScopedService(IOptionsSnapshot<MySettings> options)
    {
        _settings = options.Value;
    }

    public void PrintSettings()
    {
        Console.WriteLine($"Timeout: {_settings.Timeout}");
    }
}
Подходит для веб-приложений, где конфигурация может меняться между запросами. IOptionsMonitor — позволяет подписаться на изменения и получать обновления конфигурации в реальном времени:
public class MyMonitorService
{
    private MySettings _settings;

    public MyMonitorService(IOptionsMonitor<MySettings> monitor)
    {
        _settings = monitor.CurrentValue;
        monitor.OnChange(updatedSettings =>
        {
            _settings = updatedSettings;
            Console.WriteLine("Settings updated!");
        });
    }

    public void PrintSettings()
    {
        Console.WriteLine($"LogLevel: {_settings.LogLevel}");
    }
}
Подходит для длительно работающих приложений, которые должны реагировать на изменения конфигурации без перезапуска. 🐸Библиотека шарписта #sharp_view

Что-то неладное.. 🐸Библиотека шарписта #garbage_collector
Что-то неладное.. 🐸Библиотека шарписта #garbage_collector