From 9e7a23b9a9da7121de20a0b59664cdc9a0db3154 Mon Sep 17 00:00:00 2001 From: adams85 <31276480+adams85@users.noreply.github.com> Date: Thu, 10 Nov 2022 15:11:09 +0100 Subject: [PATCH] Prepares v7.0.0 release (#52) * Updates CHANGELOG.md and README.md * Updates version in appveyor.yml --- CHANGELOG.md | 21 ++++++++++++++++++++- README.md | 16 +++++++++------- appveyor.yml | 2 +- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0ee5888d..cdc96218 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +### 7.0.0 +- Deprecate `ConfigCatClient` constructors in favor of the new static factory method `Get`, + which provides single client instances per SDK key. +- Add convenience method `DisposeAll` for disposing all open clients at once. +- Implement default user feature. +- Implement offline mode feature. +- Improve LazyLoad and AutoPoll refresh logic by taking the cache timestamp into account + to fetch the config only if cached config is unavailable or stale. +- Add new evaluation methods `GetValueDetail`/`GetValueDetails`, + which provide more detailed information about the evaluation result. +- Add hooks (events), which provide notifications of the client's actions. +- Additional minor code quality and performance improvements. +- Update samples to .NET 6. + ### 6.5.3 - Use logger wrapper everywhere internally. #39 - Improved evaluation logging. #38 @@ -116,7 +130,12 @@ - Addressing global data handling and processing trends via Data Governance feature. Customers can control the geographic location where their config JSONs get published to. [See the docs](https://configcat.com/docs/advanced/data-governance/). We are introducing a new DataGovernance initialization parameter. Set this parameter to be in sync with the Data Governance preference on the [Dashboard](https://app.configcat.com/organization/data-governance). -#### Breaking change: +#### Breaking changes: +### 7.0.0 +- [API] Add new methods to the `IConfigCatClient` interface. +- [API] Change `ProjectConfig` to reference type with value equality (record). +- [Behavior] Slightly changes the behavior of ProjectConfig.TimeStamp (only updated when communication with the CDN servers succeeds, regardless of the returned status code.) +### 6.0.0 - Custom cache implementations should implement the new cache interface using key parameter in the get/set methods. ### 5.3.0 - VariationID, bugfix ([#11](https://github.com/configcat/.net-sdk/issues/11)) diff --git a/README.md b/README.md index 5806d47b..7ce85b4f 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,9 @@ # ConfigCat SDK for .NET -### Supported frameworks: -- .NET Core -- .NET Framework -- Xamarin -- .NET Standard +### Supported runtimes: +- .NET 5+ +- .NET Framework 4.5+ +- Other runtimes which implement .NET Standard 2.0+ like .NET Core 2.0+, Xamarin.Android 8.0+, Xamarin.iOS 10.14+, etc. (For more details, please refer to [this table](https://learn.microsoft.com/en-us/dotnet/standard/net-standard?tabs=net-standard-2-0).) https://configcat.com @@ -41,10 +40,12 @@ using ConfigCat.Client; ### 4. Create a **ConfigCat** client instance: ```c# -var client = new ConfigCatClient("#YOUR-SDK-KEY#"); +var client = ConfigCatClient.Get("#YOUR-SDK-KEY#"); ``` > We strongly recommend using the *ConfigCat Client* as a Singleton object in your application. +> You can acquire singleton client instances for your SDK keys using the `ConfigCatClient.Get(sdkKey: )` static factory method. +(However, please keep in mind that subsequent calls to `ConfigCatClient.Get()` with the *same SDK Key* return a *shared* client instance, which was set up by the first call.) ### 5. Get your setting value: ```c# @@ -64,7 +65,8 @@ else ``` c# client.Dispose(); ``` -> To ensure graceful shutdown of the client you should invoke ```.Dispose()``` method. (Client implements [IDisposable](https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx) interface) +> To ensure graceful shutdown of the client you should invoke ```.Dispose()``` method. (Client implements [IDisposable](https://msdn.microsoft.com/en-us/library/system.idisposable(v=vs.110).aspx) interface.) +> Alternatively, you can also close all open clients at once using the `ConfigCatClient.DisposeAll()` method. ## Getting user specific setting values with Targeting Using this feature, you will be able to get different setting values for different users in your application by passing a `User Object` to the `GetValue()` function. diff --git a/appveyor.yml b/appveyor.yml index a410e7c7..d0d8d68e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ environment: - build_version: 6.5.3 + build_version: 7.0.0 version: $(build_version)-{build} image: Visual Studio 2022 configuration: Release