Giter Club home page Giter Club logo

Comments (8)

zhenlan avatar zhenlan commented on June 9, 2024 1

Should we add built-in filters automatically?

For DI usage, built-in filters have already been added automatically. Did you mean we should add them automatically when feature manager is constructed?

Right, for non-DI usage.

It will be nice to have featureManager.FeatureFilters.Add(IFeatureFilter).

Do you mean that it would be better to have the usage look like:

var timeWindowFilter = new TimeWindowFilter();

var featureManager = new FeatureManager(featureDefintionProvider);

featureManager.FeatureFilters.Add(timeWindowFilter);

I wish people couldn't set featureManager.FeatureFilters but add items.

from featuremanagement-dotnet.

zhiyuanliang-ms avatar zhiyuanliang-ms commented on June 9, 2024

@jimmyca15 @rossgrambo @zhenlan What do you think?

from featuremanagement-dotnet.

zhenlan avatar zhenlan commented on June 9, 2024
  • It's reasonable for the logger parameter to be optional.
  • Should we add built-in filters automatically?
  • It will be nice to have featureManager.FeatureFilters.Add(IFeatureFilter).

from featuremanagement-dotnet.

zhiyuanliang-ms avatar zhiyuanliang-ms commented on June 9, 2024

@zhenlan

It's reasonable for the logger parameter to be optional.

Agree.

Should we add built-in filters automatically?

For DI usage, built-in filters have already been added automatically. Did you mean we should add them automatically when feature manager is constructed?

It will be nice to have featureManager.FeatureFilters.Add(IFeatureFilter).

Do you mean that it would be better to have the usage look like:

var timeWindowFilter = new TimeWindowFilter();

var featureManager = new FeatureManager(featureDefintionProvider);

featureManager.FeatureFilters.Add(timeWindowFilter);

from featuremanagement-dotnet.

zhiyuanliang-ms avatar zhiyuanliang-ms commented on June 9, 2024

After discussed with Jimmy, we thought we should keep the current usage:

var featureManager = new FeatureManager(featureDefintionProvider)
{
    FeatureFilters = new List<IFeatureFilterMetadata>() { targetingFilter, timeWindowFilter }
};

Currently, FeatureFilters is a public property with the init accessor. The reason of this design is the idea that we want feature filters to be static after FeatureManager is constructed.

var featureManager = new FeatureManager(featureDefintionProvider);

featureManager.FeatureFilters.Add(timeWindowFilter);

This usage will break this idea.

@jimmyca15 @zhenlan

from featuremanagement-dotnet.

zhenlan avatar zhenlan commented on June 9, 2024

I understand featureManager.FeatureFilters cannot be set to another List object once it's initialized, but can't people call Add on the existing list object anyway?

from featuremanagement-dotnet.

jimmyca15 avatar jimmyca15 commented on June 9, 2024

@zhenlan

but can't people call Add on the existing list object anyway

FeatureManager.FeatureFilters is an IEnumerable, no filters can be added. By design so that the feature manager is constructed as intended from the onset.

from featuremanagement-dotnet.

zhenlan avatar zhenlan commented on June 9, 2024

I see. Thanks. I don't have any better ideas, but kind of a bummer users have to know IFeatureFilterMetadata even just to use built-in filters.

from featuremanagement-dotnet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.