Demo presentation text:
Today Ispirer will show you how SQLWays tool can convert from Progress 4GL code to С#.NET. For migration Progress 4GL code we use SQLWays Studio – you can see it on your screen. It is simple UI tool. Before running the migration, you need specify source of migration - in our case this is Progress 4GL and target C#. Then we can open any file for migration. For example, first, we want to migrate some business logic. It is Progress 4GL function for counting days in the month. Here we can see basic constructions of Progress 4GL open-edge language such as, function; define variable, if statements, some built-in functions like INTEGER, declaration of array, RETURN statement. When the file is opened, we can run the migration. For this, we need only press “run” button. Now you can see that the process of migration, options of SQLWays. You can see one file is reading, the size of this file and below the information about the migration: it is - how many lines of this source and how many seconds it is necessary to complete the migration of this script.
In the right panel, you can see the result of migration. You can see that FUNCTION was successfully migrated to C# method, all data types were migrated correctly, for example INTEGER to INT, and also the declaration of variable, you can see that array of EXTENT 12 INITIAL - in C# it’s also array with its initialization. IF statements, RETURN statements were successfully migrated to C#
Also in this demo, I will show you how our tool can proceed with data access. Let’s open another file. Here it is procedure with FIND statements for working with tables – for finding some rows and manipulating data.
When we convert Progress 4 GL code, before this migration we migrate Progress database to, for example, Microsoft SQL Server and then using SQLMetal we can generate database make-up language model on the database and in this case, we can proceed with every table like Object and the whole database like Data Context. So, let’s see how our tool SQLWays can use these objects generated using SQLMetal in our migration. Here you can see “Implicit buffers” it is a region for declaration of physical tables from Progress (MSSQL) database. “DataTables” – it is the specific namespace, sure, its name can be changed for every specific project. Tables Company, Budget and Budget-Analysis buffers were converted like objects of classes where there are definitions of database tables using DBML language.
Here you can also see that procedures were converted to methods. In addition, here below, you can see how our tool can convert FIND statements. In this sample, it is migrated using the technology LINQ to SQL. So, DB in this case it is Data Context (table Company is the object of this Data Context). And here it is simple LINQ query and FirstorDefault () property it’s for representing FIND FIRST – searching and representing of first row of the query.
Also in this sample there is the migration Do while construction to C# “while” statement, and Do with range was successfully migrated to C# “for” statement. Other FIND statements were successfully converted using LINQ technology.
This is how our tool can proceed with data access of Progress 4GL. Sure; all these conversion rules can be changed. SQLWays is highly customizable and we can change the conversion quickly in our tool for specific customer needs. On our site ispirer.com, you can find engagement model for Progress 4GL to C# migration for companies that have his own development resources. The main idea is that customer can provide us the specification with solutions how the statements, constructions should be converted, for example, like in this case, customer need to add to the specification, for example, FIND statement is should be converted to LINQ to SQL statement with query using FirstorDefault property in the end.
According to this document, we can customize our tool. The timeframe of customization is near 2-3 months and when the customization is completed, the modified version of SQLWays is provided to customer. Client can use it in product migration and Ispirer provides support, if some errors are appeared, or if some other new customizations are required. This model is very constructive and efficient and if you are interested in it, you can find the detail information on our site www.ispirer.com.