IBM iSeries AS400的CLP能否调用C#?RPG替换项目技术咨询
C#与IBM i(原iSeries)程序集成支持情况
关于CL直接调用C#类
- IBM i原生环境不支持直接从CL或RPG调用C#类,系统没有内置.NET Runtime,不像Java有IBM JVM深度集成在ILE环境中。
C#代码在IBM i上的运行方式
目前没有工具能把C#直接编译成IBM i原生ILE程序(如RPG/CL格式),但可以通过以下方式在IBM i环境中运行C#代码:
- 利用.NET Core/.NET 5+的跨平台特性,将C#程序编译为Linux x64可执行文件,部署到IBM i的PASE(Portable Application Solutions Environment)环境——这是IBM i内置的Linux兼容层,可直接运行Linux程序。CL可以通过
CALL PGM(QP2SHELL2)或QSH命令调用PASE中的C#程序。 - 将C#程序封装为REST/Web服务,部署在外部服务器或IBM i的PASE中的Web服务器上,CL/RPG通过IBM i的HTTP客户端工具(如
HTTPAPI、原生HTTPCLIENTAPI)发起请求调用。
与遗留RPG/CL系统集成的推荐方案
- 优先采用C#客户端+ODBC连接DB2 for i的架构:C#程序运行在Windows/Linux服务器,通过ODBC直接操作IBM i上的DB2数据库,无需在IBM i上部署C#代码,开发成本低、兼容性好。
- 如果需要和RPG程序深度交互(如共享数据区、调用RPG业务逻辑),可以将RPG逻辑封装为DB2存储过程,C#通过ODBC调用存储过程;或者反过来,RPG通过HTTP调用C#提供的Web服务。
内容的提问来源于stack exchange,提问作者WaldropPAgirl
相关产品推荐
相关产品推荐

