Guide de démarrage rapide

NTi est conçu pour répondre à une réalité que peu d'outils adressent : vous pouvez connecter votre IBM i à .NET et être opérationnel en moins de 15 minutes.

Aucune rupture dans vos activités, aucune formation nécessaire, aucune configuration complexe. Tout s’intègre directement à Visual Studio par simple référencement. Vous codez en C# avec une syntaxe familière et une prise en main immédiate, sans préambules fastidieux liés au RPG.

De plus NTi est entièrement multiplateforme, fonctionnant aussi bien sur Windows, Linux ou macOS, et agnostique aux versions IBM i. Peu importe votre environnement ou la version de votre système.

Simple, rapide et immédiat !

Prérequis

Côté développement

  • Visual Studio 2022, JetBrains Rider, ou VS Code avec l'extension C#
  • Une version .NET compatible :
    • .NET 6 / 7 / 8 / 9 / 10
    • .NET Standard 2.1
    • .NET Core 3.1
    • .NET Framework 4.7 et ultérieur

Côté IBM i

  • IBM i V5R4 ou supérieure
  • Les services TCP *DATABASE, *RMTCMD et *SIGNON démarrés
  • Une licence NTi active - Démarrer l'essai gratuit

💡 Pour le détail complet des prérequis et de l'installation de la licence, consultez la page Installation.


Étape 1 - Installez NTi via NuGet

Ouvrez un terminal dans votre dossier de projet et ajoutez les packages :

dotnet add package Aumerial.Data.Nti
dotnet add package Dapper

Ou via la console du Gestionnaire de packages Visual Studio :

Install-Package Aumerial.Data.Nti
Install-Package Dapper

💡 Pourquoi Dapper ? Dapper est un micro ORM léger qui mappe automatiquement les résultats SQL sur vos objets C#. Il enrichit votre connexion NTi avec des méthodes intuitives comme Query<T> ou Execute, pour des interactions plus naturelles avec vos données IBM i.


Étape 2 - Créez la connexion

using Aumerial.Data.Nti;
using Dapper;

using var conn = new NTiConnection("server=serverName;user=userName;password=password");
conn.Open();

Console.WriteLine(conn.State == ConnectionState.Open
    ? "✅ Connexion IBM i et licence NTi OK."
    : "❌ Connexion impossible.");

💡 La chaîne de connexion supporte de nombreux paramètres avancés : SSL/TLS, pool de connexion, MFA, bibliothèque par défaut... Consultez la page Connexion pour la référence complète.


Étape 3 - Lire des données

public class MyRecord
{
    public string Id    { get; set; }
    public string Label { get; set; }
}

var records = conn.Query("SELECT * FROM MYLIB.MYTABLE");

Étape 4 - Écrire des données

conn.Execute(@"
    UPDATE MYLIB.MYTABLE
    SET LABEL = 'Updated'
    WHERE ID = 'REC-001'
");

💡 Pour un exemple complet avec Entity Framework Core (Code First, DB First, CRUD), consultez le tutoriel CRUD avec EF Core 8.


Étape 5 - Exploiter toutes les ressources IBM i

NTi va bien au-delà du SQL. Depuis votre code C#, vous accédez à l'ensemble des ressources IBM i.

Exécuter une commande CL

try
{
    conn.ExecuteClCommand("CRLIB LIB(MYLIB) TEXT('My new library')");
}
catch (NTiException ex)
{
    Console.WriteLine(ex.Message);
}

💡 Consultez le tutoriel Exécuter une commande CL.


Appeler un programme RPG

var parms = new List
{
    new NTiProgramParameter("Hello", 10).AsInput(),  // CHAR(10) INPUT
    new NTiProgramParameter("", 128).AsOutput()      // CHAR(128) OUTPUT
};

conn.CallProgram("MYLIB", "MYPGM", parms);

string result = parms[1].GetString(0, 128);

💡 Consultez le tutoriel Appeler un programme pour un exemple complet avec passage de paramètres et récupération des données.


Appeler une procédure stockée

var parameters = new DynamicParameters();
parameters.Add("myParam", dbType: DbType.Decimal, direction: ParameterDirection.Output);

var records = (await conn.QueryAsync(
    "MYLIB.MYPROC",
    parameters,
    commandType: CommandType.StoredProcedure
)).ToList();

💡 Consultez le tutoriel Procédure stockée pour un exemple complet avec les approches DataReader et Dapper.


Et maintenant ?

Vous êtes opérationnel. Voici quelques pages pour aller plus loin :