Prérequis
Côté IBM i
La V5R4 de l'IBM i au minimum.
Le provider ADO.NET fonctionne à partir de la V5R4 de l'IBM i, une version V7R4 ou ultérieure étant recommandée. Le volet Entity Framework Core (Aumerial.EntityFrameworkCore) exige quant à lui la 7.2 au minimum, car il s'appuie sur les catalogues QSYS2 modernes.
Précisions par version :
| Version IBM i | Provider ADO.NET | EF Core | Remarques |
|---|---|---|---|
| V5R4 à 7.1 | Oui | Non | En dessous de 7.2, certaines collections de GetSchema (celles qui interrogent les catalogues QSYS2) ne sont pas disponibles. |
| 7.2 et 7.3 | Oui | Oui | Fonctionnalités complètes. |
| 7.4 et ultérieures | Oui (recommandé) | Oui | Base de validation principale de NTi. |
Note : l'authentification multi-facteur intégrée (TOTP) est une fonctionnalité récente de l'IBM i (7.6). Sur les versions antérieures, la connexion NTi fonctionne normalement sans facteur additionnel.
Requis
- Un profil utilisateur et son mot de passe (tous les niveaux
QPWDLVLsont supportés) - Une clé de licence NTi valide, installée par défaut dans la bibliothèque
KNTI(une autre bibliothèque peut être désignée par le mot-clé de connexionlicense library) - Une interface TCP/IP configurée et joignable depuis le client .NET
- Les services TCP *DATABASE, *RMTCMD et *SIGNON démarrés
- Les ports de ces services par défaut ou connus (voir « Réseau et ports » ci-dessous)
Optionnel
- TLS : certificats configurés dans DCM et services hôtes TLS actifs, pour
ssl=true - *SVRMAP démarré (port 449 par défaut) si les ports des services sont inconnus : NTi peut alors les résoudre via le mappeur de ports (
use mapper=true)
Côté .NET
Cibles du package
Le package Aumerial.Data.Nti embarque cinq cibles de compilation :
| Cible (TFM) | Couvre |
|---|---|
net472 |
.NET Framework 4.7.2 et ultérieurs (Windows) |
netstandard2.1 |
Implémentations .NET Standard 2.1 (Mono 6.4+, etc.) |
net5.0 |
.NET 5, 6 et 7 |
net8.0 |
.NET 8 et 9 |
net10.0 |
.NET 10 |
Compatibilité des runtimes consommateurs
| Votre runtime | Cible chargée | Supporté |
|---|---|---|
| .NET Framework 4.7.2 / 4.8 / 4.8.1 | net472 |
Oui |
| .NET 5 / 6 / 7 | net5.0 |
Oui |
| .NET 8 / 9 | net8.0 |
Oui |
| .NET 10 | net10.0 |
Oui |
Note : NTi reste consommable depuis des versions de .NET aujourd'hui sorties du support Microsoft (.NET 5, 6, 7 par exemple), mais alignez-vous sur la politique de support .NET pour vos déploiements.
Sont également requis côté client :
- Une connectivité TCP/IP vers la partition IBM i
- Un accès internet (ou un flux NuGet interne) pour la restauration initiale du package
- En option : un éditeur .NET (Visual Studio, JetBrains Rider, VS Code, etc.)
Architectures
NTi est 100 % managé et AnyCPU : aucune dépendance native, pas même System.Text.Encoding.CodePages, donc aucun binaire par architecture à déployer. Le provider fonctionne sur toutes les architectures où .NET s'exécute :
| Architecture | Systèmes | Condition |
|---|---|---|
| x86 | Windows | .NET Framework 4.7.2+ ou .NET 5+ |
| x64 | Windows, Linux, macOS | .NET Framework 4.7.2+ (Windows) ou .NET 5+ |
| ARM64 | Windows, Linux, macOS (Apple Silicon, AWS Graviton, etc.) | .NET 5+ selon l'OS |
| ppc64le | Linux on Power (y compris aux côtés de l'IBM i) | .NET 8 ou ultérieur |
| s390x | Linux on IBM Z | .NET 8 ou ultérieur |
Charges de travail
Toutes les charges de travail .NET sont couvertes, sans configuration particulière :
- Applications console et workers
- ASP.NET Core : APIs, MVC, Razor Pages, Blazor
- Clients lourds WinForms et WPF
- Services Windows et démons systemd
- Conteneurs Docker et Kubernetes (images Linux ou Windows)
- Serverless : Azure Functions, AWS Lambda (x64 et ARM64)
- .NET MAUI (via les cibles .NET 8+)
Note : pour les charges web et services, activez le pool de connexions (
pooling=true), inactif par défaut. Voir la page Connexion.
Réseau et ports
NTi établit des connexions TCP sortantes du client .NET vers les serveurs hôtes de l'IBM i :
| Service | Serveur hôte | Port | Port TLS |
|---|---|---|---|
| Mappeur de ports | *SVRMAP | 449 | n/a |
| Signon | *SIGNON | 8476 | 9476 |
| Base de données | *DATABASE | 8471 | 9471 |
| Commandes et programmes | *RMTCMD | 8475 | 9475 |
- En clair, ouvrez 8476, 8471 et 8475 du client vers l'IBM i. En TLS (
ssl=true), ouvrez plutôt 9476, 9471 et 9475. - Le port 449 n'est nécessaire que si vous utilisez le mappeur de ports (
use mapper=true, pour des ports non standard et inconnus). Chaque port peut aussi être fixé individuellement dans la chaîne de connexion (signon port,database port,command port,mapper port). - Référence IBM : ports TCP/IP requis pour IBM i Access et fonctions associées (en anglais).
Et maintenant ?
Votre environnement remplit les prérequis. Continuez avec :
- Installation : licence, package NuGet et premier programme
- Connexion : chaîne de connexion, pool, MFA, TLS