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

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

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

Если да, поделитесь опытом👇
👍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
#холивар

Каждый разработчик пишет или планирует писать пет-проект, ведь в нем можно реализовать все свои задумки.

В пет-проекте нет дедлайнов, продактов, тимлидов. Одним словом, рай для разработчика.

💬А вы пишите пет-проекты? Используете для них C#/.NET или другой стек?

И главный вопрос: «Возможно ли завершить такой проект? Если да, то как вы это сделали?».

🤔Ведь постоянно (особенно перед сном) приходят мысли что-то доработать, добавить новый функционал.
👍63
⚡️Команда Microsoft представила новую базовую сертификацию по C# в сотрудничестве с freeCodeCamp

Сертификация Foundational C# бесплатна, доступна по всему миру и включает в себя полный 35-часовой курс обучения C#, размещенный на Microsoft Learn.

🔗Подробнее
👍7213🥰5🥱5
#tip #dotnet #csharp

Бенчмарки производительности коллекций FrozenDictionary and FrozenSet пространства имен System.Collections.Frozen, представленных в в .NET 8 Preview 1

📌Цель новых коллекций — повышение производительности для сценариев чтения.

🔸Новые типы являются неизменяемыми, то есть после их создания изменение ключей или значений не допускаются.

🔸Это, в свою очередь, позволяет коллекциям лучше оптимизировать последующие операции чтения (например, TryGetValue).

🔸Это особенно полезно для коллекций, заполненных при первом использовании и затем сохраненных на протяжении длительного срока.

👉Подробнее в комментарии Stephen Toub
👍234
🔍🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году

Как составить резюме, оптимизировать сопроводительное письмо и найти вакансию в 2023 году? Использовать сервисы на основе искусственного интеллекта. Какие именно — рассказываем в этой статье.

🔗 Читать статью
🔗 Зеркало
3👍1
#холивар

😎Первый проект в карьере разработчика — самый волнительный и запоминающийся.

💬А вы помните свои впечатления от первого проекта и стек, на котором он был написан? Как бы вы подошли к своему первому проекту с нынешним опытом?
4👍3
Как приручить автотестового монстра, или Dependency Injection в автотестах

Вы пишете автотесты? Ваш проект с автотестами огромен и монструозен, и добавление каждого нового сервиса в него приносит нестерпимое желание все удалить и написать заново? У вас есть базовый класс на 3000+ строк с методами на все случаи жизни? Или, возможно, вам приходилось исправлять множество тестов, чтобы добавить одну и ту же строчку в каждом из них?

Если хотя бы на часть вопросов вы ответили положительно, если в целом они знакомы вам не понаслышке или же вы просто давно хотите оптимизировать свой тестовый проект, но не знаете, с чего начать — эта статья от Артема Сидорука из «Лаборатории Касперского» для вас.

🔗Читать
👍105