Библиотека шарписта | 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
Паттерн 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
This media is not supported in your browser
VIEW IN TELEGRAM
9 полезных функций Visual Studio, о которых вы, возможно, не знали

1⃣Создайте ссылку на проект с помощью перетаскивания
2⃣GitHub Actions в обозревателе решений
3⃣Профилировщик процессора и памяти
4⃣Копирование кода с правильным отступом
5⃣Поддержка нескольких профилей
6⃣Очистка неиспользуемых Azure Functions Core Tools
7⃣Отображение встроенной диагностики
8⃣IntelliSense для JSON-файлов
9⃣Воспроизведение звуков при интересных событиях

👀 Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
👍161🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
#юмор #maui

При переходе на .NET MAUI ожидайте некоторые трудности
😁47🔥9👍5
#dotnet #csharp #codemaze #матчасть

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

Resolve Dependencies в .NET: обзор различных методов условного разрешения зависимостей в приложениях .NET на практике
Эффективное преобразование строк с помощью строковых литералов UTF-8 в C#: пример использования нового синтаксисе строковых литералов UTF-8 в C# 11 с бенчмарками
Как использовать класс Mutex in C#: от теоретического введения до практического использования
Модификатор readonly в C#: использование модификатора с полями, свойствами, методами, классами и структурами
Деплой приложения ASP.NET Core в Linux с помощью Apache: пошаговый гайд
Как получить массив JSON с помощью IConfiguration в ASP.NET Core: использование методов GetSection() и GetChildren() на практике
Динамическое переключение DbContext во время выполнения с использованием EF Core: почему полезно иметь несколько баз данных в приложении и как можно добиться динамического переключения EF DbContext
Как вернуть HTTP 500 из ASP.NET Core Web API: обзор различных способов возврата кода состояния HTTP 500
Использование Task.CompletedTask, Task.FromResult и Return в асинхронных методах C#: кратко о каждом асинхронном методе
🔥11👍5💯42
Как называется паттерн проектирования или механизм в C#, который позволяет отложить создание объекта до момента первого обращения и обеспечивает потокобезопасность?
Anonymous Quiz
4%
Prototype
6%
Factory Method
79%
Lazy Initialization
5%
Builder
7%
Посмотреть результаты
🥱31👍9🤔2
#новости

Microsoft объявила о планах прекратить выпуск Visual Studio для Mac после полной переработки

Последняя версия этой IDE для Mac будет продолжать поддерживаться Microsoft до августа 2024 года. Главный фокус — оптимизация Visual Studio, доступной через Microsoft Dev Box в любой ОС, и C# Dev Kit для VS Code, который также доступен в любой ОС.

💬Маководы, что выбираем?
🤩 — VS Code
🌚 — Rider
🤔 — никогда не было мака, поэтому продолжу кодить в Visual Studio
🤔172🌚97🤩15👏2😁2
🚀Распространенные ошибки при написании масштабируемых сервисов с использованием ASP.NET Core

Цель репозитория — показать проблемные шаблоны приложений ASP.NET Core и продемонстрировать, как решить эти проблемы. Каждый пример взят из реальной практики, а также на Github и Stack Overflow.

👀 GitHub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍7🤔41