Aumerial.Data.Nti 5.0.0

dotnet add package Aumerial.Data.Nti --version 5.0.0
                    
NuGet\Install-Package Aumerial.Data.Nti -Version 5.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Aumerial.Data.Nti" Version="5.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Aumerial.Data.Nti" Version="5.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Aumerial.Data.Nti" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Aumerial.Data.Nti --version 5.0.0
                    
#r "nuget: Aumerial.Data.Nti, 5.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Aumerial.Data.Nti@5.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Aumerial.Data.Nti&version=5.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Aumerial.Data.Nti&version=5.0.0
                    
Install as a Cake Tool

NTi Data Provider

NTi Data Provider is a lightweight, fully managed, multiplatform access provider for IBM i servers. It lets any .NET application query the DB2 for i database, call programs and execute CL commands over the native host servers, with no ODBC driver, no IBM i Access installation and no unmanaged dependency.

Version 5 is a complete rewrite of the NTi 4 provider: same API, same connection strings, a new engine underneath. Applications running on NTi 4 upgrade without code changes.

Info
Contact us
Documentation
2026 - AUMERIAL SAS

Why version 5

The whole transport and protocol layer has been redeveloped and optimized end to end: large reads saturate a gigabit link from a single connection, unitary latency is the lowest of the drivers we benchmark against (ODBC, JT400), the read path decodes values with near zero allocations, and the engine is truly asynchronous from OpenAsync to DisposeAsync.

NTi has no external dependency. Character conversion (179 CCSIDs: EBCDIC single byte, double byte and mixed SO/SI, Unicode, ASCII/OEM) is powered by NTi's own conversion tables, extracted from an IBM i server and cross checked against JTOpen and ICU, with no reliance on System.Text.Encoding.CodePages.

Getting started

using Aumerial.Data.Nti;

using var connection = new NTiConnection("server=MYIBMI;user=MYUSER;password=MYPASSWORD");
connection.Open();

// SQL
using var command = connection.CreateCommand();
command.CommandText = "SELECT ORDNO, CUSNAME, AMOUNT FROM MYLIB.ORDERS WHERE AMOUNT > ?";
var amount = command.CreateParameter();
amount.Value = 1000m;
command.Parameters.Add(amount);
using var reader = command.ExecuteReader();
while (reader.Read())
    Console.WriteLine($"{reader.GetString(0)} {reader.GetString(1)} {reader.GetDecimal(2)}");

// CL command
connection.ExecuteClCommand("SNDMSG MSG('Hello from .NET') TOUSR(QSYSOPR)");

// Program call
var parameters = new List<NTiProgramParameter>
{
    new("CUSTOMER01", 10),          // CHAR(10)
    new(0, ParameterDirection.Output), // BINARY(4)
};
connection.CallProgram("MYLIB", "MYPGM", parameters);

Entity Framework Core support is available through the companion Aumerial.EntityFrameworkCore packages.

Supported platforms

  • .NET Framework 4.7.2+
  • .NET Standard 2.1
  • .NET 5, .NET 8, .NET 10
  • IBM i V5R4 and later (V7R4+ recommended; GetSchema catalog collections require a recent OS)

AI agent skill

The package ships a skill file for AI coding agents (agents/SKILL.md in the package): connection string reference, ADO.NET and EF Core patterns, program and service program calls, and IBM i specific pitfalls. Install it into your repository with:

dotnet msbuild -t:NTiInstallAgentSkills

Run it from the folder of a project that references the package, after a package restore (any build does one). The command is opt-in and copies the file to .claude/skills/nti-ibmi-provider/SKILL.md; run it again after a package update to refresh the skill.

Migrating from NTi 4

Version 5 keeps the NTi 4 API and connection string keywords. The differences below are deliberate; each has a documented remedy.

  • UDT mappings (NTiUDTMapping, SetUDTMappings) are removed.
  • The inert [Obsolete] properties UseDefaultPorts, RetreiveSuccessMessages, IgnoreNonQueryResult and PreFetch are removed.
  • untrusted now defaults to false: TLS server certificates are validated unless you opt out with untrusted=true.
  • The blocking factor is adaptive by default; set blocking factor=1000 to restore the fixed v4 sizing.
  • AdditionalFactorCallback is obsolete: use AdditionalFactorProvider, which receives the authentication context (host, user).
  • Main classes are sealed, and NTiException derives from DbException (existing catch (NTiException) code keeps working).
  • Misused savepoints and double Open now throw instead of silently doing nothing; invalid connection string values throw at assignment.
  • ConnectionString hides the password once the connection is open, unless persist security info=true.
  • Precision and Scale on NTiParameter follow the standard byte based DbParameter contract.
  • A program parameter built with an explicit ccsid no longer changes the process wide default encoding of other parameters.

Release notes

5.0.0
Complete rewrite of the NTi 4 provider: same public API and connection string keywords, new protocol, conversion and pooling engine (see Why version 5 above). New in 5.0: fully asynchronous engine (real async I/O from OpenAsync to DisposeAsync, cancellation-aware at every phase), default ccsid keyword, async MFA callback with authentication context, ExecuteClCommandAsync/CallProgramAsync, service program procedure calls (CallServiceProgram/CallServiceProgramAsync), fetch ahead keyword, adaptive blocking factor, sovereign CCSID conversion tables.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.1 is compatible. 
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Aumerial.Data.Nti:

Package Downloads
Aumerial.EntityFrameworkCore

Entity Framework Core provider for IBM i, iSeries and AS/400 servers, built on the fully managed NTi Data Provider (DB2 for i).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
5.0.0 151 8/28/2026
4.4.14 235 5/26/2026 4.4.14 is deprecated because it is no longer maintained.
Loading failed