Qlik Sense .NET SDK Release Notes
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.ConnectionStatusthat 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.MaxJsonDepththat 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.Blobnow provides an interfaces for accessing Base64 encoded engine data. - NEW FEATURE: Added property
GenericLocation.CustomUserAgentto configure an HTTP user-agent header to use for application. - BUGFIX: Fixed deserialization issue with
Qlik.Engine.Blobstructures. - 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
AppAsyncoverload version that acceptsAsyncHandleargument to classQlik.Engine.LocationandQlik.Engine.QcsLocation. - NEW FEATURE: Added
AppAsyncoverload version that acceptsonConnectionEstablishedargument to classQlik.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
RpcConnectionandQlikConnectionare 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.GeoFieldand associated interfaceIGeoField. Deprecated since v15.3.0. - REMOVED: Removed deprecated
IAppextension methods for master object management. Deprecated since v15.3.0. - REMOVED: Removed deprecated sheet specific overrides for
DidCreateChildandDidDestroyChild. Deprecated since v15.3.0. - REMOVED: Removed deprecated protected property
RpcConnection.Location. Deprecated since v15.2.1. - REMOVED: Removed deprecated connection method
AsDirectConnectionwith parameterproxySessionId. 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
SheetCellSplitDirectionused for internal sheet cell split operation. Deprecated since v13.18.0. - REMOVED: Removed deprecated class
StructureExpressionExtensionsand 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. UseAbstractStructureinstead. - 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.IConnectionConfigurationwas 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.EnablePingto control whether or not to perform a ping during connection setup. - NEW FEATURE: Added event
IRpcConnection.PushMethodReceivedEventthat 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
AppExtensionsmethodsGetAppFieldandGetAppFieldAsyncnow 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
AppFieldinstances. - NEW FEATURE: Added type casting overloads for the method
GetPropertiesAsyncandGetLayoutAsyncfor classes that extend thePropertyContainerclass. - NEW FEATURE: Added class
Qlik.Sense.Client.SelectionObserverand 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
LocationExtensionsclass. - NEW FEATURE: Added conveniency method
Qlik.Engine.Location.LocalDesktopfor 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.ExportDataandApp.GetTablesAndKeys. - BUGFIX: The default value of argument
maxNbrCellsfor methodGenericObject.GetHyperCubeStackDatais now set to10000instead of0. - BUGFIX: The default value of argument
exportStatefor methodGenericObject.ExportDatais now set toEXPORT_ALLinstead ofEXPORT_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
AbstractStructureinstances. - DEPRECATED:
RpcConnection.SendAsync<T>(Request)andQlikConnection.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.AppPropertiesObjectare now correctly deserialized. Previously such objects were deserialized to instances ofGenericObject.
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
closenotification 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 methodJObject AbstractStructure.GetJObject(). - NEW FEATURE: Introduced methods
ILocation.AsDirectConnectionandILocation.AsDirectConnectionToPersonalwith 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.Closethat 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
qGenericTypeandqGenericIdof classQlik.Engine.ObjectInterfacewhen deserializingQixBaseClassinstances 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 toDisposewill now correctly destroy also private session objects of this class. - BUGFIX: Eliminated session object leakage from methods
GetAppFields,GetSheetsand their asynchronous equivalents. - DEPRECATED: Deprecated
IAppextension methods for master object management. Use engine endpoints for these operations. - DEPRECATED: Deprecated class
Qlik.Sense.Client.GeoFieldand associated interfaceIGeoField. UseAppFieldandIAppFielddirectly for this functionality. - DEPRECATED: Deprecated sheet specific overrides for
DidCreateChildandDidDestroyChild. 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
GenericSessionObjectandGenericSessionVariableaccidentally 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.QcsLocationfor configuring connections to Qlik Cloud Services. - NEW FEATURE: AbstractStructure now overrides
ToString. - NEW FEATURE: Introduced classes
GenericSessionObjectandGenericSessionVariable. 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 classPropertyContainerleverages this when getting layouts and properties. - NEW FEATURE: Virtual proxy path can now be defined directly in the location URI.
- DEPRECATED: Deprecated parameter
proxyUsesSslin proxy connection configurations. Use propertyCustomUserHeadersto define Origin header. - DEPRECATED: Deprecated parameter
extendedSecurityEnvironmentin direct connection configurations. Argument should be omitted. - DEPRECATED: Deprecated connection method
AsDirectConnectionwith parameterproxySessionId. Use propertyCustomUserHeadersto 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.SessionCookienow returnsnullinstead 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
IRpcConnectioninstance 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
GenericObjectandAbstractStructureto interact with this client functionality. - DEPRECATED: Deprecated snapshot related functionality. Use
GenericBookmarkandAbstractStructureto interact with this client functionality.
v15.0.6
- BUG FIX: The
LocationExtensionmethodsHub,App,ActiveAppand 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 toOpenApptimed out when callingLocationExtension.App
v15.0.5
- BUG FIX: Removed fixed 5 second timeout on websocket opening. The
RpcConnection.Timeoutproperty 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
Locationinstance can be configured to use this type of authentication through the new methodAsJwtViaProxy. - 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.SessionTokenis 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.ExtendedCurrentSelectionthat 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
PropertiesandLayoutproperties instead. - REMOVED: Removed the class
Qlik.Sense.Client.DataContaineras well as client object specific methods in theSheetclass. 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
ExtendedCurrentSelectionclass. - 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
PropertiesandLayoutproperties instead. - DEPRECATED: Deprecated client specific child access methods. Use generic
AbstractStructuremethods instead.
v13.18.0
- SCHEMA: API endpoints generated based on engine version 12.475.3 (Qlik Sense November 2019)
- NEW FEATURE: Added method
DataPager.GetAllDatato lazily return all data associated with a data pager instance. - BUGFIX: Method
Qlik.Engine.GenericObjectProperties.GetExtensObjectAsyncnow 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
StructureExpressionExtensionsand associated sub classes. Use genericAbstractStructuremethods instead. - DEPRECATED: Deprecated all storytelling related functionality. Use
GenericObjectandAbstractStructureto interact with this client functionality. - DEPRECATED: Deprecated custom child retrievers for
Filterpane. UseGenericObject.GetChild. - DEPRECATED: Deprecated enumeration type
SheetCellSplitDirectionused 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.QixClassBasemethodsRegisterQixType,RegisterQixSubTypeandGetRegisteredType. Use generic engine type and utilizeAbstractStructurefor 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.DataContaineras well as client object specific methods in theSheetclass.
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
AsExistingSessionauthentication 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.Versionto Engine version received from API call. Default value for version check has been switched tofalse. All methods accepting a versionCheck argument (for exampleILocation.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 (
CreateSnapshotandCreateSnapshotAsync) now supports generating snapshots for linked visualizations. - BUGFIX: Fixed issue relating to the class
Qlik.Sense.Client.SelecctionExtensionspreserving 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)