QUESTO SITO UTILIZZA COOKIE: continuando a navigare questo sito, accettate l’utilizzo di cookie.
Consultate le pagine Informative sulla Privacy e sui Cookie per ulteriori dettagli.

Intelligent, Custom and Highly Automated Cross Platform Database and Application Migration


Migrazione da Progress 4GL a C#.NET

.NET

Il tool per migrazione di applicazioni Ispirer MnMTK converte Progress 4GL verso C# .NET.

Queste presentazioni demo dimostrano come Ispirer Migration and Modernization Toolkit 2015 può convertire da Progress 4GL a .NET:





Perchè Ispirer MnMTK

Ispirer MnMTK può aiutarvi a convertire Progress 4GL automaticamente. Scegliendo Ispirer MnMTK potete anche eliminare i rischi di conversione e ridurre notevolmente la quantità di sforzi interni necessari per la migrazione.

La nostra tecnologia di conversione garantisce:

  • Il codice leggibile e facilmente gestito  Generazione del codice leggibile e facilmente gestito con la qualita della conversione manuale
  • Trasformazione e Refactoring del codice Trasformazione del codice implementando le pratiche migliore di .NET invece di ricopiare la vecchia tecnologia sulla piattaforma nuova
  • Tecnologie moderne L'uso di vantaggi e caratteristiche nuove di .NET e tecnologie (WPF, LINQ, MVC, ecc)
  • Il codice puro .NET  Le librerie o IP di Ispirer non sono usati dopo la conversione

  • I nostri vantaggi principali:

    • ll team esperto e qualificato: i tecnici d’Ispirer hanno grande esperienza in realizzazione di progetti di migrazione di varia complessità.
    • Approccio orientato al cliente e Personalizzazione rapida: personalizziamo il nostro strumento di migrazione in modo che permetta di soddisfare pienamente le esigenze di business dei nostri clienti; aggiustamenti gratuiti durante 1-2 giorni lavorativi;
    • Collaborazione pre-vendita: dimostriamo la conversione completa durante la fase di valutazione prima che prenderete la decisione finale.
    • Buon prezzo: offriamo la politica di prezzatura flessibile;
    • Conversione ottimizzata: il codice facilmente gestito senza il middleware di Ispirer usato dopo la conversione.

    Valutazione

    Valutazione ci aiuta ad estimare gli sforzi e i costi di migrazione. Per iniziare i discorsi di collaborazione e fare la valutazione approssimativa, si prega di riempire:

    Questionario per Migrazione da Progress 4GL a Microsoft .NET

    La Presentazione Live

    Ispirer Soluzione di Migrazione

    Progress 4GL a C#.NET

    Richiedere

    Richiedi un Preventivo

    Ispirer Soluzione di Migrazione

    Progress 4GL a C#.NET

    Servizi Toolkit

    Caratteristiche di conversione

    Come una parte della migrazione di applicazioni da Progress 4GL a C# .NET i database Progress sono convertati verso i database Microsoft SQL Server. Ispirer MnMTK anche permette di:

    • convertire tabelle/viste/sequenze di Progress a tabelle/viste/sequenze di 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
      )
    • convertire trigger di Progress 4GL verso trigger/procedure di Microsoft SQL Server  o classi 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

    • Il codice Progress 4GL verso il codice .NET:



    • Convertire i file procedurali Progress 4GL (*.p) verso classi C#
    • Convertire i file Include di Progress 4GL (*.i) verso classi/codice 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;
                  }
              }
          }
      }
    • Convertire i file Window Procedure di Progress 4GL (*.w) verso:
      • Windows Forms
      • Windows Presentation Foundation (WPF)




      • Per esempio, verso WinForms:



      Ispirer MnMTK automaticamente separa la logica di Progress 4GL window (*.w):
      • la logica dell'interfaccia utente verso “.Designer.cs”
      • la logica di trigger ON verso il codice sorgente “.cs”
    • convertire Data Access a:
      • 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();       
            }
           }
          }
        }
      }
    • Convertire Progress 4GL Web Service Mapping Files(*.wsm) verso XML Web service (*.asmx.cs)

    • Per ulteriori informazioni si prega di contattarci.

     
    Testimonianze
    Verint, Regno Unito
    Oracle verso Microsoft SQL Server, Regno Unito

    Verint Global Consulting Services ha usato Ispirer SQLWays Wizard per migrare un database con più di 500GB per il cliente da Oracle verso...

    ...

    TSS Consultancy, India
    Microsoft SQL Server a Oracle

    Tutto è cominciato con la ricerca della mia azienda di soluzioni per migrazione da SQL Server database verso Oracle. Le prove di più di 10 strumenti disponibili...

    ...

    Casi Studio
    Sybase ASE to Oracle and Sybase ASE to Microsoft SQL Server Migration, United Kingdom/United States

    Our client was Global Investment Bank (GIB), a provider of investment banking advisory services. Besides financing, risk management, and corporate finance advisory services, it provides foreign...

    ...

    Oracle to PostgreSQL Migration, Japan

    In cooperation with our solution partner in Japan, Ispirer executed a short-term migration project for a subsidiary of a grand, reputed Tokyo-based telecommunications company. The subsidiary is...

    ...