ConfigCat SDK for .NET. ConfigCat is a hosted feature flag service: https://configcat.com. Manage feature toggles across frontend, backend, mobile, desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.
Makes the changes necessary for having a generalized config cache interface and implementation across SDKs.
Breaking changes:
Changes the type of the cached value from ProjectConfig to string in IConfigCatCache.
Changes the type of the NewConfig property from ProjectConfig to IConfig in ConfigChangedEventArgs.
Removes the ProjectConfig class from the public API.
Changes the type of the MatchedEvaluationRule to ITargetingRule and MatchedEvaluationPercentageRule to IPercentageOption in EvaluationDetails.
Removes the RolloutRule and RolloutPercentageItem classes from the public API.
Changes the algorithm used to generate the config cache key and the format of the cache payload.
Also proposes an improvement to HttpConfigFetcher to ensure that only a single HTTP request can be in progress at a time, regardless of the fetch operation being initiated from sync or async code.
Related issues (only if applicable)
Provide links to issues relating to this pull request
Requirement checklist (only if applicable)
[x] I have covered the applied changes with automated tests.
[x] I have executed the full automated test set against my changes.
[x] I have validated my changes against all supported platform versions.
Describe the purpose of your pull request
Makes the changes necessary for having a generalized config cache interface and implementation across SDKs.
Breaking changes:
ProjectConfig
tostring
inIConfigCatCache
.NewConfig
property fromProjectConfig
toIConfig
inConfigChangedEventArgs
.ProjectConfig
class from the public API.MatchedEvaluationRule
toITargetingRule
andMatchedEvaluationPercentageRule
toIPercentageOption
inEvaluationDetails
.RolloutRule
andRolloutPercentageItem
classes from the public API.Also proposes an improvement to
HttpConfigFetcher
to ensure that only a single HTTP request can be in progress at a time, regardless of the fetch operation being initiated from sync or async code.Related issues (only if applicable)
Provide links to issues relating to this pull request
Requirement checklist (only if applicable)