智能和高度自动化的跨平台数据库和应用程序迁移


从Progress 4GL到C#.NET转换

Ispirer is Microsoft Partner for database migration

选择Ispirer转换工具和服务为自动地将Progress 4GL转换为C#.NET!


从 Progress 4GL到C#.NET转换特征

我们的工具包是灵活的,并我们根据您对具体迁移项目的需求会定制工具,以便达到自动化最高的水平。我们的技术团队拥有在复杂程度不同的迁移项目的工作经验。我将帮助您从Progress 4GL迅速且简单的迁移到C#。

下面的演示视频演示从Progress 4GL到C#.NET转换过程:







为什么选择Ispirer MnMTK为从Progress 4GL转到C#.NET?

Ispirer一直以合理的成本能够提供高性能的应用程序转换解决方案而努力工作。

我们主要好处:

  • 高素质的技术支持:经过成熟的方法和工具,确保短期内具有挑战性的迁移的高度自动化。
  • 快速和高质量的定制:根据您对迁移项目的需求定制工具;
  • 在转换过程中实行您自己的解决方案:我们可以把您自己的解决方案快速地添加到从Progress 4GL到C#.NET转换规则中或根据您的要求进行更改。
  • 灵活的定价策略:提供广泛的选择,其中您一定会找到最适合您的价格方案;
  • 纯的代码:转换后没有Ispirer的文库或IP使用。

评估过程

为了为您提供报价,先需要评估您的转换项目。请填写我们的转换应用程序问题单:

未ISV公司,Ispirer提供协同动作过程:

现场演示

Ispirer转换解决方案

从Progress 4GL到C#.NET

请求

请求报价

Ispirer转换解决方案

从Progress 4GL到C#.NET

服务 工具

转换特征

除了Progress 4GL 到 C# .NET应用程序转换,此外可以从Progress数据库转换到Microsoft SQL Server数据库。 Ispirer MnMTK能够:

  • 转换Progress的表/视图/序列到Microsoft SQL Server的表/视图/序列:
ADD TABLE "TB_DATATYPES"
  AREA "Schema Area"
  DUMP-NAME "tb_datat"
 
ADD FIELD "c1" OF "TB_DATATYPES" AS CHARACTER 
  FORMAT "X(8)"
  INITIAL ""
            POSITION 2
  SQL-WIDTH 16
            ORDER 10
 
ADD FIELD "c4" OF "TB_DATATYPES" AS INTEGER 
  FORMAT "->,>>>,>>9"
  INITIAL "0"
            POSITION 5
  SQL-WIDTH 4
            ORDER 20
 
ADD FIELD "c5" OF "TB_DATATYPES" AS logical 
  FORMAT "yes/no"
  INITIAL "no"
            POSITION 6
  SQL-WIDTH 1
            ORDER 30
 
.
PSC
cpstream=ISO8859-1
.
0000000976
 
TO:
 
CREATE TABLE TB_DATATYPES
(
   c1 CHAR(16)   NULL,
   c4 INT   NULL,
   c5 BIT   NULL
)
  • 转换Progress 4GL 触发器到 Microsoft SQL Server触发器/功能或C#类:
    TRIGGER PROCEDURE FOR DELETE OF gsinvhd.
    FIND distribution 
    WHERE distribution.company = gsinvhd.company NO-LOCK 
    NO-ERROR.
     
    TO:
     
    CREATE TRIGGER SWT_Delete_gsinvhd
    ON gsinvhd
    AFTER DELETE
                AS
                DECLARE @distribution_company VARCHAR(255)
                SELECT    @distribution_company = company FROM distribution   
                WHERE   distribution.company = gsinvhd.company

