# Qlik Sense .NET SDK Release Notes

## v16.11.0

* **SCHEMA:** API endpoints generated based on engine version 12.2561.0 (Qlik Sense November 2025)
* **BUGFIX:** Previously the result of `GetQixObject` calls that fail would get cached which could make calls to for instance `GetGenericObject` erroneously return `null`.

## v16.10.0

* **SCHEMA:** API endpoints generated based on engine version 12.2386.4 (Qlik Sense May 2025)
* **BUGFIX:** Fixed issue with property `Location.SessionCookie` not being set when defining virtual proxy through property `Location.VirtualProxyPath`.
* **NEW FEATURE:** Implemented support for code blocks in engine comments.
* **DEPRECATED:** Deprecated property `Location.VirtualProxyPath`. Define virtual proxy path as part of location URL instead.

## v16.9.0

* **SCHEMA:** API endpoints generated based on engine version 12.2219.2 (Qlik Sense November 2024)
* **NEW FEAUTRE:** Added new configuration endpoint `IGenericLocation.AsManualConfiguration`.
* **NEW FEATURE:** Custom location settings are now exposed also for `QcsLocation` instances.
* **NEW FEATURE:** Introduced new property `ILocation.CertifcateValidation`.
* **DEPRECATED:** Deprecated extension class `Qlik.Sense.Client.SheetExtensions`. Use `GenericObject.Properties` to modify sheet definitionx.

## v16.8.0

* **SCHEMA:** API endpoints generated based on engine version 12.2056.2 (Qlik Sense May 2024)
* **NEW FEAUTRE:** Added support for csrf token flow during websocket connection.
* **NEW FEATURE:** Added method `AbstractStructure.Delete(string propertyName)`.
* **NEW FEAUTRE:** Implemented support for specifying session TTL (time-to-live).
* **BUGFIX:** Custom websocket arguments are now correctly applied when opening a connection.

## v16.7.0

* **SCHEMA:** API endpoints generated based on engine version 12.1958.1 (Qlik Sense Ferbruary 2024)

## v16.6.1

* **SCHEMA:** API endpoints generated based on engine version 12.1872.0 (Qlik Sense November 2023)
* **NEW FEATURE:** Added property `IRpcConnection.ConnectionStatus` that indicates if an engine session was created or attached to.

## v16.5.0

* **SCHEMA:** API endpoints generated based on engine version 12.1745.4 (Qlik Sense Aug 2023)
* **NEW FEATURE:** Added overload `QcsLocation.AsExistingSession(JObject sessionInfo)`.
* **BUGFIX:** Fixed issue with ticket retrieval flow that prevented NTLM authentication in .NET 7.0.

## v16.4.0

* **SCHEMA:** API endpoints generated based on engine version 12.1678.0 (Qlik Sense May 2023)
* **NEW FEATURE:** Added property `AppField.DimensionInfo`.
* **BUGFIX:** Fixed bug that made it impossible to reestablish change notification event triggers for qix objects that had been previously disposed.

## v16.3.0

* **SCHEMA:** API endpoints generated based on engine version 12.1581.1 (Qlik Sense February 2023)
* **NEW FEATURE:** Added setting `RpcConnection.MaxJsonDepth` that controls allowed max nest depth for JSON structures. Default is 128.

## v16.2.0

* **SCHEMA:** API endpoints generated based on engine version 12.1501.1 (Qlik Sense November 2022)
* **NEW FEATURE:** The class `Qlik.Engine.Blob` now provides an interfaces for accessing Base64 encoded engine data.
* **NEW FEATURE:** Added property `GenericLocation.CustomUserAgent` to configure an HTTP user-agent header to use for application.
* **BUGFIX:** Fixed deserialization issue with `Qlik.Engine.Blob` structures.
* **DEPRECATED:** Deprecated enum type `DrawText`. Legacy enum type not relevant for Qlik Sense.

## v16.1.0

* **SCHEMA:** API endpoints generated based on engine version 12.1386.1 (Qlik Sense August 2022)
* **NEW FEATURE:** Added `AppAsync` overload version that accepts `AsyncHandle` argument to class `Qlik.Engine.Location` and `Qlik.Engine.QcsLocation`.
* **NEW FEATURE:** Added `AppAsync` overload version that accepts `onConnectionEstablished` argument to class `Qlik.Engine.QcsLocation`.
* **NEW FEATURE:** Added location configuration method `QcsLocation.AsExistingSession`.

## v16.0.2

