Паттерн Weak Event в C#
События в C# — это мощный механизм разделения компонентов и реализации модели pub/sub. Но у них есть недостаток: издатель имеет strong ссылку на подписчика, и это может вызвать утечки памяти (например, подписчик забывает отписаться от события). Паттерн Weak Event — один из способов избежать утечек памяти в системах, основанных на событиях. О нем и пойдет речь в статье.
🔗 Читать
События в C# — это мощный механизм разделения компонентов и реализации модели pub/sub. Но у них есть недостаток: издатель имеет strong ссылку на подписчика, и это может вызвать утечки памяти (например, подписчик забывает отписаться от события). Паттерн Weak Event — один из способов избежать утечек памяти в системах, основанных на событиях. О нем и пойдет речь в статье.
🔗 Читать
👍48❤3🤔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 в любом месте файла кода, где вы хотите работать: задавайте вопросы и просматривайте ответы в коде, к которому они относятся.
🔗 Подробнее
В марте этого года команда Microsoft анонсировала чат GitHub Copilot для Visual Studio 2022. Благодаря чату Copilot вышел за рамки завершения кода, предлагая углубленный анализ и объяснения того, как работает код.
Теперь разработчики инструмента продвинули глубокую интеграцию с Visual Studio на шаг дальше. С использованием Interactive Code Assistant, вы можете легко совершенствовать свой код с помощью Copilot Chat, даже не выходя из окна редактора.
Начните использовать функцию ask Copilot в любом месте файла кода, где вы хотите работать: задавайте вопросы и просматривайте ответы в коде, к которому они относятся.
🔗 Подробнее
👍15🥱7❤2
Feature Flags в .NET: от простого к сложному
Feature flags — это механизм, который позволяет включать или выключать определенные части функциональности приложения в зависимости от конфигурации или условий выполнения. Наиболее полезные из них уже реализованы — вам просто нужно их подключить, а экосистема .NET только поможет вам в этом. Узнайте, как именно из статьи Microsoft MVP Tim Deschryver.
В следующей статье автор погружается в реализацию фильтра эндпоинтов, который проверяет, включен ли Feature Flag. Благодаря описанному подходу обработчики эндпоинтов Minimal API остаются чистыми и компактными, а логика Feature Flag может использоваться повторно.
Feature flags — это механизм, который позволяет включать или выключать определенные части функциональности приложения в зависимости от конфигурации или условий выполнения. Наиболее полезные из них уже реализованы — вам просто нужно их подключить, а экосистема .NET только поможет вам в этом. Узнайте, как именно из статьи Microsoft MVP Tim Deschryver.
В следующей статье автор погружается в реализацию фильтра эндпоинтов, который проверяет, включен ли Feature Flag. Благодаря описанному подходу обработчики эндпоинтов Minimal API остаются чистыми и компактными, а логика Feature Flag может использоваться повторно.
timdeschryver.dev
Feature Flags in .NET, from simple to more advanced
Let's implement a naive feature flag, refactor the code with the .NET Feature Management API, and to top things off, the Azure Feature Management Feature is thrown into the mix to tweak the feature flags dynamically without having an impact on the users.
👍15❤1
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)
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
Ник Чапсас делится опытом использования одной из самых недооцененных функций HttpClient в .NET, называемую DelegatingHandler.
📺Смотреть
📺Смотреть
YouTube
The Secret HttpClient Feature You Need To Use in .NET
Use code DDD20 and get 20% off the brand new Domain-Driven Design course on Dometrain: https://dometrain.com/course/getting-started-domain-driven-design-ddd
Become a Patreon and get source code access: https://www.patreon.com/nickchapsas
Hello, everybody…
Become a Patreon and get source code access: https://www.patreon.com/nickchapsas
Hello, everybody…
👍10🥱4❤1
🔄 Правильный рефакторинг в C#: улучшаем читабельность кода с помощью высокой связности
В этой статье мы разберём понятие высокой связности (high cohesion) и пример соответствующего рефакторинга кода.
🔗 Читать статью
🔗 Зеркало
В этой статье мы разберём понятие высокой связности (high cohesion) и пример соответствующего рефакторинга кода.
🔗 Читать статью
🔗 Зеркало
👍6❤1
#холивар
Каждый разработчик пишет или планирует писать пет-проект, ведь в нем можно реализовать все свои задумки.
В пет-проекте нет дедлайнов, продактов, тимлидов. Одним словом, рай для разработчика.
💬А вы пишите пет-проекты? Используете для них C#/.NET или другой стек?
❓И главный вопрос: «Возможно ли завершить такой проект? Если да, то как вы это сделали?».
🤔Ведь постоянно (особенно перед сном) приходят мысли что-то доработать, добавить новый функционал.
Каждый разработчик пишет или планирует писать пет-проект, ведь в нем можно реализовать все свои задумки.
В пет-проекте нет дедлайнов, продактов, тимлидов. Одним словом, рай для разработчика.
💬А вы пишите пет-проекты? Используете для них C#/.NET или другой стек?
❓И главный вопрос: «Возможно ли завершить такой проект? Если да, то как вы это сделали?».
🤔Ведь постоянно (особенно перед сном) приходят мысли что-то доработать, добавить новый функционал.
👍6❤3
⚡️Команда Microsoft представила новую базовую сертификацию по C# в сотрудничестве с freeCodeCamp
Сертификация Foundational C# бесплатна, доступна по всему миру и включает в себя полный 35-часовой курс обучения C#, размещенный на Microsoft Learn.
🔗Подробнее
Сертификация Foundational C# бесплатна, доступна по всему миру и включает в себя полный 35-часовой курс обучения C#, размещенный на Microsoft Learn.
🔗Подробнее
👍72❤13🥰5🥱5
#tip #dotnet #csharp
Бенчмарки производительности коллекций FrozenDictionary and FrozenSet пространства имен System.Collections.Frozen, представленных в в .NET 8 Preview 1
📌Цель новых коллекций — повышение производительности для сценариев чтения.
🔸Новые типы являются неизменяемыми, то есть после их создания изменение ключей или значений не допускаются.
🔸Это, в свою очередь, позволяет коллекциям лучше оптимизировать последующие операции чтения (например, TryGetValue).
🔸Это особенно полезно для коллекций, заполненных при первом использовании и затем сохраненных на протяжении длительного срока.
👉Подробнее в комментарии Stephen Toub
Бенчмарки производительности коллекций FrozenDictionary and FrozenSet пространства имен System.Collections.Frozen, представленных в в .NET 8 Preview 1
📌Цель новых коллекций — повышение производительности для сценариев чтения.
🔸Новые типы являются неизменяемыми, то есть после их создания изменение ключей или значений не допускаются.
🔸Это, в свою очередь, позволяет коллекциям лучше оптимизировать последующие операции чтения (например, TryGetValue).
🔸Это особенно полезно для коллекций, заполненных при первом использовании и затем сохраненных на протяжении длительного срока.
👉Подробнее в комментарии Stephen Toub
👍23❤4
🔍🤖 40 сервисов на базе AI, которые помогут найти работу в 2023 году
Как составить резюме, оптимизировать сопроводительное письмо и найти вакансию в 2023 году? Использовать сервисы на основе искусственного интеллекта. Какие именно — рассказываем в этой статье.
🔗 Читать статью
🔗 Зеркало
Как составить резюме, оптимизировать сопроводительное письмо и найти вакансию в 2023 году? Использовать сервисы на основе искусственного интеллекта. Какие именно — рассказываем в этой статье.
🔗 Читать статью
🔗 Зеркало
❤3👍1
Специальный (ad-hoc) полиморфизм в C#: какие проблемы решает и как реализовать с использованием паттерна type class.
🔗Читать
🔗Читать
Хабр
Ad-hoc-полиморфизм и паттерн type class в C#
Эта статья объясняет, что такое ad-hoc-полиморфизм, какие проблемы он решает и как вообще его реализовать, используя паттерн type class на языке программирования C#. ▍ Виды полиморфизмов Оказывается,...
❤5👍1
#холивар
😎Первый проект в карьере разработчика — самый волнительный и запоминающийся.
💬А вы помните свои впечатления от первого проекта и стек, на котором он был написан? Как бы вы подошли к своему первому проекту с нынешним опытом?
😎Первый проект в карьере разработчика — самый волнительный и запоминающийся.
💬А вы помните свои впечатления от первого проекта и стек, на котором он был написан? Как бы вы подошли к своему первому проекту с нынешним опытом?
❤4👍3
Как приручить автотестового монстра, или Dependency Injection в автотестах
Вы пишете автотесты? Ваш проект с автотестами огромен и монструозен, и добавление каждого нового сервиса в него приносит нестерпимое желание все удалить и написать заново? У вас есть базовый класс на 3000+ строк с методами на все случаи жизни? Или, возможно, вам приходилось исправлять множество тестов, чтобы добавить одну и ту же строчку в каждом из них?
Если хотя бы на часть вопросов вы ответили положительно, если в целом они знакомы вам не понаслышке или же вы просто давно хотите оптимизировать свой тестовый проект, но не знаете, с чего начать — эта статья от Артема Сидорука из «Лаборатории Касперского» для вас.
🔗Читать
Вы пишете автотесты? Ваш проект с автотестами огромен и монструозен, и добавление каждого нового сервиса в него приносит нестерпимое желание все удалить и написать заново? У вас есть базовый класс на 3000+ строк с методами на все случаи жизни? Или, возможно, вам приходилось исправлять множество тестов, чтобы добавить одну и ту же строчку в каждом из них?
Если хотя бы на часть вопросов вы ответили положительно, если в целом они знакомы вам не понаслышке или же вы просто давно хотите оптимизировать свой тестовый проект, но не знаете, с чего начать — эта статья от Артема Сидорука из «Лаборатории Касперского» для вас.
🔗Читать
👍10❤5
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⃣Воспроизведение звуков при интересных событиях
👀 Читать
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
👍16❤1🔥1
#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#: кратко о каждом асинхронном методе
📌 Подборка за неделю на 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💯4⚡2
Как называется паттерн проектирования или механизм в 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
Microsoft объявила о планах прекратить выпуск Visual Studio для Mac после полной переработки
Последняя версия этой IDE для Mac будет продолжать поддерживаться Microsoft до августа 2024 года. Главный фокус — оптимизация Visual Studio, доступной через Microsoft Dev Box в любой ОС, и C# Dev Kit для VS Code, который также доступен в любой ОС.
💬Маководы, что выбираем?
🤩 — VS Code
🌚 — Rider
🤔 — никогда не было мака, поэтому продолжу кодить в Visual Studio
Microsoft News
Visual Studio for Mac Retirement Announcement
Today we are announcing the retirement of the Visual Studio for Mac IDE. Visual Studio for Mac 17.6 will continue to be supported for another 12 months, until August 31st, 2024, with servicing updates for security issues and updated platforms from Apple.
🤔172🌚97🤩15👏2😁2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍7🤔4❤1