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
QPWDLVLlevel is supported) - A valid NTi license key, installed by default in the
KNTIlibrary (another library can be designated with thelicense libraryconnection 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:
- Installation: license, NuGet package and first program
- Connection: connection string, pooling, MFA, TLS