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
2025 year in numberssnowflakes fon
card fon
22 346
Subscribers
-624 hours
-377 days
-14330 days
Posts Archive
Photo unavailableShow in Telegram
📰 Недельная подборка Прошла неделя и мы снова собрали для вас материалы для прочтения на досуге. — Cake.Sdk теперь умеет dotnet publish Вышла бета Cake.Sdk 5.0.25257.82, и главная новость — поддержка dotnet publish. Теперь можно собирать self-contained бинарники и даже контейнеры прямо из Cake-скриптов, без необходимости ставить .NET Runtime на целевой машине. — Цена пропущенного ? в C# На примере open source-проекта Stability Matrix автор показывает ошибки в конструкторах и инициализации, где невинный ? или проверка на null могли бы предотвратить баги и NaN в расчётах. — Кто такие Unit-лид и Technical OwnerMicrosoft увеличивает срок поддержки релизовWolverine 5.0 🐸Библиотека шарписта #async_news
Show all...
2
Photo unavailableShow in Telegram
⚙️ Разбор .NET rc1 Недавно мы делились новостью о выходе .NET 10 RC1. Теперь пришло время посмотреть глубже: что именно изменилось, какие улучшения можно опробовать уже сейчас. Повышение производительности без усилий • Улучшения в рантайме и JIT-компиляторе, благодаря которым уже существующий код работает быстрее при перекомпиляции, без изменения кода. • «Deabstraction»: устранение накладных расходов за счёт оптимизации интерфейсов, лямбд, async, итераторов и др. • Расширенный «escape analysis», позволяющее небольшие объекты размещать в стеке, а не на куче, что уменьшает нагрузку на garbage collector. Улучшения рантайма и GC • Поддержка AVX 10.2 инструкций — подготавливает платформу к современному железу. • Оптимизация фонового GC и улучшение сжатия памяти и управления фрагментацией. Безопасность и квантовая устойчивость • Внедрение апи для пост-квантовой криптографии. • Новый алгоритм цифровой подписи ML-DSA (основанный на решёточных структурах), стандартизированный NIST. Новые возможности для разработчиков и приложенийASP.NET Core: более детальная телеметрия/метрики по Identity (аутентификация, токены, двухфакторка), что облегчает выявление атак типа «credential stuffing», брут форс и др. • EF Core: врезка поддержки vector search (по смыслу/векторы) и нативного JSON-типа в SQL Server — полезно для AI и полуструктурированных данных. • .NET MAUI: метрики на уровне UI-layout операций (Measure, Arrange) — помогает обнаружить бутылочные горлышки интерфейса. C# 14 — язык становится дружелюбнее и эффективнее • Возможность использовать params не только с массивами, но и со Span для уменьшения аллокаций. • Новый field-контекст в свойствах упрощает код, убирает явное объявление «backing field» — меньше шаблонов, меньше шума. Язык и среда .NET движутся в сторону объединения удобства и производительности: абстракции остаются, но их накладные расходы всё больше уходят. 🐸Библиотека шарписта #il_люминатор
Show all...
👍 24 7 3🥰 1
Photo unavailableShow in Telegram
🦸 Wolverine 5.0: релиз 1 октября В новой версии будет реализована поддержка Redis как транспортного механизма для сообщений, улучшена совместимость с различными хранилищами сообщений и проведена работа над Dead Letter Queue в рамках проекта CritterWatch. После релиза Wolverine 5.0 проект CritterWatch станет основным техническим фокусом Джереми Миллера и JasperFx на оставшуюся часть года. ➡️ Блог разработчика 🐸Библиотека шарписта #async_news
Show all...
4🔥 3🥰 1
😊 Как сделать GitHub Copilot умнее GitHub Copilot теперь можно настроить с помощью Instruction Files и Prompt Files, чтобы AI генерировал код в соответствии с вашими стандартами и требованиями проекта. Файлы с инструкциями задают общие правила для репозитория: стиль кода, соглашения по именам, обязательные тесты, ограничения на изменения и инструкции по CI/CD. Их удобно использовать для командной работы и open-source-проектов, чтобы все предложения Copilot соответствовали принятым стандартам. ➡️ Раскочегарить Copilot 🐸Библиотека шарписта #sharp_view
Show all...
1
⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI 24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале. Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского. Подробности рассказываем в гс выше — включай, чтобы не пропустить.
Show all...
1.22 MB
Photo unavailableShow in Telegram
🔄 Поддержка релизов .NET STS теперь 24 месяца Microsoft увеличивает срок поддержки релизов .NET с типом Short Term Support с 18 до 24 месяцев. Это означает, что .NET 9, выпущенный 12 ноября 2024 года, будет поддерживаться до 10 ноября 2026 года — на 6 месяцев дольше, чем планировалось ранее. LTS-релизы сохраняют прежнюю политику: поддержка в течение 36 месяцев или 12 месяцев после выпуска следующего релиза. ➡️ Блог разработчиков 🐸Библиотека шарписта #async_news
Show all...
👍 11 3🔥 1
Photo unavailableShow in Telegram
Show all...
👏 38 8💯 8🥱 3🔥 1
Photo unavailableShow in Telegram
📊 Почему сайты тормозят: фронтенд ли Сегодня большинство сайтов загружаются 3–5 секунд. Для пользователя это уже привычно, но для бизнеса — потерянные клиенты и деньги. И дело не только во фронтенде: корень проблемы иногда глубже — в бэкенде. Что влияет на скорость ответа: • неоптимизированные запросы к базе • тяжёлые API-эндпоинты • отсутствие кэша или его неправильная реализация • перегрузка серверов и медленные очереди Фронтенд может ужать картинки и ускорить отрисовку, но если бэкенд думает по 2 секунды на запрос — сайт всё равно будет тормозить. 💬 Как вы относитесь к этой проблеме и что делаете в своих проектах, чтобы бэкенд не становился узким местом? 🐸Библиотека шарписта #entry_point
Show all...
7
00:08
Video unavailableShow in Telegram
📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным. Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта». 🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций. 🔹 Чем они отличаются от ChatGPT и обычных ботов. 🔹 Как работает цикл агента: восприятие → планирование → действие → обучение. 🔹 Живое демо простого агента. 🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%. Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏 👉 Регистрируйтесь через форму на лендинге
Show all...
Шаблоны_для_рилсов_и_stories_1080_x_1920_пикс_17.mp42.75 MB
😢 2
👨‍💻 Ленивая генерация DTO Часто не хочется писать шаблонный код и будто для этого и были придуманы нейросети. Сегодня делимся с вами промптом для разбавления рутины. Промпт для генерации DTO:
Сгенерируй DTO класс на C# с публичными свойствами для объекта, содержащего следующие поля: {подставить полный список свойств}. Класс должен иметь комментарии для каждого свойства, описывающие его назначение. Используй стандартные соглашения оформления C# для именования классов и свойств.
🐸Библиотека шарписта #буст
Show all...
🌚 10😁 7🥱 3🙏 2
Photo unavailableShow in Telegram
🐸Библиотека шарписта #развлекалово
Show all...
😁 28❤‍🔥 13💯 11👾 1
👨‍💻 Как ускорить запуск .NET приложения 1️⃣ Сначала измерьте Включите EventPipe/PerfView/dotnet-trace для старта: какие сборки грузятся, на что тратится время. Снимите таймлайны: «вход в Main → готовность endpoint'ов / UI». Измеряйте Release-сборку, без отладчиков и без «горячих» кэшей. 2️⃣ Оптимизации сборки • ReadyToRun (R2R) Компилирует IL в машинный код при публикации:
<!-- Directory.Build.props или csproj -->
<PropertyGroup>
  <PublishReadyToRun>true</PublishReadyToRun>
  <PublishTrimmed>true</PublishTrimmed> 
  <TrimMode>partial</TrimMode>                    <!-- для библиотек и DI -->