Progress 4GL代码转换为.NET代码:



  • 转换Progress 4GL功能文件(*.p)到C#类
  • 转换Progress 4GL包含文件(*.i)到C#类/代码
    FUNCTION days-in-month RETURNS INTEGER
                ( INPUT pmonth AS INTEGER, INPUT pyear AS INTEGER ) :
     
      DEFINE VARIABLE idays AS INTEGER EXTENT 12 INITIAL 
    [31,28,31,30,31,30,31,31,30,31,30,31].
     
                IF pmonth NE 2 THEN DO:
                RETURN idays[pmonth].
                END.
                ELSE DO:
                IF INTEGER(pyear / 4) * 4 = pyear THEN DO:
                IF INTEGER(pyear / 100) * 100 = pyear THEN DO:
                IF INTEGER(pyear / 400) * 400 = pyear 
            THEN RETURN 29.
                ELSE RETURN 28.
                END.
                ELSE RETURN 29.
                END.
                ELSE RETURN 28.
                END.      
    END FUNCTION.
     
    using System;
    using System.Collections.Generic;
    namespace Ispirer.Services.Source
    {
                public class TestClass
                {
                static TestClass()
                {
                }
                public int Days_in_month(int pmonth, int pyear)
                {
                int[] idays = new int[] 
                { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
                if (pmonth != 2)
                {
                return idays[pmonth - 1];
                }
                else
                {
                if (Convert.ToInt32(pyear / 4) * 4 == pyear)
                {
                if (Convert.ToInt32(pyear / 100) * 100 == pyear)
                {
                if (Convert.ToInt32(pyear / 400) * 400 == pyear)
                return 29;
                else
                return 28;
                }
                else
                return 29;
                }
                else
                return 28;
                }
                }
                }
    }

转换Progress 4GL Window功能(*.w)文件到:

  • Windows Forms
  • Windows Presentation Foundation (WPF)




  • jia假如, 到 WinForms:



Ispirer MnMTK自动地分开Progress 4GL window的逻辑 (*.w):
  • UI logic to “.Designer.cs”
  • ON triggers logic to source code “.cs”
转换数据存取到:
  • ADO.NET
  • LINQ
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE generate-data Procedure 
PROCEDURE generate-data :
DEFINE VARIABLE i            AS INTEGER NO-UNDO.
DEFINE VARIABLE gc-company AS CHARACTER NO-UNDO.
 
FIND company WHERE company.company = gc-company NO-LOCK NO-ERROR.
 
            find budget where budget.company = gc-company no-lock no-error.
 
            Do while avail budget:
            Do i = 0 to company.num-periods:  
    find budget-analysis where 
      budget-analysis.user-id = company.gc-user-id and 
      budget-analysis.company = gc-company and
      budget-analysis.pc-center = "ALL" and
      budget-analysis.acct-period = i
      no-error.   
End.
End.
END PROCEDURE.
&ANALYZE-RESUME
 
TO:
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace Ispirer.Services.Source
{
            public class Gn_Data
            {
 
            #region Implicit buffers
 
  Data.Tables.company company;
  Data.Tables.budget budget;
  Data.Tables.budget_analysis budget_analysis;
 
            #endregion
 
            public Gn_Data()
            {
            }
            public void Generate_data()
            {
            int i = 0;
            string gc_company = string.Empty;
    company = (from company_Row in Db.company
         where company_Row.company == gc_company
         select company_Row).FirstOrDefault();
    budget = (from budget_Row in Db.budget
         where budget_Row.company == gc_company
         select budget_Row).FirstOrDefault();
            while (budget != null)
            {
            for (i = 0; i <= company.num_periods; i++)
            {
       budget_analysis = 
            (from budget_analysis_Row in Db.budget_analysis
         where budget_analysis_Row.user_id == company.gc_user_id &&
         budget_analysis_Row.company == gc_company &&
         budget_analysis_Row.pc_center == "ALL" &&
         budget_analysis_Row.acct_period == i
         select budget_analysis_Row).FirstOrDefault();       
            }
            }
            }
            }
}
  • 转换Progress 4GL Web Service Mapping Files(*.wsm)到XML Web service (*.asmx.cs)

您可以下载Progress 4GL 源代码示例以及转换的效果:


关于更多的信息,请随时联系我们

 
客户评价
2018年 5月 15日System Protocol Information, 马来西亚
Informix到Microsoft SQL Server数据库迁移

尊敬的先生们,

我们刚刚完成了到目前为止最大的从Informix到MS SQL Server迁移任务。这项运动是按计划按时完成的。这是成功的,感谢您工具做很大一部分。

...

2018年 5月 11日Bellnet (HAS), 日本
Delphi转成C#

我们的客户BELLNET是一家日本IT公司,它维护用于控制医疗设备的计算机软件。它需要把这样的医疗软件迁移从Delphi到C#,并联系我们要求转换工具。

...

2018年 4月 24日Steek-IT,荷兰
Progress迁移到SQLServer

Steek-IT是一家荷兰ICT公司,具有15年以上的数据迁移经验。除了我们专业的领域MSSQL、SSIS、SSAS,我们还创建网站、企业软件和iOS应用程序。

...

案例研究
2018年 4月 28日Informix 4GL转移到Microsoft SQL Server的解决方案, 美国

我们的客户是一家值得信赖的美国公司,为美国的100000多家中小企业提供人力资源服务和业务解决方案。

...

2018年 3月 26日Oracle Forms迁移到Java, 美国
用于Ispirer MnMTK的Oracle Forms自动化迁移到Java的可行性已被证明!

于2017年初,一家全球信息技术咨询公司联系Ispirer Systems。该公司与组织合作,制定技术战略并实现IT解决方案,增强公司的业务能力。

...

2018年 3月 23日IBM DB2 iSeries迁移到Microsoft SQL Server, 美国

来自美国的全方服务资讯科技公司,致力于软件和应用程序开发、再工程和维护。该公司提供Web服务,包括网站设计、网站托管和SEO。也从事CRM系统的实施、升级和管理。

...

客户的反馈
我们将研究你和其他人在接下来的一两周内发送的所有材料。几乎所有的竞争对手都无法为我们提供迁移代码的样本。你寄给我们的材料,包括迁移的代码,将把你的公司放在一个小的顶部。如果我们的客户应该决定实现迁移项目,我只能推荐你的公司,因为你除了沟通,显得非常高效和简单。



更多