IBM i modernisation with .NET
Preserve what works. Evolve without risk.
IBM i Modernization Strategies
Three possible approaches, each with very different levels of risk and value.
Full Replacement
Migration to a new platform High Risk- Technology reset
- Full system replacement
- Very high costs
- Major functional risk
- Loss of business logic
- Vendor lock-in
Legacy Exposure
Expose existing applications Moderate Risk- Fast implementation
- No application re-architecture required
- Lower initial investment
- Application model remains unchanged
- Limited user experience
- No standalone application
- Legacy constraints remain
Incremental Modernization
New independent application layer Low Risk- Reuse RPG · CL · DB2 for i
- Build independent modules
- Independent deployment
- Controlled incremental evolution
- Introduces a new technology stack
- Requires team upskilling
IBM i ERP Migration
Why avoid a full replacement ?
Four points to consider before starting a full migration.
Legacy application assets
Your IBM i represents decades of investment. Each RPG program reflects proven business processes and hard-earned operational expertise refined over time.
Undocumented business logic
Most business logic exists only in the source code. During a migration, these implicit rules are difficult to fully replicate.
Long and high-risk ERP projects
ERP migration projects consistently exceed planned timelines and budgets. The operational risk is significant
Often underestimated ROI
The total cost of a full replacement includes training, parallel operations and post-migration remediation, rarely fully anticipated.
Big-bang migration
- 2- to 5-year project
- Loss of business logic
- Costly dual-run period
- Major operational risk
- Uncertain ROI
Incremental modernization
- Results within first week
- Business logic fully preserved
- No service disruption
- Minimal and controlled risk
- Measurable ROI at every stage
IBM i Modernization with .NET
IBM i remains the business backend, while .NET becomes the modern application layer.
The NTi data provider ensures seamless communication between them.
DB2 for i
Native SQL, transactions, stored procedures...RPG / CL
Direct program calls (RPG, CLP, 36).Entity Framework Core
Access DB2 for i throughthe EF Core extension
No IBM i install
100% .NET.No server-side components.
Supports x86/AMD64 · ARM64 · Power · Windows · Linux · Containers
Realistic timeline
First production-ready screens
Access existing data and reuse an existing RPG business program.
Business logic evolution
Processing managed by the new application.
Full application in production
New application deployed and independently maintainable.
Application architecture with NTi
Modern applications
Web interfaces · REST APIs · microservices
Integration layer
ADO.NET provider NTi data provider (native IBM i access)
Data & business logic
IBM i · DB2 for i · RPG · CL
IBM i remains the core system.
Higher layers evolve independently to support future application development.
Example of incremental modernization
A gradual transition from an IBM i ERP to .NET.
Industrial group
Business requirements
- Online access to orders and invoices
- Mobile access to inventory and pricing across multiple sites
- Real-time production performance tracking
- Automation of IBM i administrative tasks
IMPLEMENTATION
REST API
ASP.NET Core
- Centralizes access to IBM i data through NTi data provider
- Exposes core business services (orders, inventory, production)
- Invokes existing RPG programs (pricing calculations, processing)
- Provides a single layer consumed by .NET applications
Web portal
ASP.NET Core MVC
- Built on the services exposed by the API
- Online access to orders and invoices
- Mobile access to inventory and pricing across remote sites in just a few clicks
- Real-time production metrics
Admin console
Blazor Server
- Built on the admin endpoints exposed by the API
- Secure CL command execution
- Message queue access and IBM i monitoring
- Less 5250 for day-to-day operations
Deployment on Linux / Power.
No components installed on IBM i.
OUTCOME
- First module live in under 8 weeks
- Real-time web and mobile access to IBM i data
- Full reuse of existing RPG business rules
- System monitoring through a modern interface
- IBM i retained as the core business system
Strategic benefits
Business continuity
No service disruption during modernization.
.NET standardization
Access the broadest talent pool in the market.
Protect existing investments
Your past investments become a competitive advantage.
IBM i security preserved
The proven IBM i security model remains fully in place.
Incremental ROI
Each iteration delivers measurable business value.
Ready for modern use cases
APIs, web, and mobile, running on the infrastructure of your choice.
Any questions ?
NTi data provider allows you to call your RPG, CLP, or even older 36 programs exactly as they exist today, from C# and .NET, without modifying your IBM i code.
Each program is executed natively on the IBM i, with the same parameters, the same libraries, and the same behavior as in 5250.
From .NET you can:
- Open an NTi connection
- Prepare a parameter list (Input, Output or InputOutput)
- Call the program using CallProgram()
- Read returned values (CHAR fields, structures, buffers, etc.)
Your business logic remains 100% IBM i, but integrates immediately into a modern application, web or API, containerised or not. It is the simplest way to expose your RPG assets to the .NET ecosystem, without refactoring, without migration, without risk.
NTi relies exclusively on the security mechanisms of the IBM i:
- System authentication
- Authorizations
- SSL/TLS
- MFA
All the rules remain those defined on the machine, without modifying your existing model. Modernisation happens on the .NET side, but security continues to be ensured by the IBM i, with the same level of reliability and control as your current applications.
Yes. NTi enables incremental modernisation: you keep your programs and DB2 data, then add new .NET modules as needed.
Concrete example:
You already have a CLIENTS file, an RPG program that validates and updates the data, and an interactive screen that calls this logic.
With NTi, you keep exactly this behaviour and build alongside it a modern web interface that uses that same RPG program to validate or save the data, without rewriting.
No. Nothing is installed on the IBM i.
NTi runs only inside your .NET application. You simply add a NuGet package to your .NET project, and it is the application that communicates natively with the IBM i, not the other way around.
Whether you run your app on a Windows server, a Linux system, a Docker container, or in the cloud, NTi always runs within .NET, never on the IBM i.
Result: instant deployment, no need to involve system teams, and a clean architecture where everything stays on the .NET side.
This is the daily reality for many IBM i teams. The programs exist, but their parameters, structures, or business rules are no longer documented.
.NET and NTi simplify this situation because each RPG, CLP or API call becomes explicit in the .NET code. You define your parameters, your types, your lengths, your buffers, and this definition becomes your documentation.
As you integrate your programs into .NET, you automatically rebuild clear documentation: which programs are called, with which parameters, in which order, and with what return values.
Even without historical documentation, your system becomes readable, manageable, and structured again. You give new life to your IBM i assets, supported by widely available and sustainable .NET skills.