Prerequisites

IBM i side

IBM i V5R4 minimum.
The ADO.NET provider works from IBM i V5R4 onwards, V7R4 or later is recommended. The Entity Framework Core layer (Aumerial.EntityFrameworkCore) requires IBM i 7.2 at minimum (it relies on the modern QSYS2 catalogs).

Version details:

IBM i version ADO.NET provider EF Core Notes
V5R4 to 7.1 Yes No Below 7.2, some GetSchema collections (those querying the QSYS2 catalogs) are unavailable.
7.2 and 7.3 Yes Yes Full feature set.
7.4 and later Yes (recommended) Yes NTi's primary validation baseline.

Note: built-in multi-factor authentication (TOTP) is a recent IBM i feature (7.6). On earlier releases, NTi connections work normally without an additional factor.

Required

  • A user profile and its password (every QPWDLVL level is supported)
  • A valid NTi license key, installed by default in the KNTI library (another library can be designated with the license library connection keyword)
  • A TCP/IP interface configured and reachable from the .NET client
  • The *DATABASE, *RMTCMD and *SIGNON TCP services running
  • The ports of these services set to their defaults or known (see "Network and ports" below)

Optional

  • TLS: certificates configured in DCM and TLS host services active, for ssl=true
  • *SVRMAP running (port 449 by default) if the service ports are unknown: NTi can then resolve them through the port mapper (use mapper=true)

.NET side

Package targets

The Aumerial.Data.Nti package ships five compilation targets:

Target (TFM) Covers
net472 .NET Framework 4.7.2 and later (Windows)
netstandard2.1 .NET Standard 2.1 implementations (Mono 6.4+, etc.)
net5.0 .NET 5, 6 and 7
net8.0 .NET 8 and 9
net10.0 .NET 10

Consumer runtime compatibility

Your runtime Target loaded Supported
.NET Framework 4.7.2 / 4.8 / 4.8.1 net472 Yes
.NET 5 / 6 / 7 net5.0 Yes
.NET 8 / 9 net8.0 Yes
.NET 10 net10.0 Yes

Note: NTi remains consumable from .NET versions that are now out of Microsoft support (.NET 5, 6, 7 for instance), but align your deployments with the .NET support policy.

Also required on the client side:

  • TCP/IP connectivity to the IBM i partition
  • Internet access (or an internal NuGet feed) for the initial package restore
  • Optional: a .NET editor (Visual Studio, JetBrains Rider, VS Code, etc.)

Architectures

NTi is 100% managed and AnyCPU: no native dependencies, not even System.Text.Encoding.CodePages, so there is no per-architecture binary to deploy. The provider runs on every architecture where .NET runs:

Architecture Systems Condition
x86 Windows .NET Framework 4.7.2+ or .NET 5+
x64 Windows, Linux, macOS .NET Framework 4.7.2+ (Windows) or .NET 5+
ARM64 Windows, Linux, macOS (Apple Silicon, AWS Graviton, etc.) .NET 5+ depending on the OS
ppc64le Linux on Power (including alongside the IBM i) .NET 8 or later
s390x Linux on IBM Z .NET 8 or later

Workloads

Every .NET workload is covered, with no specific configuration:

  • Console applications and workers
  • ASP.NET Core: APIs, MVC, Razor Pages, Blazor
  • WinForms and WPF desktop clients
  • Windows services and systemd daemons
  • Docker and Kubernetes containers (Linux or Windows images)
  • Serverless: Azure Functions, AWS Lambda (x64 and ARM64)
  • .NET MAUI (through the .NET 8+ targets)

Note: for web and service workloads, enable connection pooling (pooling=true), which is inactive by default. See the Connection page.


Network and ports

NTi opens outbound TCP connections from the .NET client to the IBM i host servers:

Service Host server Port TLS port
Port mapper *SVRMAP 449 n/a
Signon *SIGNON 8476 9476
Database *DATABASE 8471 9471
Commands and programs *RMTCMD 8475 9475
  • In clear text, open 8476, 8471 and 8475 from the client to the IBM i; with TLS (ssl=true), open 9476, 9471 and 9475.
  • Port 449 is only needed when using the port mapper (use mapper=true, for non-standard, unknown ports). Each port can also be set individually in the connection string (signon port, database port, command port, mapper port).
  • IBM reference: TCP/IP ports required for IBM i Access and related functions.

What's next?

Your environment meets the prerequisites. Continue with:

Reconnecting to the server...

The connection to the server was lost. The page will reload.