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
OptimizelyUserContext
class is instantiated withCreateUserContext
and 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.
-
datafileAccessToken
supported 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
OptimizelyConfig
instance which includes a datafile revision number, all experiments, and feature flags mapped by their key values. - Added caching for
GetOptimizelyConfig
-OptimizelyConfig
object 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
, andIsFeatureEnabled
will 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
MaxEventBatchSize
andMaxEventFlushInterval
properties in theOptimizelyFactory
usingOptimizelyFactory.SetBatchSize(int batchSize)
andOptimizelyFactory.SetFlushInterval(TimeSpan flushInterval)
and then creating usingOptimizelyFactory.NewDefaultInstance
. - Event batching is enabled by default.
eventBatchSize
defaults to10
.eventFlushInterval
defaults to30000
milliseconds. - Updated the
Dispose
method representing the process of closing the instance. WhenDispose
is 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,
Stop
waits for providedTimeoutInterval
before stoping, so that events get successfully dispatched. OptimizelyFactory
now provides support of setting configuration variables from App.config, User will now be able to provide configuration variables ofHttpConfigManager
andBatchEventProcessor
in App.config. Steps of usage are provided in README.md.
Deprecated
EventBuilder
was deprecated and now we will be usingUserEventFactory
andEventFactory
to create LogEvent Object.- Deprecated
Track
notifications in favor of explicitLogEvent
notification. - New features will no longer be supported on
.net standard 1.6
and.net 3.5