ASNA Monarch Migration Suite
Migration Target Language: C# or RPG

ASNA Encore lets you choose the migration target best for your business

ASNA Encore RPG: One source, two migration paths, one executable

Overview: This article describes the Monarch Core's Encore RPG, its RPG migration component that enables migrating ILE RPG or RPG/400 to Encore RPG or C#.

The original version of ASNA Monarch produced only ASNA Visual RPG (AVR) directly for IBM i RPG application migrations. (ASNA Visual RPG is our .NET Framework-based RPG development environment.) For many years, AVR was a desirable, strategic target. However, as time went on, we encountered many shops who needed Monarch to produce C#. To resolve that, we created an adjunct facility for Monarch called Serengeti that, with some effort, could produce C#. The C# produced was clean, good C# but the Serengeti process to produce that C# imposed more friction than was desirable.

Monarch Core's RPG Migration Agent produces what we call Encore RPG. With Monarch Core, Encore RPG solves the challenge of producing either an RPG-based result or a C# result from the same Monarch-migrated project. Encore RPG is similar in syntax to Visual RPG. The big difference is that Encore RPG produces either a .NET Core executable or a corresponding C# project that targets .NET Core. Figure 1 below shows the Encore RPG workflow.

ASNA Encore RPG produces either a .NET Core binary or C#
Figure 1. ASNA Encore RPG produces either a .NET Core binary or C#

Multiple strategic platforms

Our migration prospects generally describe one of two migration needs to us:

  1. An RPG migration path. These shops have RPG programmers with several years left in their careers and will be the programmers charged with maintaining and enhancing the migrated application. For these shops with RPG programmers with 5, or 10, or 15 years remaining in their career, targeting RPG for the migration may indeed be strategic.
  2. A C# migration path. These shops are struggling with an RPG programming team that is retiring very soon. These businesses are worried that their business cannot persist without RPG programmers to maintain and enhance their estate RPG application. These businesses know that rewriting the RPG application from scratch is a non-starter (it would take years and cost way too much money). The best thing for these shops is to get that RPG application into its C# programmers hands as quickly as possible.

Regardless of how strongly a given shop feels about its migration path, the flexibility of targeting RPG initially provides substantial benefits for either ultimate migration path:

  • While an RPG-based shop may want an RPG solution right now, if that shop's RPG team retires in five years, the idea of very painlessly converting the migrated project to C# then is very desirable. This way, the RPG can maintain and enhance the application in the immediate future, but there is also time to plan for a rational, stepwise hand-off to the C# team.
  • The shop that demands C# initially, may find that there is a high value in first migrating the application to RPG, if only to have their RPG programmers help remediate the application and explain how it works to the C# team. Then, as projects are remediated in RPG, they are quickly converted to C# and handed off to the C# team.

In either case, it's important to remember that the RPG estate application isn't documented (or if it is, those docs are old and out of date). All of the behaviors, the workarounds, and the anomalies (kind word for bugs!) are embedded in your RPG programmer's heads. These RPG programmers are a highly valuable asset to have engaged in the application migration project. Using Encore RPG's RPG migration path initially is a superb way to help get that knowledge passed off to the C# team. Once absorbed, it's easy then to create a pure C# version.

The natural evolution of RPG

Encore RPG implements all ILE RPG and RPG/400 idioms. With either its RPG migration path or its C# migration path, Encore RPG is the natural evolution of RPG to .NET Core.

Encore RPG features:

  • Targets .NET Core instead of .NET Framework
  • Uses Microsoft ASP.NET Razor pages instead of .NET Framework ASP.NET Webforms
  • Syntax is the same as that of ASNA Visual RPG (ie, expressive RPG)
  • It is trivial to convert an Encore RPG project to C#
  • Empowers effective collaboration with your RPG and C# programming teams

ASNA Visual RPG (AVR) produces fat Windows clients and ASP.NET Webforms projects. It targets the original .NET Framework. While Encore RPG is syntactically very similar to Visual RPG, Encore RPG and Visual RPG are two separate products with two separate purposes. Encore RPG is exclusively for the Monarch Core application domain. There isn't an upgrade path from Visual RPG to Encore RPG.

A new time, a new day

Although Monarch Core and Encore RPG both have some new code, many of their core facilities are ports from our mature and proven .NET Framework-based migration suite. With .NET Core under it, and C# easily available, Monarch Core is a superb, long-term solution for your business--no matter what your desired target migration language is.

We're very proud of what we've done with Monarch Core. Integrating Encore RPG into Monarch gives managers never-available-before migration options. These options mitigate risk, facilitate effective interaction between your RPG and C# teams, and ensure that your business will never be without its line-of-business RPG application--even when it turns into C#!