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 QPWDLVL sont 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 connexion license 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

Reconnexion au serveur...

La connexion au serveur a été perdue. La page va se recharger.