ALERTE COOKIE : En naviguant sur notre site, vous acceptez l’utilisation de cookies.
Pour en savoir plus, n’hésitez pas à lire notre Politique de confidentialité et Politique d’usage de cookies.

Migration de Base de données et d'Application multiplateforme Hautement Automatisée, Personnalisée et Optimisée


Conversion de Progress 4GL vers C#

Microsoft Logo

Grâce à l'outil Ispirer Migration and Modernization Toolkit il est désormais possible de convertir des applications depuis Progress 4GL vers C#.NET!


Aperçu général


Les démos ci-dessous montrent comment fonctionne l'outil Ispirer MnMTK pour la migration de Progress 4GL vers C#.NET.


Pourquoi Ispirer MnMTK?


Effectuez votre migration avec Ispirer Systems et profitez donc des avantages suivants que vous offre notre outil:

  • Cohérence et Intégration: automatisation jusqu'à 100%

  • Personnalisation rapide: individualisation et optimisation de la converson (1-3 jours ouvrables en moyenne)

  • Engagement pré-vente: nous démontrons une conversion complète au cours de l'évaluation avant que vous preniez une décision

  • Prix Raisonnable: nous offrons une tarification souple

  • Conversion Optimisée: en tant que résultat vous obtenez un code intelligent et maintenable, sans aucun middleware à utiliser après la conversion

Evaluation et Achat


L'évaluation de votre projet de migration permettra de mesurer les ressources nécessaires aussi bien que le coût de votre migration. Afin de faciliter ce processus, n'hésitez pas à remplir et nous envoyer en retour le questionnaire ci-dessous:


Télécharger l'outil

Ispirer Toolkit 10

Progress 4GL vers C#

Télécharger

Demander un devis

Ispirer Migration Solution

Progress 4GL vers C#

Service L'outil

Caractéristiques de Conversion


Dans le cadre de la migration d'une application Progress 4GL vers C#.NET, les bases de données Progress sont converties vers Microsoft SQL Server.


En outre, la solution de migration d'Ispirer permet de:

  • Convertir des tables/vues/séquences Progress vers des tables/vues/séquences 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
    )
  • Convertir les triggers Progress 4GL vers les triggers/procédures Microsoft SQL Server ou classes 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

  • Le code Progress 4GL vers le code .NET:



  • Convertir Progress 4GL Procedure Files (*.p) en classes C#
  • Convertir Progress 4GL Include Files (*.i) en classes/code 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;
                }
            }
        }
    }
  • Convertir Progress 4GL Window Procedure (*.w) Files vers:
    • Windows Forms
    • Windows Presentation Foundation (WPF)




    • Par exemple, vers WinForms:



    Ispirer MnMTK sépare automatiquement la logique de Progress 4GL window (*.w):
    • logique d'IU vers “.Designer.cs”
    • logique des triggers ON vers code de source “.cs”
  • Convertir des Données vers:
    • 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();       
          }
         }
        }
      }
    }
  • Convertir Progress 4GL Web Service Mapping Files(*.wsm) vers XML Web service (*.asmx.cs)

Contactez-nous pour en savoir plus.

 
Témoignages
Decitre, France

Sybase ASE vers PostgreSQL

Nous recherchions un outil pour effectuer une migration de Sybase à PostgreSQL.

Après quelques recherches nous avons trouvé l’outil d’Ispirer que nous avons...

...

TSS Consultancy, Inde

Microsoft SQL Server vers Oracle

Tout a commencé lorsque mon entreprise était à la recherche de la solution de migration de la base de données SQL Server vers Oracle. Plus de 10...

...

Etudes de cas
IBM DB2 LUW vers PostgreSQL, Etats-Unis

Notre client était la société publique américaine et l'unité indépendante du gouvernement de l'État.

...

Sybase ASE vers Microsoft SQL Server, Chili

Ispirer a déjà réalisé des projets pour des clients sur sept continents, y compris l'Amérique du Sud. Cette fois, nous avons eu l'honneur de coopérer avec un grand fabricant de logiciels basé au...

...