사이트에서 쿠키를 사용합니다: 그 웹 사이트를 방문할 때 쿠키 사용에 동의하게됩니다.
자세한 내용은 개인 보정보호 정책쿠키 정책을 살펴보시기 바랍니다.

레거시 응용프로그램 및 데이터베이스의 지능형, 사용자 정의 및 상당히 자동화된 플랫폼 간 마이그레이션



Progress 4GL에서 C#.NET로 마이그레이션

Ispirer MnMTK 애플리케이션의 마이그레이션 및 현대화는 툴킷은 Progress 4GL에서 C#.NET으로 자동 변환을 제공합니다.


이제부터 수동 변환 더 이상 필요가 없습니다. Ispirer MnMTK는 Progress 4GL에서 C#.NET로 필요 변환을 수행하겠습니다. Inspirer Systems의 헌신적인 프로프 팀은 저희 툴은 고객님의 가장 복잡한 레거시 근대화 요구 사항에 충족하게 가능하게 합니다.

이 데모 영상은 Ispirer MnMTK의 도움으로 Progress 4GL에서 C#.NET로 마이그레이션하는 방법을 보여줍니다.







왜 Ispirer MnMTK인가?

Ispirer MnMTK는 현재 Progress 4GL 응용 프로그램에서 C#.NET으로 전체 마이그레이션 프로세스를 자동화 합니다. 또한, Ispirer MnMTK는 관련된 위험의 대부분을 제거하고 상당히 내부 노력을 감소 시킵니다. 이러한 모든 혜택은 프로젝트 유형에 대한 Ispirer MnMTK가 더욱 매력적인 툴을 만드는 매우 합리적이고 경쟁력있는 비용으로 사용할 수 있습니다.

저희 변환 택놀로지는 다음으로 보장합니다.

  • 수동 변환 품질로 읽을 수 및 유지 보수성 코드 생성 읽기 쉽고 유지 보수 코드 생산
  • 코드 변환 및 Refactorin은 오히려 새로운 플랫폼에서 기존 기술을 모방보다 .NET의 모범 사례를 구현하는 코드를 변환합니다
  • 장점과 새로운 .NET 기능과 기술 (WPF, LINQ, MVC 등)를 사용하는 최신 기술
  • 변환 후 IP 사용과 Ispirers 라이브러리 Pure .NET Code 없음

Ispirer MnMTK는 수천 파일과 수백만 라인을 포함하는 대형 응용 프로그램을 변환하는 것이 효과적입니다.

  • Automatically Resolves Dependencies
    그것은 종속 파일,데이터베이스로 부터 자동으로 의존성과 충돌을 해결하기 위해 정보를 추출 할 수있다
  • 다른 구성을 이해하는것은
    다양한 구성과 프로젝트 파일 (SQLWays .xml 파일, 비주얼 스튜디오 .dbml, EDMX, .XML, 그것은 .xsd 파일 등)부터 정보를 읽을수 있다
  • 빠르고 강력한 사용자 정의
    추상 레이어, 재사용 가능한 변환 템플릿, 내부 변환 언어와 액세서리 툴은 빠른 사용자 정의 및 복잡한 코드 변환을 제공합니다.

또한 Progress 4GL 소스 코드 샘플 및 변환의 결과를 다운로드 할 수 있습니다:


평가 과정

평가는 마이그레이션의 노력과 비용을 추정하는데 도움을 줍니다. 더 자세한 평가의 공정을 위해 다름 링크를 참조하시기 바랍니다.

라이브 프리젠테이션

Ispirer 마이그레이션 솔루션

Progress 4GL to C#.NET

요청하기

견적 요청

Ispirer 마이그레이션 솔루션

Progress 4GL to C#.NET

서비스 툴킷

변환의 특징

Progress 4GL의 일환으로 C # .NET 용 프로그램 마이그레이션 진행 데이터베이스가 마이크로 소프트 SQL Server 데이터베이스로 변환됩니다. MnMTK는 또한 허용합니다.

schema

  • 테이블 / 뷰 / 시퀀스에 시퀀스가 마이크로 소프트 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 triggers를 Microsoft SQL Server triggers/procedures 또는 C# classes로 변환한다.
    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 code에서 to .NET code로

    schema

  • Progress 4GL Procedure Files (*.p)를 C# 클래스로 변환합니다
  • Convert Progress 4GL Include Files (*.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 Procedure (*.w) 파일을 다음으로 변환합니다.
    • Windows Forms
    • Windows Presentation Foundation (WPF)


    • schema

      For example, to WinForms:

      schema

    MnMTK는 Progress 4GL window(*.w) 로직을 분리합니다
    • UI logic to Designercs
    • ON triggers logic to source code cs
  • 다음으로 데이터 Access를 변환:
    • 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)로 변환합니다.

추가로 칠문이 있으시면 언제든지 연락주시기 바랍니다.

 
Testimonials
28.03.2018Extedo, 독일
DB2를 MSSQL Server로


EXTEDO 사는 1996년에 간단한 비전을 가져 IABG 사의 부서로 설립되었습니다. 즉 생명과학 기관에게 산업별 표준비율과 규제 요구사항에 수월히 도와줍니다.

...

21.03.2018WeCare Technologies, 팔레스타인
Oracle를 SAP HANA로

Ispirer 도구 보다 SQL 마이그레이션을 위한 더 나은 도구가 있는지 의심스럽습니다. 이 도구는 문제없이 작업합니다. 그리고 지원이 훌륭합니다!

...

Case Studies
29.09.2017Informix 4GL에서 .NET로, 영국

이 프로젝트는 유럽의 주요 상업용 텔레비전 네트워크 중 하나에서 실행되었습니다.

...

29.09.2017Microsoft SQL Server에서 Oracle로 마이그레이션,벨기에

우리의 고객은 30 개국 이상에서 1 만개 이상의 상점을 운영하는 세계 유수의 소매 업체 중 하나였습니다. 이 회사는 공정한 가격으로 다양한 제품과 서비스를 제공함으로써 약 1 천만 고객에게 서비스를 제공합니다. 유럽, 중남미 및 아시아의 3 개 주요 시장에서 운영됩니다.Ispirer의 참여는 벨기에의 고객 부서와 관련이 있습니다.

...