* **BUGFIX:** Fixed issue with enumeration literals accidentally getting alphabetically sorted resulting in incorrect default values.

## v16.0.1

* **SCHEMA:** API endpoints generated based on engine version 12.1327.1 (Qlik Sense May 2022)
* **NEW FEATURE:** It is now possible to detect session timeouts in QCS by observing the new property `CommunicationErrorEventArgs.QlikWebSocketClosedStatus`.
* **NEW FEATURE:** Added location configuration method `QcsLocation.AsJwt`.
* **IMPROVEMENT:** Events defined for classes `RpcConnection` and `QlikConnection` are now exposed through the corresponding interfaces.
* **BUGFIX:** The method `QixClassBase.RegisterQixTypeInternal<T>` was accidentally marked as protected. It is no longer exposed publicly.
* **BUGFIX:** Exceptions thrown by a websocket during read is now correctly propagated to the event `RpcConnection.CommunicationErrorEvent`.
* **REMOVED:** Removed deprecated asynchronous location configuration methods. Deprecated since v15.4.0.
* **REMOVED:** Removed deprecated client specific accessor extension methods for dimensions, measures, variables and bookmarks. Deprecated since v15.3.0.
* **REMOVED:** Removed deprecated class `Qlik.Sense.Client.GeoField` and associated interface `IGeoField`. Deprecated since v15.3.0.
* **REMOVED:** Removed deprecated `IApp` extension methods for master object management. Deprecated since v15.3.0.
* **REMOVED:** Removed deprecated sheet specific overrides for `DidCreateChild` and `DidDestroyChild`. Deprecated since v15.3.0.
* **REMOVED:** Removed deprecated protected property `RpcConnection.Location`. Deprecated since v15.2.1.
* **REMOVED:** Removed deprecated connection method `AsDirectConnection` with parameter `proxySessionId`. Deprecated since v15.2.1.
* **REMOVED:** Removed deprecated storytelling related functionality. Deprecated since v15.1.1.
* **REMOVED:** Removed deprecated promoted layout properties. Deprecated since v15.0.4.
* **REMOVED:** Removed deprecated client specific child access methods. Deprecated since v13.19.0.
* **REMOVED:** Removed deprecated promoted methods associated with property structure content of engine objects. Deprecated since v13.18.0.
* **REMOVED:** Removed deprecated custom child retrievers for `Filterpane`. Deprecated since v13.18.0.
* **REMOVED:** Removed deprecated enumeration type `SheetCellSplitDirection` used for internal sheet cell split operation. Deprecated since v13.18.0.
* **REMOVED:** Removed deprecated class `StructureExpressionExtensions` and associated sub classes. Deprecated since v13.18.0.
* **REMOVED:** Removed deprecated class `ScriptExtensions`. Deprecated since v13.18.0.
* **REMOVED:** Removed deprecated class `TypeSwitch`. Deprecated since v13.17.0.
* **REMOVED:** Removed deprecated unused class `Qlik.Engine.GenericObjectList`. Deprecated since v13.17.0.
* **REMOVED:** Removed deprecated mechanism for registering custom client object types. Deprecated since v13.17.0.
* **REMOVED:** Removed deprecated class `MethodInvocationErrorEventArgs`. Deprecated since September 2016.
* **DEPRECATED:** Deprecated class`DynamicStructure`. Use `AbstractStructure` instead.
* **ENVIRONMENTAL (.NET Framework only):** .NET Framework 4.5.2 is no longer supported by Microsoft. Mininum supported version is now .NET Framework 4.6.2.
* **ENVIRONMENTAL (.NET Core only):** .NET Core 2.1 is no longer supported by Microsoft. Mininum supported version is now .NET Core 3.1.
* **ENVIRONMENTAL (.NET Core only):** Newtonsoft version 12.0.3 or later is now required. Earlier versions of Newtonsoft contain a bug that prevents serialization of instances of `Enumerable.Empty`.

## v15.7.1

* **BUGFIX:** Fixed issue relating to null pointer exception being thrown during the disposal of session variables in certain cases.
* **BUGFIX:** Fixed a race condition where an exceptions could be thrown when a connection is disposed while a websocket response is being processed.
* **BUGFIX:** The interface `JsonRpc.WebSocket.IConnectionConfiguration` was accidentally marked as public. It is no longer exposed publically.

## v15.7.0

