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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях

Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.

Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.

Ссылка тут.
👍5🌚2
Как отлаживать проекты Docker и Docker Compose с помощью Rider

В последней версии Rider появилась возможность запуска Docker в так называемом быстром режиме. В продолжение этой темы команда JetBrains обновила пошаговое руководство по отладке как автономных контейнерных приложений, так и решений docker-compose.
🔥8👍2
🎙️ Подкаст RadioDotNet: сеньорное наименование, Slim построитель, ненужные иерархии

📌 Темы:
▫️.NET 8 Preview 6
▫️Comparing new CreateSlimBuilder
▫️C# 12 Preview features
▫️Делай нейминг как сеньор
▫️dotTrace comes to BenchmarkDotNet
▫️Folders versus namespaces
▫️Кратко о разном

⏯️ YouTube | Apple Подкасты | Google Подкасты | Яндекс Музыка
👍6
aspnet-core.pdf
142.1 KB
#холивар

Вы посоветовали бы данную дорожную карту для начинающих разработчиков .NET, которые осваивают ASP.NET Core? Или для тех, кто переходит с другого стека на .NET/ASP.NET Core? Если да, есть ли какие-то аспекты, которые можно убрать/добавить?
👍14
Весь август бесплатный IT-интенсив: алгоритмы и структуры данных

😱Мы пригласили несколько крупных разработчиков из Yandex, Sharechat и даже Meta*.

👉 Регистрируйтесь – https://proglib.io/w/62ce6c0e

Программа вебинаров на август:

🗓 уже прошел, отправим вам запись «NP-трудные задачи: почему их плохо решают».
🎙Спикер: Дмитрий Коротенко, ML specialist at Yandex.

🗓 22 августа, «Графы: алгоритмы и структуры данных на Python».
🎙Спикер: Иван Потапов, Staff machine learning engineer at Sharechat.

🗓 29 августа, «Собеседование на разработчика: разбор задач и ошибок».
🎙Спикер: Алексей Бочкарев, Engineering Manager at Meta*

👉Узнать подробнее и зарегистрироваться можно по ссылке: https://proglib.io/w/62ce6c0e

*Компания Meta признана в РФ экстремистской и запрещена
👍1
Трюки с производительностью от Daniel Marbach, которые он узнал в ходе участия в опенсорсных проектах .NET

Если вы хотите узнать, как оптимизировать свой код с точки зрения производительности, Daniel Marbach на NDC Oslo 2023 представляет полный набор кейсов, которые можно применить к вашему проекту. Все пруфы ищите в репозитории.

📺 Смотреть
👍6
#dotnet #csharp #codemaze #матчасть

📌 Подборка за две недели на Code Maze:

🔸Генераторы исходного кода в C#: основы и способы использования этой мощной функции для обеспечения динамической генерации кода во время компиляции, автоматизации повторяющихся задач и повышения производительности разработки.
🔸Value и Reference типы в C# — подробное руководство: кратко о сути и том, как ведет себя каждый тип при создании экземпляра, сравнении или присваивании.
🔸Методы сортировки List в C#: обзор различных методов сортировки на простых примерах.
🔸Расширение IdentityUser с помощью кастомных свойств в ASP.NET: простой способ расширить или полностью изменить классы, используемые Identity.
🔸Атрибут ModuleInitializer в C#: освежить в памяти, если пропустили одну из фич C# 9.
🔸Как настроить логирование файлов с помощью Serilog: как использовать Serilog, если вы хотите ограничивать размер и другие параметры файлов логов.
🔸Рефакторинг связанности кода в C#: как ее найти и исправить.
🔸Primary конструкторы для классов и структур: обзор новой фичи C# 12 и .NET 8, которая на текущий момент находится в стадии предварительной версии.
🔸Различия между оператором равенства (==) и методом Equals в C#: быстрый обзор на различных сценариях.
🔸Как программно определить версию .NET: может пригодиться для ведения журнала, отладки и других целей.
🔸Различия между Const и Readonly в C#: освежаем в памяти, если забыли.
👍12🔥51
Описание работы с несколькими репозиториями в рамках одного решения .NET

В статье описаны кейс из реальной практики: необходимо разработать сервис, состоящий из фронтенд/бэкенд приложений и NuGet-пакета для размещения общего кода. Каждый компонент .NET нужно было создать, протестировать и развернуть с помощью независимых пайплайнов CI/CD.

Оценив плюсы и минусы такого подхода в сравнении с конкретными требованиями проекта, команда остановилась на использовании нескольких репозиториев; каждый со своим собственным решением .NET и пайплайном деплоя. Один из репозиториев содержал общие модели данных и функциональные возможности в виде NuGet-пакета, на который можно ссылаться в других репозиториях.

Читайте подробнее, если хотите узнать достоинства/недостатки полученного решения и технические детали.
👍54
Наблюдения и размышления при написании юнит‑тестов с помощью ChatGPT: как использовать ChatGPT для генерации тестовых сценариев, формулировки вопросов о правильности кода и создания заглушек.

