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

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

@csharpproglib

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

22 086 подписчиков
ЕжедневноКачество: 90%🇷🇺 RUПоследний пост: 12.03.2026
Открыть в TelegramПоделиться в TG

Последние посты

Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

⭐️ F#: упрощённые иерархии интерфейсов с DIM Раньше при работе с C#-интерфейсами, где базовый слот закрыт через дефолтную реализацию интерфейсов, F# всё равно требовал явно реализовать оба интерфейса. Теперь достаточно реализовать только производный интерфейс. Допустим, есть такие C#-интерфейсы:public interface IA { int M(); }public interface IB : IA { new int M(); int IA.M() => this.M() + 100; // DIM покрывает слот IA.M} Раньше F# требовал реализовать и IA, и IB. Теперь достаточно IB:type C() = interface IB with member _.M() = 42 (C() :> IB).M() // 42(C() :> IA).M() // 142 — DIM перенаправляет: this.M() + 100 Улучшение работает не только для простых случаев. Поддерживается ромбовидное наследование, дженерик-интерфейсы, свойства, события, структуры и объектные выражения. Для включения нужен флаг --langversion:preview.📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#sharp_view

16 мар. 2026 г.2 440В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

👀 Дайджест неделиЧуток материалов помимо второго превью .NET— .NET 11 Preview 2— Реферальный рекрутинг в IT— Протокол против AI слопа в вебе— MCP C# SDK v1.0📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#async_news

15 мар. 2026 г.2 500В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

🤩 JIT-оптимизации в новом .NET Preview: что улучшилосьНесколько тихих, но полезных улучшений в JIT-компиляторе, которые влияют на производительность без изменений в коде.Устранение проверок границ для паттерна i + cns < lenJIT теперь убирает лишние bounds check в типичном сценарии, когда индекс плюс константа сравниваются с длиной массива. Такой паттерн встречается в парсерах, обработке буферов, посимвольном разборе строк. Раньше каждая такая проверка генерировала лишние инструкции в рантайме.Удаление избыточных checked-контекстовЕсли JIT может доказать, что значение уже находится в допустимом диапазоне, он теперь выбрасывает проверку переполнения как ненужную. Это касается арифметики в checked-блоках, где компилятор раньше перестраховывался даже там, где переполнение было физически невозможно.Девиртуализация generic-виртуальных методов в R2RReadyToRun-образы теперь умеют девиртуализировать несовместно используемые generic virtual method calls. Это означает, что AOT-скомпилированный код получает те же оптимизации прямых вызовов, которые раньше были доступны только в JIT-режиме.SVE2-интринсики для ARMДобавлены новые интринсики ShiftRightLogicalNarrowingSaturate(Even|Odd) для архитектур с поддержкой SVE2. Требуют и поддержки в JIT, и соответствующего API. Полезно для векторных вычислений на серверном ARM-железе вроде Graviton или Neoverse.Все четыре изменения работают автоматически при обновлении рантайма. Ничего менять в коде не нужно.📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#sharp_view

14 мар. 2026 г.2 920В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

🔄 Microsoft выпустила внеплановый патч .NET 10.0.5.В .NET 10.0.4 сломался отладчик на macOS — при попытке дебажить любое .NET-приложение через VS Code он падал. Кому стоит обновится: macOS + VS Code + .NET SDK 10.0.104 или 10.0.200 или рантайм 10.0.4.Windows и Linux не затронуты.➡️ Блог разработчиков📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#async_news

14 мар. 2026 г.3 030В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

👨‍💻 TarFile.CreateFromDirectory теперь поддерживает выбор формата архиваПродолжаем копаться в превью .NET 11.До этого TarFile.CreateFromDirectory всегда создавал архивы в формате Pax. Без вариантов. Если нужен был GNU или Ustar — приходилось обходными путями.Теперь у метода появятся новые перегрузки с параметром TarEntryFormat. Поддерживаются все четыре формата: Pax, Ustar, GNU и V7.// GNU — для совместимости с Linux-окружениямиTarFile.CreateFromDirectory("/source/dir", "/dest/archive.tar", includeBaseDirectory: true, TarEntryFormat.Gnu);// Ustar — широкая совместимость с разными инструментамиTarFile.CreateFromDirectory("/source/dir", outputStream, includeBaseDirectory: false, TarEntryFormat.Ustar);// Асинхронный вариант тоже естьawait TarFile.CreateFromDirectoryAsync("/source/dir", "/dest/archive.tar", includeBaseDirectory: true, TarEntryFormat.Pax, cancellationToken);Формат имеет значение, когда архив передаётся в конкретный инструмент или среду со своими ожиданиями. GNU лучше воспринимается стандартным tar в Linux. Ustar даёт максимальную совместимость там, где важна переносимость. V7 нужен в совсем редких легаси-сценариях.Раньше под такие случаи приходилось либо писать обёртки вручную, либо тянуть сторонние библиотеки. Теперь это часть стандартного API.📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#sharp_view

13 мар. 2026 г.3 120В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

✏️ using — синтаксический сахарПредлагаем ответить на вопрос с собеседования:Что делает оператор using в C#Почти каждый C#-разработчик писал такой код сотни раз:using (var connection = new SqlConnection(connectionString)){ // работаем с ресурсом}На первый взгляд — просто синтаксический сахар.Подсказка: попробуйте мысленно развернуть этот блок в эквивалентный try/finally.➡️ Проверить себя📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#dotnet_challenge