* **SCHEMA:** API endpoints generated based on engine version 12.1219.2 (Qlik Sense February 2022)
* **NEW FEATURE:** It is now possible to configure the proxy to use for websocket connections through the property `IGenericLocation.WebSocketProxy`.
* **NEW FEATURE:** Added parameterless constructor to class `Qlik.Engine.AsyncHandle`.
* **NEW FEATURE:** Added method `IRpcConnection.Log(string,string)` to log messages to the debug console.
* **NEW FEATURE:** Added property `ILocation.EnablePing` to control whether or not to perform a ping during connection setup.
* **NEW FEATURE:** Added event `IRpcConnection.PushMethodReceivedEvent` that fires whenever push methods are received from Qlik Sense.

## v15.6.2

* **BUGFIX:** Fixed issue when calling `AppField.Dispose()` after a session has timed out. Previously this would trigger a null pointer exception.

## v15.6.1

* **BUGFIX:** Fixed deadlock issue that could occur if a user mixes synchronous and asyncronous API calls in the same solution. The fix provided in v15.6.0 only partially fixed the problem.

## v15.6.0

* **SCHEMA:** API endpoints generated based on engine version 12.1140.1 (Qlik Sense November 2021)
* **NEW FEATURE:** Introduced method `ListObjectPager.GetAllCells`.
* **NEW FEATURE:** The `AppExtensions` methods `GetAppField` and `GetAppFieldAsync` now accepts an optional argument for identifying which alternate state to use when retrieving values.
* **NEW FEATURE:** Added method 'IAppField.GetAllFieldValues' to simplify data retrieval from `AppField` instances.
* **NEW FEATURE:** Added type casting overloads for the method `GetPropertiesAsync` and `GetLayoutAsync` for classes that extend the `PropertyContainer` class.
* **NEW FEATURE:** Added class `Qlik.Sense.Client.SelectionObserver` and corresponding interface for conveniently inspecting selected field values.
* **NEW FEATURE:** Added interface `ITransient`. Session objects and session variables are now automatically destroyed during dispose.
* **NEW FEATURE:** Added session app create methods to the `LocationExtensions` class.
* **NEW FEATURE:** Added conveniency method `Qlik.Engine.Location.LocalDesktop` for connecting to Qlik Sense Desktop instances.
* **NEW FEATURE:** Added overload `CertificateManager.LoadCertificateFromDirectory(string path, string certificatePassword)`.
* **NEW FEATURE:** Added location configuration method `Location.AsTicketViaProxy`.
* **IMPROVEMENT:** SDK compatibility with older engine schemas has been improved for the methods `GenericObject.ExportData` and `App.GetTablesAndKeys`.
* **BUGFIX:** The default value of argument `maxNbrCells` for method `GenericObject.GetHyperCubeStackData` is now set to `10000` instead of `0`.
* **BUGFIX:** The default value of argument `exportState` for method `GenericObject.ExportData` is now set to `EXPORT_ALL` instead of `EXPORT_POSSIBLE`.
* **BUGFIX:** Fixed deadlock issue that could occur if a user mixes synchronous and asyncronous API calls in the same solution.
* **BUGFIX:** Fixed error in serialization of arrays containing `AbstractStructure` instances.
* **DEPRECATED:** `RpcConnection.SendAsync<T>(Request)` and `QlikConnection.SendAsync<T>(Request)`. Continuation method must be explicitly specified.

## v15.5.1

* **BUGFIX:** Fixed issue with intellisense documentation not working correctly in Visual Studio.
* **BUGFIX:** Fixed issue with close event handling on objects returned as part of a return value structure such as `CreateGenericObjectResult`.
* **BUGFIX:** Instances of the class `Qlik.Sense.Client.AppPropertiesObject` are now correctly deserialized. Previously such objects were deserialized to instances of `GenericObject`.

## v15.5.0

* **SCHEMA:** API endpoints generated based on engine version 12.1036.3 (Qlik Sense August 2021)

## v15.4.2

* **BUGFIX:** Objects are now correctly removed from memory when a `close` notification is received, thereby eliminating a potential memory leak.
* **BUGFIX:** Improved async behavior of the class `AppField`. High concurrency use of this class could previously sometimes result in deadlocks.

## v15.4.1

* **BUGFIX:** Fixed issue related to websocket URL construction that would make the websocket redirect mechanism fail when connection to QCS.

## v15.4.0