Читать
👍4
Взгляд на Sisk, альтернативный HTTP-сервер .NET

Sisk — легковесный C# веб-фреймворк с отрытым исходным кодом для быстрой и надежной разработки, который позволяет вам полностью контролировать то, что вы хотите делать.

Основное отличие от ASP.NET Core заключается в том, что Sisk можно настроить и запустить, написав всего несколько строк кода, избегая ненужных конфигураций и требуя минимальной настройки для работы вашего сервера.

Кроме того, для разработки не требуются дополнительные пакеты .NET SDK, ведь базового пакета .NET 6 достаточно, чтобы начать разработку с помощью Sisk. Вот небольшой обзор от Khalid Abuhakmeh с примерами👇

🔗 Читать
🥱6👍5
#dotnet #csharp #tip by Milan Jovanović

Switch expressions в действии: на заметку C#-разработчику.
👍39🥱27
Мок-библиотеки, такие как Moq, NSubstitute — популярный выбор, когда дело доходит до модульного тестирования. Они позволяют создавать поддельные объекты, которые можно использовать для замены зависимостей тестируемого класса.

Но в свете последних новостей вокруг Moq, неплохо было бы разобраться с созданием собственных поддельных объектов без использования сторонних библиотек. У Steven Giesel есть примеры и трезвый взгляд на достоинства/недостатки такого подхода👇

🔗 Читать
👍62
This media is not supported in your browser
VIEW IN TELEGRAM
🔊Демонстрационный аудиоплеер, под капотом у которого реализация Blazor wrapper для Web Audio API

Web Audio API стандартизирует методы обработки и синтеза аудио в веб-приложениях. Основной парадигмой является audio routing graph, где несколько объектов AudioNode соединены вместе, чтобы определить общий рендеринг аудио.

🔗 GitHub
👍183
🔍Насколько легко «войти в айти»?

IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.

👉Пройдите наш 10-минутный опрос по ссылке.
3👍1
Базовая реализация работы с MassTransit: опыт команды Bimeister

MassTransit — open source фреймворк для .NET, который упрощает создание приложений и сервисов, использующих слабосвязанную асинхронную связь на основе сообщений для повышения доступности, надежности и масштабируемости.

Инструмент представляет собой шину сообщений, которая является абстракцией над большинством популярных брокеров сообщений (Azure Service Bus, RabbitMQ, Kafka), что позволяет разработчикам не тратить много времени на конкретную реализацию, а сосредоточиться на задачах функциональности.

🔗 Читать
👍84🔥2
#чтопроисходит

📌SpbDotNet #90

🌐 Михаил Руковишников | Фича-флаги. Практический пример реализации
🌐 Николай Пьяников | Pure.DI

📌DotNext 2022 Autumn: Architecture

🌐 Денис Цветцих | Rich Model и Anemic Model: враги или друзья
🌐 Андрей Парамонов, Антон Оникийчук | MediatR не нужен
🌐 Дмитрий Нестерук | Интересные подходы в реализации паттернов проектирования
🌐 Дмитрий Таболич | Думай как архитектор: майндшифт инженера
🌐 Андрей Цветцих | Zero-downtime deployment и базы данных

📌DotNext 2022 Autumn: Best practices

🌐 Александр Кузнецов | Введение в Microsoft SignalR
🌐 Игорь Шаталкин | Загадочный EF Core, или Как написать свое расширение
🌐 Алексей Авдеев (PVS-Studio) | Уязвимость регулярных выражений: теория и практика ReDoS-атак
🌐 Евгений Пешков | Алгоритмы троттлинга запросов
🌐 Игорь Лабутин | Что нового в .NET 7 и C# 11
🌐 Роман Неволин | Пишем приложения, которые не ломаются в продакшене
🌐 Гурий Самарин | Тестируем код, взаимодействующий с базой данных
🌐 Олег Сафонов | Пишем код, когда пишем код: source generator'ы
🌐 Анатолий Жмур | Пиши, как тиктокер, а не как дед. Новые конструкции языка C# в бою
🌐 Вагиф Абилов | Распределенный трейсинг OpenTelemetry вместо логирования всего подряд
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134🤩3
☝️📺 Какой сетап у вас дома/на работе (можно выбрать два варианта)?
Anonymous Poll
36%
1
13%
2
50%
3
6%
4
8%
5
2%
6
3%
Другой (напишу в комментарии)
5👍3
Начать работу с подходом Entity Framework Database First с помощью CLI достаточно просто, но еще проще использовать расширение Visual Studio EF Core Power Tools.

1️⃣ Создаем простую БД
2️⃣ Используем модуль Reverse engineer в EF Core Power Tools
3️⃣ Включаем ведение логов в окне Debug
4️⃣ Выполняем простой запрос
9👍1