Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.42K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»

🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/82684bb8

На вводной части вас ждут:

1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов

2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ

3. Практические задания после лекций

4. Ссылки на дополнительные материалы для самостоятельного изучения

⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/82684bb8
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21🤔1
👀 Анонс .NET 9 Preview 1 и видение команды относительно .NET 9 в целом

Главная цель .NET 9 — сделать разработку .NET более продуктивной с помощью Visual Studio, Visual Studio Code с C# Dev Kit и упростить деплой в облаке с помощью сервисов Azure.

📌 Основные тезисы из статьи:

☁️ Платформа для Cloud-Native разработчиков
☁️ Инструменты для Cloud-Native разработчиков
🤖 .NET и ИИ
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4❤‍🔥21🤔1
🤔 Остаться или уйти? Оптимальный срок работы на одном месте

Вы любите свою работу, интересные проекты вам гарантированы, зарплата повышается каждый год. Но вот уже 5 лет вы трудитесь в одной и той же компании. Не пора ли что-то изменить, пока мотивация окончательно не улетучилась?

Многие опытные айтишники сталкиваются с такой дилеммой. С одной стороны, текущее место работы устраивает. С другой — хочется разнообразия, новых задач и знаний.

Должен ли современный IT-специалист менять работу чаще, чем раз в 5 лет? Или лучше наращивать экспертизу в рамках одной компании? А может дело совсем не в сроках, а в качестве задач и развитии карьеры?

👉 Расскажите о своём опыте в нашем новом опросе 👈
😁10🔥4👍2👾1
🆚 Сеньор .NET-разработчик Степан Минин сравнивает Task.WhenAll и Parallel.ForEachAsync с помощью бенчмарков, чтобы выяснить кейсы применения каждого из двух методов.

👉 Читать
👍18🥱4🤔3
📦 Что нового в NuGet 6.9?

NuGet 6.9 включен в VS 2022 и .NET 8.0 из коробки, но вы также можете загрузить его для Windows, macOS и Linux как отдельный исполняемый файл.

Версия 6.9 добавляет поддержку команды dotnet search и дополнительные улучшения в управление пакетами для многоплатформенных проектов в VS. Подробнее читайте в анонсе.
🔥10🥱5👍2
🥶 Исследование замороженных (frozen) сегментов в .NET

🔍 В .NET 8 появилась концепция специальной NonGC кучи, которую игнорирует GC. Она используется для выделения объектов, которые всегда будут живы (например, строковые литералы), что дает возможность JIT-компилятору выполнять определенные оптимизации.

⚒️ .NET-разработчик Kevin Gosse погрузился в эту тему и рассмотрел скрытый и в основном экспериментальный API, который позволяет создавать свои замороженные сегменты и использовать их по своему усмотрению.

🚀 Этот API предоставляется через приватные методы GC._RegisterFrozenSegment и GC._UnregisterFrozenSegment. Kevin показал, как можно использовать замороженные сегменты для хранения управляемых объектов, что может быть полезно для повышения производительности.

👉 Читать
🤔8👍6😁4🎉21
📦 Практическое руководство по модульным монолитам с .NET

🤔 По мнению автора, микросервисная архитектура может привести к ненужной сложности и замедлению разработки, особенно для стартапов и команд, стремящихся к быстрому развитию.

🔥В качестве альтернативы он предлагает концепцию модульного монолита, которая сочетает преимущества монолитной архитектуры с модульностью, позволяя командам быстрее разрабатывать и развертывать приложения. Естественно, с иллюстрациями и понятными примерами на C#/.NET.

👉 Читайте гайд на Medium или в PDF (файл в комментариях)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16🤔4👍1💯1
🗂Паттерн Transactional Outbox в .NET: что это, как работает и как можно использовать библиотеку MassTransit для его реализации

🛟 Паттерн Outbox обеспечивает сохранение сообщений в хранилище данных, прежде чем они будут в конечном итоге переданы в брокер сообщений.

⚒️ Если бизнес-объект и соответствующие сообщения сохраняются в рамках одной транзакции базы данных, это гарантирует, что данные не будут потеряны.

🌐 Ник Чапсас разбирается с паттерном на практике и делится опытом работы с библиотекой MassTransit.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17
🤔 ФП vs. ООП

Дядя Боб считает (перевод), что споры сторонников функционального и объектно-ориентированного подхода не имеют смысла, так как эти парадигмы отлично уживаются вместе.

Более того, система, которая построена на комбинации принципов ООП и ФП максимизирует гибкость, поддерживаемость, тестируемость и простоту. Если убрать одно ради добавления другого, это только ухудшит структуру системы.

💬 А вы что думаете? Похоливарим?

#холивар
👍19❤‍🔥3
👀 Команда Avalonia UI сообщила о выходе из .NET Foundation