* **SCHEMA:** API endpoints generated based on engine version 12.969.2 (Qlik Sense May 2021)
* **NEW FEATURE:** Introduced constructor `AbstractStructure(JObject)` and method `JObject AbstractStructure.GetJObject()`.
* **NEW FEATURE:** Introduced methods `ILocation.AsDirectConnection` and `ILocation.AsDirectConnectionToPersonal` with engine port as argument.
* **DEPRECATED:** Deprecated extension method used for location configuration. Use non-extension versions instead.
* **DEPRECATED:** Deprecated asynchronous location configuration methods. Methods have no asynchronous components. Use synchronous versions instead.

## v15.3.4

* **IMPROVEMENT:** Improved error message produced when receiving unrecognized push method.
* **IMPROVEMENT:** The JSON property name is now explicitly shown as part of property documentation summary.
* **BUGFIX:** Direct connection now uses same format for user header as proxy, making it possible to attach to an existing proxy session. Note that such attachment still requires the header X-Qlik-Security header to be set correctly.
* **BUGFIX:** Fixed issue when doing non-anonymous authentication against virtual proxy that allow anonymous connections. Previously such authentications would always end up as anonymous.
* **BUGFIX:** Fixed issue with `SystemNetWebSocketSession.Close` that could lead to socket connections leaking.
* **BUGFIX:** Fixed issue that in certain extreme cases could result in loss of a UTF-8 character when reading from websocket.

## v15.3.0

* **SCHEMA:** API endpoints generated based on engine version 12.878.1 (Qlik Sense February 2021)
* **NEW FEATURE:** Introduced overload for LocationExtensions.App taking app ID as argument instead of an AppIdentifier instance.
* **IMPROVEMENT:** Utilize `qGenericType` and `qGenericId` of class `Qlik.Engine.ObjectInterface` when deserializing `QixBaseClass` instances thus eliminating the need for an extra engine call to retrieve this information.
* **BUGFIX:** Eliminated session object leakage from class `Qlik.Sense.Client.AppField`. A call to `Dispose` will now correctly destroy also private session objects of this class.
* **BUGFIX:** Eliminated session object leakage from methods `GetAppFields`, `GetSheets` and their asynchronous equivalents.
* **DEPRECATED:** Deprecated `IApp` extension methods for master object management. Use engine endpoints for these operations.
* **DEPRECATED:** Deprecated class `Qlik.Sense.Client.GeoField` and associated interface `IGeoField`. Use `AppField` and `IAppField` directly for this functionality.
* **DEPRECATED:** Deprecated sheet specific overrides for `DidCreateChild` and `DidDestroyChild`. Engine API must be used to emulate client behavior.
* **DEPRECATED:** Deprecated client specific accessor extension methods for dimensions, measures, variables and bookmarks. Engine API must be used to emulate client behavior.

## v15.2.2

* **BUGFIX:** The introduction of the classes `GenericSessionObject` and `GenericSessionVariable` accidentally broke backward compatibility. The feature has been rolled back and classes removed.

## v15.2.1

* **SCHEMA:** API endpoints generated based on engine version 12.811.3 (Qlik Sense November 2020)
* **NEW FEATURE:** Introduced class `Qlik.Engine.QcsLocation` for configuring connections to Qlik Cloud Services.
* **NEW FEATURE:** AbstractStructure now overrides `ToString`.
* **NEW FEATURE:** Introduced classes `GenericSessionObject` and `GenericSessionVariable`. These classes automatically call the relevant destructor method when disposing. Use-clauses can be leveraged to manage the life span of session objects. (Feature rolled back in v15.2.2)
* **NEW FEATURE:** Implemented method `QlikSession.RetryOnAbort`. The class `PropertyContainer` leverages this when getting layouts and properties.
* **NEW FEATURE:** Virtual proxy path can now be defined directly in the location URI.
* **DEPRECATED:** Deprecated parameter `proxyUsesSsl` in proxy connection configurations. Use property `CustomUserHeaders` to define Origin header.
* **DEPRECATED:** Deprecated parameter `extendedSecurityEnvironment` in direct connection configurations. Argument should be omitted.
* **DEPRECATED:** Deprecated connection method `AsDirectConnection` with parameter `proxySessionId`. Use property `CustomUserHeaders` to define extra headers.
* **DEPRECATED:** Deprecated protected property `RpcConnection.Location`. Location should not be accessed through connection object.

## v15.1.1