</PropertyGroup>
• PGO (Profile-Guided Optimization) + R2R Соберите профиль и примените при crossgen2 (даёт лучший порядок/инлайнинг для «горячего» пути старта). • NativeAOT Полностью нативный бинарь, почти мгновенный старт. Подходит для CLI/служб с ограниченным набором фич и для «узких» сервисов или edge-эндпоинтов в вебе. 3️⃣ Минимизация загрузки и работы на старте Уберите всё, что не нужно при старте: тяжёлые клиенты (БД, кеши, внешние SDK) создавайте лениво, после поднятия хостинга. Прогружайте конфигурацию минимально: уберите лишние провайдеры, большие JSON-файлы, многократные AddJsonFile. Логи на старте — только консоль/минимальный уровень, позже можно расширить. Уберите неиспользуемые пакеты, объедините внутренние пакеты, избегайте древовидных зависимостей ради одной функции. Встроенный контейнер быстрый, но следите за графом: • Регайте Singleton/Scoped только когда нужно. • Избегайте «сервисов-глобов» с большим конструктором на десятки зависимостей. • Используйте фабрики/Lazy для тяжёлых зависимостей. 4️⃣ ASP.NET Core: быстрый подъём хоста Минимальный хостинг и только нужные middleware:
var builder = WebApplication.CreateBuilder(args);
// Оставьте только то, что нужно для старта
builder.Services.AddRouting();
var app = builder.Build();
// Критичный middleware – ближе к началу конвейера
app.MapGet("/healthz", () => "OK");
app.Run();
Отключите всё, что делает работу на старте: избыточная авто-дискавери Swagger, отражение в валидации, сканирование сборок. 5️⃣ Инициализация после старта Разнесите готовность принимать трафик и полную готовность всех подсистем: • Быстрый /healthz сразу. • Прогрев кэшей/метаданных — в фоне IHostedService с низким приоритетом. • В оркестраторе задайте readinessProbe после минимального старта, а «тяжёлый прогрев» делайте уже на фоне. 6️⃣ Тримминг: аккуратно, но даёт эффект PublishTrimmed=true + TrimMode=partial часто снижает размер и ускоряет загрузку. Обязательно добавляйте DynamicDependency/UnconditionalSuppressMessage/RD.XML для сохранения типов, которые нужны через рефлексию (DI/JSON/ORM). 💬 А у вас сколько секунд уходит на холодный старт .NET сервиса? 🐸Библиотека шарписта #буст
Show all...
👍 14 2🔥 2❤‍🔥 1
Photo unavailableShow in Telegram
🧗 Кто такие Unit-лид и Technical Owner Классическая связка «тимлид + продакт-менеджер» не справляется с ростом команд до 50-100+ человек и усложнением продуктов. На смену приходят роли, ориентированные на продуктовое мышление вместо простого исполнения задач. Unit-лид функционирует как мини-CEO продуктового направления: управляет стратегией, а technical owner служит мостом между бизнесом и техникой. Главное отличие от прошлого: специалисты не просто выполняют поставленные задачи, а понимают продукт целиком. ➡️ Подробнее про обе роли 🐸Библиотека шарписта
Show all...
1
Photo unavailableShow in Telegram
🧩 Оптимизация кода с помощью Application Insights В .NET теперь проще выявлять узкие места и оптимизировать производительность приложений благодаря обновлениям в Application Insights. Инструмент собирает данные о работе кода в реальном времени, помогает находить медленные участки, лишние аллокации и повторяющиеся операции. ➡️ Блог разработчиков 🐸Библиотека шарписта
Show all...
👍 3
Photo unavailableShow in Telegram
💎 Вспоминаем SOLID SOLID — это 5 принципов объектно-ориентированного проектирования. Давайте повторим эту базу. — Single Responsibility Principle (Принцип единственной ответственности) Каждый класс должен иметь только одну причину для изменения. Плохо: класс UserManager и сохраняет пользователя в БД, и отправляет email. Хорошо: UserRepository хранит, EmailService отправляет письма. — Open/Closed Principle (Принцип открытости/закрытости) Классы должны быть открыты для расширения, но закрыты для изменения. Новый функционал добавляем через расширение, а не переписывание старого кода. Пример: вместо переписывания метода — создаём новый подкласс или внедряем стратегию. — Liskov Substitution Principle (Принцип подстановки Барбары Лисков) Объекты подклассов должны работать так же, как объекты родителя. Если Square наследуется от Rectangle, он должен вести себя как прямоугольник, а не ломать ожидания. Суть: наследование не должно рушить логику программы. — Interface Segregation Principle (Принцип разделения интерфейсов) Лучше много маленьких интерфейсов, чем один огромный. Плохо: интерфейс IMachine с методами print(), scan(), fax(). Хорошо: IPrinter, IScanner, IFax. Каждый класс реализует только нужное. — Dependency Inversion Principle (Принцип инверсии зависимостей) Зависимости должны быть от абстракций, а не от конкретных классов. Плохо: класс ReportGenerator напрямую вызывает MySQLDatabase. Хорошо: ReportGenerator работает с интерфейсом Database, а уже конкретная БД подставляется снаружи. Без SOLID код быстро превращается в спагетти, где одно изменение ломает всё. 💬 Пишите в комменты как вы объясняете, что такое SOLID 🐸Библиотека шарписта #буст
Show all...
👍 23🔥 4🥱 3 1😁 1
Repost from TgId: 2055368043
Библиотечный метод возвращает ValueTask<T> (часто завершается синхронно). В вызывающем коде результат нужно ждать несколько раз и/или комбинировать с другими задачами через Task.WhenAll. Что делать правильно? 👾 — ValueTask<T> можно await-ить сколько угодно раз — как Task<T> 👍 — Сконвертировать в Task<T> через .AsTask() и уже его ждать/комбинировать 🥰 — Обернуть в Task.Run(...), чтобы получить полноценную Task ⚡️ — Никогда не возвращать ValueTask<T> из публичных API — всегда только Task<T> Библиотека задач по C#
Show all...
👍 56 5
Photo unavailableShow in Telegram
📰 Недельный дайджест Собрали для вас материалы второй недели осени. — Сентябрьские обновления .NET Microsoft выпустили обновления для .NET 8.0 и .NET 9.0. Эти обновления содержат исправления, не связанные с безопасностью, и направлены на улучшение стабильности и качества платформы. — Улучшения производительности в .NET 10 В .NET 10 значительные улучшения производительности были достигнуты благодаря оптимизациям в Just-In-Time (JIT) компиляторе. Также улучшена деабстракция, позволяющая интерфейсам и делегатам работать быстрее, а виртуальные вызовы — эффективно инлайнироваться. — 5 трендов IT-найма 2025Первый кандидат к релизу .NET 10Visual Studio 2026 Insiders уже доступна 🐸Библиотека шарписта
Show all...
3
Photo unavailableShow in Telegram
💬 Full-Stack или глубокая специализация Разработчики всегда стояли на перепутье: либо углубляться в одну область, становясь мастерами в ней, либо учить всё и сразу, чтобы быть востребованными на рынке. Сейчас не редкость, что на рынок труда выходят кандидаты, которые могут работать с абсолютно всем — от фронтенда до бэкенда, от баз данных до DevOps. В некоторых случаях это выглядит как «швейцарские ножи», которые знают всё, но ни в чём не являются экспертами. Появление инструментов, таких как фреймворки и библиотеки, изменяет саму парадигму разработки. Сегодня мы можем использовать множество технологий, не будучи экспертами в каждой из них. Это позволяет нам быстро создавать сложные системы без необходимости углубляться в каждую деталь. 💬 Как думаете вы? Лучше углубиться в одну область или быть «швейцарским ножом»? 🐸Библиотека шарписта #междусобойчик
Show all...
👍 1
Photo unavailableShow in Telegram
🐸Библиотека шарписта #развлекалово
Show all...
😁 31🥱 2