Releases: optimizely/csharp-sdk
Releases · optimizely/csharp-sdk
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
Release 3.2.0
3.2.0
July 22nd, 2019
New Features:
- Added support for automatic datafile management via
HttpProjectConfigManager
for framework 4.0 or above:- The
HttpProjectConfigManager
is an implementation of the abstract
PollingProjectConfigManager
class.- Users must first build the
HttpProjectConfigManager
with an SDK key and then and provide that instance to theOptimizely
instance. - An initial datafile can be provided to the
HttpProjectConfigManager
to bootstrap before making HTTP requests for the hosted datafile. - Requests for the datafile are made in a separate thread and are scheduled with fixed delay.
- Configuration updates can be subscribed to via the NotificationCenter built with the
HttpProjectConfigManager
. Optimizely
instance must be disposed after the use orHttpProjectConfigManager
must be disposed after the use to release resources.
- Users must first build the
- The
- The
OptimizelyFactory
provides basic methods for instantiating the Optimizely SDK with a minimal number of parameters. CheckREADME.md
for more details.