TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.76K subscribers
Post #2003 1.57K
День 1651. #ЗаметкиНаПолях
Флаги функций в
ASP.NET Core. Начало
Возможность включать или отключать функции в приложениях без повторного развёртывания кода — мощный инструмент, который можно использовать для быстрой итерации новых функций.

Флаги функций — это метод разработки ПО, который позволяет заключать функции приложения в условный блок, предоставляя переключатель для включения или отключения функции. Главное – возможность переключать функции во время выполнения, т.е. не нужно повторно развёртывать приложение.

Преимущества
1. Возможность развёртывать новые функции в производственных средах в отключённом состоянии. Так мы можем гарантировать, что наша новая функция не повлияет на остальную часть приложения, прежде чем мы включим её для всех пользователей.
2. Канареечное развёртывание — возможность постепенно увеличивать использование новой функции, чтобы гарантировать отсутствие последствий для производительности или каких-либо других ошибок в коде.
3. A/B-тестирование — определение реакции пользователей на новую функцию. Например, новый UI предоставляется только определённой группе пользователей, чтобы увидеть, предпочтут ли они его старому UI.

Виды
1. Логический фильтр – функция включена/выключена.
2. Фильтр по времени - функция активна только между заданным временем начала и окончания.
3. Процентный фильтр - процент определяет вероятность того, что функция включена.
4. Фильтр таргетинга - определяет правила включения функций на основе целевой аудитории.
5. Собственные настраиваемые фильтры.

Использование флагов функций в ASP.NET Core
Для начала добавим пакет Microsoft.FeatureManagement.AspNetCore. Он под капотом управляет жизненным циклом флагов функций. Это даёт нам возможность изменять флаги функций во время выполнения без необходимости перезапуска приложения.

1. Логический фильтр
Добавим фильтр функций в appsettings.json:
{
"FeatureManagement": {
"BoolFeature": true
}
}
NuGet пакет будет по умолчанию искать секцию FeatureManagement. Мы добавили фильтр функции BoolFeature и задали ему значение «включено».

Добавим FeatureManagment в классе Program:
builder.Services.AddFeatureManagement();

Проверим, как это работает:
public class FeatureController : ControllerBase
{
private IFeatureManager featureMgr;
public FeatureController(IFeatureManager fm)
{
featureMgr = fm;
}

public async Task<IActionResult> BoolFeature()
{
if (await featureMgr.IsEnabledAsync("BoolFeature"))
return Ok("Enabled");
else
return BadRequest("Disabled");
}
}

Если перейти на /Feature/BoolFeature, мы увидим результат Ok. Теперь, пока приложение работает, изменим значение BoolFeature на false и повторим запрос. На этот раз мы получим 400 BadRequest.

Продолжение следует…

Источник:
https://code-maze.com/aspnetcore-feature-flags/
  • 👍 25
  • 👎 1
More from @netdeveloperdiary
  1. Oct 8, 2026День 2808. #Карьера 5 Навыков, Которые Помогут Быстрее Стать Сеньором. Начало В ИТ есть се…
  2. Oct 7, 2026День 2807. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Окончание Нач…
  3. Oct 6, 2026🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собес…
  4. Oct 6, 2026День 2806. #ЗаметкиНаПолях Типы Коллекций в .NET, Которые Стоит Попробовать. Начало Больши…
  5. Oct 5, 2026День 2805. #ЧтоНовенького #NET11 Аргументы в Выражениях Коллекций в C#15 В C#15 реализован…
  6. Oct 4, 2026День 2804. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →