Библиотека шарписта | 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
🤔Бесполезно, но весело: вы можете получить адрес управляемого объекта или создать ссылку, не используя небезопасный код, злоупотребляя дескрипторами 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
#холивар

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

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

💬А вы пишите пет-проекты? Используете для них 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