* **SCHEMA:** API endpoints generated based on engine version 12.763.0 (Qlik Sense September 2020)
* **BUGFIX:** `Location.SessionCookie` now returns `null` instead of throwing an error when the cookie is not set.
* **BUGFIX:** The websocket session is now correctly terminated when a program exits. Previously a program would not exit unless the `IRpcConnection` instance used was explicitly disposed.
* **BUGFIX (.NET Framework only):** Fixed issue relating to websocket throwing an error during authentication redirect when connecting to localhost.
* **DEPRECATED:** Deprecated storytelling related functionality. Use `GenericObject` and `AbstractStructure` to interact with this client functionality.
* **DEPRECATED:** Deprecated snapshot related functionality. Use `GenericBookmark` and `AbstractStructure` to interact with this client functionality.

## v15.0.6

* **BUG FIX:** The `LocationExtension` methods `Hub`, `App`, `ActiveApp` and corresponding async methods now close the websocket connection if an error occurs. Previously the SDK could leak connections if the websocket was successfully established but an error occurred after that. A typical example would be that a call to `OpenApp` timed out when calling `LocationExtension.App`

## v15.0.5

* **BUG FIX:** Removed fixed 5 second timeout on websocket opening. The `RpcConnection.Timeout` property now affects this operation. This behavior is identical to the timeout behavior used for the .NET Framework version of the SDK for release v14.1.0 and earlier.
* **BUG FIX:** Fixed issue with websocket connections sometimes being left open when the websocket connection succeeds, but the method called to open the connection times out.

## v15.0.4

* **SCHEMA:** API endpoints generated based on engine version 12.674.1 (Qlik Sense June 2020)
* **NEW FEATURE:** Added support for JWT Authentication. A `Location` instance can be configured to use this type of authentication through the new method `AsJwtViaProxy`.
* **BUG FIX (.NET Core only):** Fixed issue with sending websocket messages containing non-ASCII characters.
* **BUG FIX (.NET Core only):** Fixed issue with session cookie not being correctly set under certain location configurations.
* **BUG FIX (.NET Core only):** Fix potential deadlock issues for certain thread modes (in particular GUI). The infamous `ConfigureAwait`...
* **BUG FIX (.NET Core only):** The property `Session.SessionToken` is now utilized for configuring headers during websocket connection. The property was previously simply ignored preventing the definition of distinct engine sessions.
* **BUG FIX:** Fixed issue with the class `Qlik.Sense.Client.ExtendedCurrentSelection` that could cause the set of fields returned to be out of sync with the current selection.
* **DEPRECATED:** Deprecated promoted layout properties in the Client namespace. Access values through the `Properties` and `Layout` properties instead.
* **REMOVED:** Removed the class `Qlik.Sense.Client.DataContainer` as well as client object specific methods in the `Sheet` class. Deprecated since v13.16.0.
* **REMOVED:** Version check mechanism. Deprecated since v13.14.0.
* **REMOVED:** Schema validation mechanism. Deprecated since v13.14.0.
* **REMOVED:** Methods relating to WinForms binding extension methods. Deprecated since v13.14.0.
* **REMOVED:** Removed the following methods in namespace `Qlik.Sense.JsonRpc`: `ILocation.AsServiceAsync`, `Location.AsServiceAsync`, `RpcConnection.WebSocketFactory`, `WebsocketFactory.GetWebSocketFactory`. Deprecated since v13.12.0.
* **ENVIRONMENTAL:** The .NET Framework version of the SDK no longer has a dependency on the Nuget package Autofac.
* **ENVIRONMENTAL:** The .NET Framework version of the SDK no longer require references to the following dlls: Qlik.Sense.Common.dll, BouncyCastle.CryptoExt.dll
* **ENVIRONMENTAL:** Dll properties including version information is now correctly set also for the dlls used for .NET Core.

## v14.1.0

* **SCHEMA:** API endpoints generated based on engine version 12.602.2 (Qlik Sense April 2020)

## v14.0.0

* **NEW FEATURE:** Added methods for returning selected field value pagers from the `ExtendedCurrentSelection` class.
* **ENVIRONMENTAL:** Moved to MIT license.

## v13.19.0

* **SCHEMA:** API endpoints generated based on engine version 12.531.4 (Qlik Sense February 2020)
* **NEW FEATURE:** .NET Core officially supported.
* **DEPRECATED:** Deprecated promoted layout properties. Access values through the `Properties` and `Layout` properties instead.
* **DEPRECATED:** Deprecated client specific child access methods. Use generic `AbstractStructure` methods instead.

## v13.18.0

