Skip to main content Skip to complementary content

Qlik Sense .NET SDK Release Notes

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 classDynamicStructure. 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)

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – let us know how we can improve!