Решив, что взаимодействие с Foundation крайне ограничено, и каких-либо существенных преимуществ от участия в проекте Avalonia UI не получил, команда посчитала правильным вернуть его в руки тех, кто искренне увлечен и заинтересован в его будущем.

👉 Подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔27👍132
💡 Все винят LINQ в низкой производительности, но это не всегда так!

Если у вас есть критически важный участок кода, использующий LINQ, рассмотрите возможность добавления специальных перегрузок для улучшения производительности.

Читаемость немного ухудшится, но код все еще будет высокоуровневым.

#dotnet #csharp #benchmarks #tip by Сергей Тепляков
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍6🎉1
⚡️ В Rider завезли поддержку .NET Aspire

.NET Aspire предоставляет набор инструментов и шаблонов для создания распределенных облачных приложений. Простой пример определения веб-приложения, зависящего от инстанса кэша Redis с помощью .NET Aspire:

// Create a distributed application builder given the command line arguments.
var builder = DistributedApplication.CreateBuilder(args);

// Add a Redis server to the application.
var cache = builder.AddRedis("cache");

// Add the frontend project to the application and configure it to use the
// Redis server, defined as a referenced dependency.
builder.AddProject<Projects.MyFrontend>("frontend")
.WithReference(cache);


Плагин Rider для .NET Aspire позволяет использовать функции .NET Aspire непосредственно в IDE. Под катом — внутренние механизмы плагина и детали его взаимодействие с .NET Aspire.

👉 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥236👍21
❤️ Каждый язык программирования обладает своими уникальными особенностями, которые влияют на выбор паттернов проектирования. C# — не исключение.

💬 Расскажите, какой паттерн проектирования вы нашли наиболее полезным в вашем последнем проекте? Почему выбрали именно его? Были ли какие-то специфические проблемы, которые решил этот паттерн?

#интерактив
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁3
🛠 Серия статей о профилировщике .NET под капотом от Datadog

🔸 Первая часть посвящена архитектуре и внедрению профилировщика. Вы узнаете про основные аспекты профилирования, включая CPU, wall time, exceptions, lock contention и allocations.
🔸 Во второй части рассматривается реализация профилирования CPU и wall time. Описывается, как профилировщик мониторит и семплирует потоки приложения, а также подробно объясняется реализация сбора стеков вызовов в Linux и Windows. Статья также включает пример внутреннего использования CPU профилировщика для снижения потребления CPU.
👍7
🤩 С большим опозданием публикуем полную коллекцию докладов с конференции DotNext 2022 Autumn

🌐 Сергей Васильев — Анализ C# кода на Roslyn: от теории к практике
🌐 Денис Цветцих — Rich Model и Anemic Model: враги или друзья
🌐 Проблемы обучения от 0+
🌐 Дмитрий Таболич — Думай как архитектор: майндшифт инженера
🌐 Дмитрий Нестерук — Интересные подходы в реализации паттернов проектирования
🌐 Андрей Парамонов, Антон Оникийчук — MediatR не нужен
🌐 Интервью с Романом Неволиным
🌐 Марк Шевченко — Пишем функционально на C# и F#
🌐 Дмитрий Сошников — Как научить вашего ребенка программировать (и не только)
🌐 Анатолий Жмур — Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою
🌐 Олег Сафонов — Пишем код, когда пишем код: source generator'ы
🌐 Андрей Цветцих — Zero-downtime deployment и базы данных
🌐 Интервью с Вадимом Мартыновым
🌐 Роман Просин — SkillsFlow: разработка системы управления навыками и компетенциями
🌐 Объединяем .NET-разработчиков: как запустить и развить гильдии в компании
🌐 Гурий Самарин — Тестируем код, взаимодействующий с базой данных
🌐 Интервью с Дмитрием Таболичем
🌐 Best practices для разработки Application Layer
🌐 Роман Неволин — Пишем приложения, которые не ломаются в продакшене
🌐 Андрей Акиньшин — Поговорим об описательной статистике перформанс-распределений
🌐 Игорь Лабутин — Что нового в .NET 7 и C# 11
🌐 Евгений Пешков — Алгоритмы троттлинга запросов
🌐 Вадим Мартынов — Как работает конвейер в современных процессорах
🌐 Станислав Сидристый — lock(_sync): иллюзия идеального выбора
🌐 Ольга Щербакова — Open source с точки зрения юриста
🌐 Игорь Шаталкин — Загадочный EF Core, или Как написать свое расширение
🌐 Андрей Ганичев — Архитектурные тесты
🌐 Александр Катин — [Test] + T = ❤️
🌐 Вагиф Абилов — Распределенный трейсинг OpenTelemetry вместо логирования всего подряд
🌐 Александр Кузнецов — Введение в Microsoft SignalR
Please open Telegram to view this post
VIEW IN TELEGRAM
👏227👍7😁4❤‍🔥3