Grâce à l'outil Ispirer Migration and Modernization Toolkit il est désormais possible de convertir des applications depuis Delphi vers Java EE!
Aperçu général
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: a utomatisationjusqu'à 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:
Ispirer Migration Solution
Delphi vers Java EE Commander
Caractéristiques de Conversion
Voici l'aperçu général de la conversion depuis Delphi vers Java EE à l'aide notre solution de migration:
- Convertit le code source Delphi avec la logique métier (*.pas) vers les classes Java
Delphi:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms, Dialogs, StdCtrls;
type
TForm4 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
Edit1.Text :=
IntToStr(StrToInt(Edit1.Text) + StrToInt(Edit2.Text));
end;
end.
Java:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import java.util.logging.Logger;
@Controller
public class Unit4
{
Logger logger = Logger.getGlobal();
@Autowired
private TForm4 Form4 = null;
@RequestMapping(value="/TForm4",method=RequestMethod.POST,
params="Button1")
public String Button1Click(HttpServletRequest request, Model model)
{
this.setPageValues(request);
this.Form4.setEdit1Text(String.valueOf(
Integer.parseInt(this.Form4.getEdit1Text())+
Integer.parseInt(this.Form4.getEdit2Text())));
this.addModelAttributes(model);
return "TForm4";
}
public void setPageValues(HttpServletRequest request)
{
this.Form4.setEdit1Text(request.getParameter("Edit1"));
this.Form4.setEdit2Text(request.getParameter("Edit2"));
}
public void addModelAttributes(Model model)
{
model.addAttribute("Edit1Text",this.Form4.getEdit1Text());
model.addAttribute("Edit2Text",this.Form4.getEdit2Text());
}
}
La conversion Pas est base sur l’initialisation de form class et contient les méthodes ButtonClick, setPageValues et addModelAttrributes qui définissent les valeurs jsp vers leur représentation de classe et les envoient sur les pages respectives.
- Convertit les fichiers Delphi Forms (*.dfm) vers JSP et Java classes
Delphi:
object Form4: TForm4
Left = 0
Top = 0
Caption = 'Form4'
ClientHeight = 158
ClientWidth = 201
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 24
Top = 107
Width = 46
Height = 13
Caption = 'Summand'
end
object Button1: TButton
Left = 24
Top = 64
Width = 153
Height = 25
Caption = 'Sum'
TabOrder = 0
OnClick = Button1Click
end
object Edit1: TEdit
Left = 24
Top = 37
Width = 153
Height = 21
TabOrder = 1
Text = '0'
end
object Edit2: TEdit
Left = 76
Top = 104
Width = 101
Height = 21
TabOrder = 2
Text = '0'
end
end
Java:
package com.ispirer.controller.demo.Logic;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TForm4
{
private String Edit1Text = null;
private String Edit2Text = null;
public String getEdit1Text()
{
return Edit1Text;
}
public void setEdit1Text(String edit1Text)
{
Edit1Text = edit1Text;
}
public String getEdit2Text()
{
return Edit2Text;
}
public void setEdit2Text(String edit2Text)
{
Edit2Text = edit2Text;
}
@RequestMapping(value = "/TForm4")
public String FormCreate(Model model)
{
this.Edit1Text = "0";
model.addAttribute("Edit1Text",this.Edit1Text);
this.Edit2Text = "0";
model.addAttribute("Edit2Text",this.Edit2Text);
return “TForm4";
}
}
JSP:
<%@taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="form"
uri="http://www.springframework.org/tags/form"%>
<%@taglib prefix="mvc"
uri="http://www.springframework.org/tags/form"%>
<%@page contentType="text/html;charset=UTF-8" language="java"%>
<html>
<head>
<title>Form4</title>
<link rel="stylesheet" type="text/css"
href="<c:url value="/resources/css/style.css"/>" />
</head>
<body>
<div class="layout">
<div class="left">
</div>
<div class="content">
<form:form method="post">
<label
style="left:24px;top:107px;width:46px;height:13px;">Summand</label>
<input type="submit" name="Button1" value="Sum"
style="left:24px;top:64px; width:153px;height:25px;"/>
<input type="text" name="Edit1" value="${Edit1Text}"
style="left:24px;top:37px; width:153px;height:21px;"/>
<input type="text" name="Edit2" value="${Edit2Text}"
style="left:76px;top:104px; width:101px;height:21px;"/>
</form:form>
</div>
<div class="right">
</div>
</div>
</body>
</html>
Delphi |
|
Java |
|
|
|
Les fichiers dfm consistent de propriétés différentes. Pour ces scripts Ispirer MnMTK génère les classes JSP et Java. Les fromes Delphi se convertissent en trois colonnes JSP avec le tag et le fichier par défaut css pour une correcte représentation de l’application. De plus, Ispirer MnMTK crée des modèles analogiques de composants Delphi. Les propriétés de form sont spécifiées dans FormCreate method.
- • Convertit Delphi Data Access (BDE, ADO, etc.) vers Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)
Delphi:
end object Form2: TForm2
Left = 0
Top = 0
Width = 156
Height = 198
Caption = 'Test'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBGrid1: TDBGrid
Left = 32
Top = 8
Width = 81
Height = 120
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'Tahoma'
TitleFont.Style = []
Columns = <
item
Expanded = False
FieldName = 'col1'
Visible = True
end>
end
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=MSDASQL.1;Persist Security Info=False;
User ID=sa;Data S' +
'ource=MSSQL_VMDBSRV002_ETEST'
Left = 24
Top = 136
end
object ADOQuery1: TADOQuery
Active = True
Connection = ADOConnection1
CursorType = ctStatic
Parameters = <>
SQL.Strings = (
'select col1 from tab1_test')
Left = 56
Top = 136
end
object DataSource1: TDataSource
DataSet = ADOQuery1
Left = 88
Top = 136
end
end
Java:
import java.sql.*;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import util.TDBGrid;
@Controller
public class TForm2
{
private TDBGrid DBGrid1 = null;
private static String[] connectionString=
{"jdbc:odbc:MSSQL_VMDBSRV002_ETEST","sa","" };
public static Connection ADOConnection1()
{
try
{
return DriverManager.getConnection(
connectionString[0],
connectionString[1],
connectionString[2]);
}
catch(SQLException e)
{
e.printStackTrace();
}
return null;
}
private PreparedStatement ADOQuery1 = null;
private String ADOQuery1_SQL_Strings =
"select col1 from tab2_test";
private ResultSet DataSource1 = null;
public void setADOQuery1(PreparedStatement ADOQuery1)
{
this.ADOQuery1 = ADOQuery1;
}
public PreparedStatement getADOQuery1()
{
return this.ADOQuery1;
}
public void setADOQuery1_SQL_Strings(String ADOQuery1_SQL_Strings)
{
this.ADOQuery1_SQL_Strings = ADOQuery1_SQL_Strings;
}
public String getADOQuery1_SQL_Strings()
{
return this.ADOQuery1_SQL_Strings;
}
public void setDataSource1(ResultSet DataSource1)
{
this.DataSource1 = DataSource1;
}
public ResultSet getDataSource1()
{
return this.DataSource1;
}
public void initDBGrid1(Model model)
{
this.DBGrid1 = new TDBGrid(this.DataSource1,new String[]
{ "col1" });
this.DBGrid1.initDBGridModel();
model.addAttribute("DBGrid1",this.DBGrid1.getDBGridModel());
model.addAttribute("DBGrid1ColWidth",new Integer[] { 100 });
}
@RequestMapping(value = "/TForm2")
public String FormCreate(Model model)
{
try
{
this.ADOQuery1 =
ADOConnection1().prepareStatement(getADOQuery1_SQL_Strings(),
ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}
catch(SQLException e)
{
e.printStackTrace();
}
try
{
this.DataSource1 = this.ADOQuery1.executeQuery();
}
catch(SQLException e)
{
e.printStackTrace();
}
initDBGrid1(model);
return "TForm2";
}
}
Delphi |
|
Java |
|
|
|
C’est un exemple de la conversion DBGrid avec l’utilisation de TADOConnection, TADOQuery et TDataSource.CoSQ. Ispirer MnMTK genere JSP avec une table remplie de la base de données. De plus, Ispirer MnMTK peut automatiquement générer Hibernate, Torque XML maps en fonction de tables de base de données.
Contactez-nous pour en savoir plus.
|