Библиотека шарписта | 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
#чтопроисходит

📌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
Ищем копирайтера

Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.

Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).

Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.

Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.

👉Присылайте свои резюме: hello@proglib.io
4
🤔Бесполезно, но весело: вы можете получить адрес управляемого объекта или создать ссылку, не используя небезопасный код, злоупотребляя дескрипторами GC.
👍22🤔54🤩4🥱1
Top_10_Performance_Optimization_Tips_for_C#_Developers_by_Alex_Maher.pdf
787.5 KB
🔥10 советов по оптимизации производительности для C#-разработчиков

Приводим их в оригинале, чтобы не упустить мысль автора:

1. Avoid Boxing and Unboxing
2. Use StringBuilder for String Concatenation
3. Leverage C#’s Lazy Initialization
4. Optimize Loops
5. Use Async/Await for I/O Operations
6. Avoid Exceptions in Normal Program Flow
7. Prefer ValueTypes Over ReferenceTypes
8. Cache Results of Expensive Computations
9. Be Mindful of Capturing in Lambdas
10. Use the ‘in’ Keyword for Read-Only Reference Parameters

🔗 Читать (pdf-файл для тех, у кого Medium не открывается)
👍14🤔3🌚1
#холивар

🤔Что самое трудное в работе программиста? Правильно, выдумывать имена для переменных.

💬Как вы считаете, насколько важен хороший нейминг для сущностей (функций/переменных/констант/классов/модулей) в вашем коде? И есть ли у вас или в вашей команде общепринятые правила или лучшие практики, которым вы следуете при нейминге?

Если да, поделитесь опытом👇
👍13😁3👏1
Истории из трудовых будней миграции .NET

Jimmy Bogard (разработчик, архитектор, консультант, автор, блоггер, мейнтейнер open source проектов и просто хороший парень) за последний год участвовал в масштабной модернизации, переходя как с .NET 4.8 на .NET 6, так и с on-premise в Azure.

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

На практике, естественно, возникло множество мелких решений и препятствий. О них и пойдет речь в серии статей. Следите за обновлениями:

🔸Введение
🔸Разбор текущей системы по полкам
👍10🥰1
#dotnet #csharp #codemaze #матчасть

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

🔹Предотвращение SQL-инъекций с помощью EF Core, Dapper и ADO.NET: как защитить ваши приложения.
🔹Использование нескольких фреймворков в проекте .NET: как объединить преимущества нескольких фреймворков.
🔹Как устранить ошибку HTTP 500.31 Failed to Load ASP.NET Core Runtime Error: о причинах проблемы и способах ее устранения.
🔹Как мокать IOptions в ASP.NET Core: простой подход, который сделает ваши тесты подробными и независимыми от реальных конфигураций.
🔹API Key Authentication в ASP.NET Core: имплементации популярного способа защиты эндпоинтов API.
👍111
Апгрейд и миграция с Xamarin.Forms на .NET MAUI: свежее руководство для C#-разработчика

James Montemagno, технический PM для сообщества разработчиков в Microsoft, делится опытом использования встроенного в VS 2022 .NET Upgrade Assistant для миграции проекта на .NET MAUI.

Вас ждет пошаговый разбор всех этапов: кастомные шрифты, NuGet-пакеты, Xamarin.Essentials, Xamarin Community Toolkit, изображения и многое другое.

00:00 - Intro
01:00 - Migration Considerations for Xamarin.Forms
03:00 - App & Code Walkthrough
03:50 - Install & Use .NET Upgrade Assistant
09:15 - Fixing Complication Errors (differences between Xamarin.Forms and .NET MAUI)
12:45 - Merge code into new .NET MAUI Application
19:00 - Fonts, Images, and other Resources
23:30 - Platform Specific Code & Dependency Service/Injection
28:08 - Documentation overview for Migration
29:25 - Wrap-up and final thoughts

📺 Смотреть
👍7🔥2
Паттерн Weak Event в C#

События в C# — это мощный механизм разделения компонентов и реализации модели pub/sub. Но у них есть недостаток: издатель имеет strong ссылку на подписчика, и это может вызвать утечки памяти (например, подписчик забывает отписаться от события). Паттерн Weak Event — один из способов избежать утечек памяти в системах, основанных на событиях. О нем и пойдет речь в статье.

🔗 Читать
👍483🤔2
This media is not supported in your browser
VIEW IN TELEGRAM
🤩Попрощайтесь с головной болью отладки! Когда возникают ошибки и исключения, Copilot идет на помощь.

В марте этого года команда Microsoft анонсировала чат GitHub Copilot для Visual Studio 2022. Благодаря чату Copilot вышел за рамки завершения кода, предлагая углубленный анализ и объяснения того, как работает код.

Теперь разработчики инструмента продвинули глубокую интеграцию с Visual Studio на шаг дальше. С использованием Interactive Code Assistant, вы можете легко совершенствовать свой код с помощью Copilot Chat, даже не выходя из окна редактора.

Начните использовать функцию ask Copilot в любом месте файла кода, где вы хотите работать: задавайте вопросы и просматривайте ответы в коде, к которому они относятся.

🔗 Подробнее
👍15🥱72
Feature Flags в .NET: от простого к сложному

Feature flags — это механизм, который позволяет включать или выключать определенные части функциональности приложения в зависимости от конфигурации или условий выполнения. Наиболее полезные из них уже реализованы — вам просто нужно их подключить, а экосистема .NET только поможет вам в этом. Узнайте, как именно из статьи Microsoft MVP Tim Deschryver.

В следующей статье автор погружается в реализацию фильтра эндпоинтов, который проверяет, включен ли Feature Flag. Благодаря описанному подходу обработчики эндпоинтов Minimal API остаются чистыми и компактными, а логика Feature Flag может использоваться повторно.
👍151
6_ASP_NET_Core_Open_Source_Projects_to_Boost_Your_Practical_Skills.pdf
920.8 KB
6 проектов ASP.NET с открытым исходным кодом для повышения ваших практических навыков:

1⃣ Clean Architecture
2⃣ Equinox Project
3⃣ Architecture
4⃣ .NET Core REST API CQRS
5⃣ Practical ASPNET Core
6⃣ Awesome .NET Core

🔗 Читать (pdf-файл для тех, у кого не открывается Medium)
24👍6
🔄 Правильный рефакторинг в C#: улучшаем читабельность кода с помощью высокой связности

В этой статье мы разберём понятие высокой связности (high cohesion) и пример соответствующего рефакторинга кода.

🔗 Читать статью
🔗 Зеркало
👍61