Progress 4GL to .NET Online Presentation: Sample Application Migration

Demo presentation text:


In this demo, I want to show you how our tool SQLWays can implement the most complex part of migration Progress 4GL – migration of UI logic. In Progress 4GL, we can put UI and business logic in one procedure, and in C #, we cannot do it in the same manner, so we need to generate file with designer to represent UI logic, and source code for business logic in it.

For migration of many files or the full application or, for example, for migration of Window (when we need to separate logic and generate multiple scripts) we can use another our tool that is called SQLWays Commander. It is very similar to SQLWays Studio. For example, we want to migrate these two directories, and we need to specify source – Progress 4GL and target – C#, and press the button - Run. There is the summary information and we can specify directory in which we want to see the result and specify File mask for files. If we do not specify a mask, it will be by default like *.*, and in this case all scripts will be converted from the source direction to the target direction. When all settings are specified, please press OK. This result trace is generated during the process of migration. SQLWays can recognize two files for conversion. First file is converted and then second will be migrated. Below there is the total information about scripts. These two files were successfully migrated without errors, the total scope is 40 lines and 7 sec. are necessary to complete this migration. We can go to this directory, review the results. In addition, you can see SQLWays log file. There is a lot of information about the migration - what version of our tool is used, what is the license for it, and the information about converted files. Two files were migrated and here you can see the information about migration process.

Let us see how SQLWays can convert Progress 4GL applications. For example, we want to migrate some simple application that consists one Window. On this window, there are two frames, some controls on every frame and ON triggers for these controls. We can see this window on Progress environment. Let see, it has already opened. Here there is a procedure editor. You can see that here there are BUTTON A, FILL-IN-A on the frame A and BUTTON B, FILL-IN-B on the frames FRAME B. Below there is the main window where two frames are located. For every control ON trigger is generated – for close, for click - for example, when we click BUTTON A on the FRAME A the value from FILL-IN-A goes to FILL-IN-B. The same behavior is for the BUTTON B.

Let’s see how it works. We can run the application, small window, and let’s test its functionality. We write some text in A in the text field and send it from A to B, and correct this information for returning it from B to A. It is simple application and let’s see how SQLWays can convert it to C#.NET Visual Studio project.

Here there is the same window and we need to migrate it to .NET. There is SQLWays configuration file “sqlways.ini” file for defining the migration options. We can go to C# section here and for the migration we need to specify two options like UI type WinForms, so we want UI logic to be generated to WinForms in .NET and only for this demo purpose, we have created the additional option GENERATE SEPARATE WINDOW project file and we need to specify - yes. This option means that for every window project file will be generated. Using this option after the migration, we can open generated C# project file and see how the new application for this window can work in .NET environment. Only for these purposes.

So let’s return to SQLWays Commander, specify this file and let’s convert it The source and target directions should be specified like in the Studio. And we want to migrate to the “rslt_UI” forms application file was generated. The process of migration is running. You can see that our tool can automatically recognize these two frames of the window, create separate files for Frame A and Frame B and main file for message window. All frames go to user controls, and these controls are added to main messaging window.

So let’s open this project file in SQLWays Studio. The application has the same functionality like in Progress. We use Visual Studio 2010. There are UI designers for Frame A and for Frame B. We can see here that all controls are created and added to A.

We can see that the source code and all triggers were successfully migrated to C# events, for example, BUTTON A CLICK.

On the main messaging window, there is the definition and initialization of these two frames. Two frames are added to this main window like User Controls. We can run this application and see its functionality. For example, you can see that UI view is the same. Let’s test how it works – write some text in A and send it to B, correct the test and return it from B to A. You can see that it works like in Progress. In this demo, you can see that our tool can automatically generate Project file, can automatically generate user controls and separate UI logic from events and some business logic.

If you are interested in these migration services or in our tools, please contact us. You can find all the information in our site We are ready for cooperation in your specific migration project. Thank you!

Do you want to move from Progress 4GL to C#?

Let's do it together!

Learn more