13 мар. 2026 г.3 110В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

Самый востребованный навык в ИТ в 2026-м — навык создания ИИ-агентовМы полностью переработали курс «Разработка AI-агентов» под реалии 2026 года. Никакой долгой теории — с самого начала пишем код. Обучать и делиться набитыми шишками будут эксперты-практики из Газпромбанка, Альфа-Банка и других бигтехов.В программе:— архитектура автономных систем с тестированием, ReAct-циклами и контролем токенов;— практическая работа с актуальными фреймворками LangGraph, AutoGen, MCP и CrewAI;— настройка продвинутого RAG для парсинга документов и точного поиска;— внедрение решений с учётом действующего законодательства (152-ФЗ);— дипломная работа, за основу которой можно взять свой рабочий проект или задачу, которую предложим мы.Эксперты поделятся инсайтами из реального продакшна — тем, о чём вам никогда не расскажет ни одна нейросеть.Запись первого открытого вебинара, на котором мы вместе с руководителем AI-направления в Альфа-Банке Полиной Полуниной пилили агента в прямом эфире.Ах да, чуть не забыли! Дарим промокод AGENTSWEB на скидку 10 000 рублей и два курса сверху при покупке до 15 марта 🎁→ Освоить разработку AI-агентов

13 мар. 2026 г.3 170В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

💡 Healthy ≠ Готов к работеБольшинство health check'ов проверяют три вещи: - Запущен ли процесс?- Есть ли коннект к базе данных?- Доступен ли Redis? Это полезно. Но этого недостаточно для больших продуктивных систем.Приложение может быть технически живым и при этом функционально сломанным. Процесс работает, эндпоинт возвращает 200, Kubernetes считает под здоровым, но первый же реальный запрос падает с ошибкой.К примеру, кастомный health check для EF Core миграций:public class DbContextMigrationsHealthCheck(DbContext dbContext) : IHealthCheck{ public async Task<HealthCheckResult> CheckHealthAsync( HealthCheckContext context, CancellationToken cancellationToken = default) { try { var applied = await dbContext.Database .GetAppliedMigrationsAsync(cancellationToken: cancellationToken); var pending = await dbContext.Database .GetPendingMigrationsAsync(cancellationToken); if (pending.Any()) { return HealthCheckResult.Degraded( "Есть неприменённые миграции.", data: new Dictionary<string, object> { { "PendingMigrations", pending }, { "LatestAppliedMigration", applied.LastOrDefault() ?? "" } }); } return HealthCheckResult.Healthy( data: new Dictionary<string, object> { { "LatestAppliedMigration", applied.LastOrDefault() ?? "" } }); } catch (Exception ex) { return new HealthCheckResult(context.Registration.FailureStatus, exception: ex); } }}Идея не ограничивается EF Core. Любая зависимость, которая доступна, но ещё не готова к работе:• CMS — нужно прогреть кэш перед началом работы• Биллинг — зависит от загрузки актуальных правил ценообразования• Search API — ждёт готовности текущей версии индексаСервис здоров н

13 мар. 2026 г.2 830В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

⚙️ System.Text.Json теперь возвращает типизированные метаданные без приведения типовРазбираем превью .NET 11.В .NET появятся два новых метода у JsonSerializerOptions — GetTypeInfo<T>() и TryGetTypeInfo<T>(). Раньше, чтобы получить JsonTypeInfo<T>, приходилось вручную кастовать результат из не-дженерикового GetTypeInfo(Type).// РаньшеJsonTypeInfo<MyType> info = (JsonTypeInfo<MyType>)options.GetTypeInfo(typeof(MyType));// ТеперьJsonTypeInfo<MyType> info = options.GetTypeInfo<MyType>();Если тип может быть не зарегистрирован — есть вариант с TryGetTypeInfo<T>(), который не бросает исключение, а возвращает bool.if (options.TryGetTypeInfo<MyType>(out JsonTypeInfo<MyType>? typeInfo)){ // typeInfo готов к работе}Изменение небольшое, но устраняет одну из тех мелких раздражающих вещей, с которыми сталкиваешься в реальных проектах.📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#sharp_view

12 мар. 2026 г.3 200В Telegram
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET — пост в ТГ канале
Библиотека шарписта | C#, F#, .NET, ASP.NET@csharpproglib

✏️ Hello World с приколомВот код, который видел каждый в первый день знакомства с языком. Только здесь он немного другой:using System;using System.Threading;class Program{ static void Main(string[] args) { Console.CursorVisible = false; print('H', ConsoleColor.Red); print('e', ConsoleColor.Yellow); print('l', ConsoleColor.Magenta); print('l', ConsoleColor.Green); print('o', ConsoleColor.Blue); print(',', ConsoleColor.Red); print(' ', ConsoleColor.Red); print('w', ConsoleColor.Magenta); print('o', ConsoleColor.Cyan); print('r', ConsoleColor.Yellow); print('l', ConsoleColor.Green); print('d', ConsoleColor.Blue); print('!', ConsoleColor.Red); } static void print(char letter, ConsoleColor color) { Console.ForegroundColor = color; Console.Write(letter); }}Возьмите минутку перерыва и запустите.💬 А у вас есть любимый бессмысленный кусок кода➡️ Источник📍 Навигация: Вакансии • Задачи • Собесы🐸 Библиотека шарписта#entry_point

12 мар. 2026 г.3 070В Telegram

Похожие каналы