Releases: optimizely/csharp-sdk
Releases · optimizely/csharp-sdk
Release 3.9.1
Bug Fixes:
- Duplicate experiment key issue with multiple feature flags. While trying to get variation from the variationKeyMap, it was unable to find because the latest experimentKey was overriding the previous one. #267
3.9.0
3.8.0
-
Introducing a new primary interface for retrieving feature flag status, configuration and associated experiment decisions for users (#248, #250, #251, #253, #254, #255, #256, #257, #258). The new
OptimizelyUserContextclass is instantiated withCreateUserContextand exposes the following APIs to getOptimizelyDecision:- SetAttribute
- GetAttributes
- Decide
- DecideAll
- DecideForKeys
- TrackEvent
-
For details, refer to our documentation page: https://docs.developers.optimizely.com/full-stack/v4.0/docs/csharp-sdk.
Release 3.7.1
Release 3.7.0
3.7.0
November 3rd, 2020
New Features
- Add support for sending flag decisions along with decision metadata. (#244)
Release 3.6.0
3.6.0
October 1st, 2020
New Features
-
Add support for version audience condition which follows the semantic version (http://semver.org) (#236, #242)
-
Add support for datafile accessor #240.
-
datafileAccessTokensupported fromApp.config(#237)
Bug Fixes:
Release 3.5.0
Release 3.4.1
Release 3.4.0
3.4.0
January 23rd, 2020
New Features
- Added a new API to get project configuration static data.
- Call
GetOptimizelyConfig()to get a snapshot of project configuration static data. - It returns an
OptimizelyConfiginstance which includes a datafile revision number, all experiments, and feature flags mapped by their key values. - Added caching for
GetOptimizelyConfig-OptimizelyConfigobject will be cached and reused for the lifetime of the datafile - For details, refer to our documentation page: https://docs.developers.optimizely.com/full-stack/docs/optimizelyconfig-csharp.
- Call
Bug Fixes:
- Blocking timeout was not being assigned. When not providing any value, it was just logging not setting up periodinterval and blocking timeout value. #202
Release 3.3.0
3.3.0
September 26th, 2019
New Features:
- Configuration manager is set to PollingProjectConfigManager and for datafile will be started by default. Requests to download and update datafile are made in a separate thread and are scheduled with fixed delay.
- Added support for event batching via the event processor.
- Events generated by methods like
Activate,Track, andIsFeatureEnabledwill be held in a queue until the configured batch size is reached, or the configured flush interval has elapsed. Then, they will be combined into a request and sent to the event dispatcher. - To configure event batching, set the
MaxEventBatchSizeandMaxEventFlushIntervalproperties in theOptimizelyFactoryusingOptimizelyFactory.SetBatchSize(int batchSize)andOptimizelyFactory.SetFlushInterval(TimeSpan flushInterval)and then creating usingOptimizelyFactory.NewDefaultInstance. - Event batching is enabled by default.
eventBatchSizedefaults to10.eventFlushIntervaldefaults to30000milliseconds. - Updated the
Disposemethod representing the process of closing the instance. WhenDisposeis called, any events waiting to be sent as part of a batched event request will be immediately batched and sent to the event dispatcher. - If any such requests were sent to the event dispatcher,
Stopwaits for providedTimeoutIntervalbefore stoping, so that events get successfully dispatched. OptimizelyFactorynow provides support of setting configuration variables from App.config, User will now be able to provide configuration variables ofHttpConfigManagerandBatchEventProcessorin App.config. Steps of usage are provided in README.md.
Deprecated
EventBuilderwas deprecated and now we will be usingUserEventFactoryandEventFactoryto create LogEvent Object.- Deprecated
Tracknotifications in favor of explicitLogEventnotification. - New features will no longer be supported on
.net standard 1.6and.net 3.5