* **SCHEMA:** API endpoints generated based on engine version 12.475.3 (Qlik Sense November 2019)
* **NEW FEATURE:** Added method `DataPager.GetAllData` to lazily return all data associated with a data pager instance.
* **BUGFIX:** Method `Qlik.Engine.GenericObjectProperties.GetExtensObjectAsync` now throws an exception if the object refers to a master object that does not exist.
* **DEPRECATED:** Deprecated class `ScriptExtensions`. Functionality will not be replaced.
* **DEPRECATED:** Deprecated class `StructureExpressionExtensions` and associated sub classes. Use generic `AbstractStructure` methods instead.
* **DEPRECATED:** Deprecated all storytelling related functionality. Use `GenericObject` and `AbstractStructure` to interact with this client functionality.
* **DEPRECATED:** Deprecated custom child retrievers for `Filterpane`. Use `GenericObject.GetChild`.
* **DEPRECATED:** Deprecated enumeration type `SheetCellSplitDirection` used for internal sheet cell split operation. Functionality will not be replaced.
* **DEPRECATED:** Deprecated promoted methods associated with property structure content of engine objects. Use generic methods from object engine type instead.

## v13.17.0

* **SCHEMA:** API endpoints generated based on engine version 12.421.3 (Qlik Sense September 2019)
* **BUGFIX:** Fixed issue with session identifier mismatch with Qlik Sense Client when connecting to a app in Desktop version of Qlik Sense where the app name contained parentheses.
* **DEPRECATED:** Deprecated unused class `Qlik.Engine.GenericObjectList`.
* **DEPRECATED:** Deprecated class `Qlik.Engine.Extensions.TypeSwitch`. Use native C# 7 pattern matching.
* **DEPRECATED:** Deprecated mechanism for registering custom client object types. Deprecation applies to the `Qlik.Engine.QixClassBase` methods `RegisterQixType`, `RegisterQixSubType` and `GetRegisteredType`. Use generic engine type and utilize `AbstractStructure` for object specific data access.

## v13.16.0

* **SCHEMA:** API endpoints generated based on engine version 12.338.0 (Qlik Sense June 2019)
* **BUGFIX (.NET Core only):** Disable socket keepalive to prevent socket from automatically shutting down.
* **DEPRECATED:** Deprecated functionality for creating client objects. Deprecation includes the class `Qlik.Sense.Client.DataContainer` as well as client object specific methods in the `Sheet` class.

## v13.15.0

* **NEW FEATURE:** Added method `DebugConsole.Flush`.
* **NEW FEATURE:** Added functionality for globally specifying custom headers to include in JSON-RPC requests. Functionality provided through property `Request.CustomRpcHeaders`.
* **BUGFIX (.NET Core only):** Fixed issue relating to cookie management when using `AsExistingSession` authentication configuration.

## v13.14.0

* **SCHEMA:** API endpoints generated based on engine version 12.334.3 (Qlik Sense April 2019)
* **DEPRECATED:** Version check mechanism marked as obsolete. Version check can be performed by comparing `EngineApiVersion.Version` to Engine version received from API call. Default value for version check has been switched to `false`. All methods accepting a versionCheck argument (for example `ILocation.Hub`) are also deprecated. Replace usage with corresponding method without versionCheck argument.
* **DEPRECATED:** Schema validation mechanism marked as obsolete. Functionality will be removed. No replacement is planned.
* **DEPRECATED:** Methods relating to WinForms binding extension methods marked as obsolete. No replacements are planned.

## v13.13.0

* **NEW FEATURE (.NET Core only):** Implemented support for websocket redirect.
* **NEW FEATURE (.NET Core only):** Implemented support for custom headers for websocket connection.

## v13.12.0

* **NEW FEATURE:** Added experimental support for .NET Core 2.1.
* **NEW FEATURE:** The App extension methods for creating snapshots (`CreateSnapshot` and `CreateSnapshotAsync` ) now supports generating snapshots for linked visualizations.
* **BUGFIX:** Fixed issue relating to the class `Qlik.Sense.Client.SelecctionExtensions` preserving current selection state between sessions.
* **DEPRECATED:** Deprecated the following methods in namespace `Qlik.Sense.JsonRpc`: `ILocation.AsServiceAsync`, `Location.AsServiceAsync`, `RpcConnection.WebSocketFactory`, `WebsocketFactory.GetWebSocketFactory`.

## v13.9.0

* **SCHEMA:** API endpoints generated based on engine version 12.287.1 (Qlik Sense February 2019)