1 CSDK V1a Wcast
1 CSDK V1a Wcast
v.1a
Agenda
• The new .NET Core provider
.Net core
.Net Core
• The CSDK and JDBC connectivity packages provide the libraries for applications to
connect to and communicate with the Informix engine
• Informix has supported a wide range of application interfaces to the engines through these packages
• C/C++, C#, VB, VS, XA, Tuxedo, Tableau, SQL Linked Server, MS Excel access, .Net provider and
many more
• Microsoft has expanded on its .Net platform to provide two different sets of connectivity
APIs
• The .Net provider — Informix has supported this for years
• The .Net Core — new support in Informix v.14.10.xC4
.Net Core
• Wants the difference between .Net provider and .Net Core?
• According to Microsoft (https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-
server)
• Both Provider and Core share many components and are, in many cases, code compatible
• Informix supports .Net Provider v.4x in its most recent CSDK releases
.Net Core
• Wants the difference between .Net provider and .Net Core?
• According to Microsoft (https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-
server)
• Both Provider and Core share many components and are, in many cases, code compatible
• .Net Core
• Your apps or app services need cross-platform support
• .Net Core supports Windows, Linux and MacOS
• You intend to deploy applications and other services in a microservices architecture, such as RH OpenShift or
Azure
• You are “containerizing” your applications or data processing infrastructure using Kubernetes / Docker or other
container services
• .Net provider only works for Windows containers
• Need greater application performance or scalability than that provided by the .Net provider
• You need greater flexibility with .Net versions
• .Net Core supports the installation and simultaneous use of different .Net Core versions
• Applications can migrate to newer versions as they are ready rather than waiting for all to migrate at once
.Net Core
• Conceptually, this is .Net Core
• Borrowed from https://www.debuggershub.com/net-core-the-asp-net-core-architecture/
.Net Core
• With Informix v.14.10.xC4, the .Net platform is replaced with .Net Core
• We are using .Net Core v.3.1.1, the current stable release version
• The v.5 release is still in development and testing
• .Net Core is released on the Windows and Linux CSDK ports now
• Apparently, the Informix .Net Core provider will be available on NuGet.org in the near
future
.Net Core
• For those who want to know the internals of what went into the Informix .Net Core provider,
it was created with these packages and libraries:
• Microsoft Windows Server 2016 Standard — v10.0.14393
• .NET Core SDK — v3.1.201
• CMake — v3.13.0-rc3
• Microsoft Visual Studio Enterprise 2017 — v15.8.6
.Net Core
• With the .Net Core
• We provide the basic Informix compatible infrastructure
• You may need to add additional libraries from the .Net runtime or SDK
• These will come from Microsoft or other providers
• All the existing .Net Framework components (v.4x) will work in .Net Core
• However you get additional functionality with the new driver
.Net Core
• New functionality
• Connection pooling
• Max pool size
• A global maximum connection value for all connections across all connection pools for an application
• Range of values between 5 and 2,000
• You can use this to limit connections to the instance by an application
• GetIdleConnectionsCount
• The ability to get a count, at a global level, of the number of open idle connections
• GetActiveConnectionsCount
• The ability to get a count, at a global level, of the number of active connections
.Net Core
• New functionality
• The ability to create and use an ODBC Data Service Name (DSN) in the connection string itself
• Syntax:
• DSN=my_dsn_name
• All other .Net functionality, including data type support and tracing, is still available as
documented
.Net Core
• An answer to a basic FAQ
• Can I run a .Net framework application on .Net Core? If so, how?
• Answer: Yes!
• The names of all the Informix .NET Framework v4.x provider interfaces and methods are the same
in the Informix .NET Core provider
• However you need to
• Change the assembly name from IBM.Data.Informix to Informix.Net.Core
• Recompile the application referencing Informix.Net.Core.dll from $INFORMIXDIR\bin
• Within the application, use the SQLSetConnectAttr() function to set the API parameters before
attempting to connect to the instance
• For example:
SQLSetConnectAttr(SQL_INFX_ATTR_MIN_CONN_POOL_SIZE=10)
SQLSetConnectAttr(SQL_INFX_ATTR_MAX_CONN_POOL_SIZE=100)
DSN=my_dsn_name;MinPoolSize=5;MaxConnLimit=20
• Application session
• set environment CLIENT_LABEL “Susan, using payroll_12”
DSN=my_dsn_name;CLIENT_LABEL=my_label
• Using Java and JDBC, you can create a “smart trigger” that monitor changes to data and when a
“triggering condition” occurs, send an alert and the data to the application to work on
Questions