PowerBuilderからWindows Presentation Foundation(WPF)アプリケーションへの移行
Ispirer Migration and Modernization Toolkitアプリケーション移行ツールは、PowerBuilderからWPF C#への自動化変換機能を提供します。
PowerBuilderからWPF C#への移行の概要
Ispirer MnMTKはPowerBuilderからWPF C#アプリケーションへの移行のとき、以下の変換を行います:
- アプリケーションソースファイル(.SRA ファイル)
- ウィンドウオブジェクト(.SRW ファイル)
- メニュー (.SRM)
- DataWindow (.SRD
このデモでIspirer MnMTKによるPowerBuilderからC# WPF MVVMへの移行を見ることができます:
PowerBuilderからWPF C#への変換にIspirer MnMTK 2017を使う理由
Ispirer Systemsの主な目標は、高度で一線級のデータベース移行を実行することです。移行ツールIspirer MnMTKは、様々な個別のビジネス要件に応えることができる費用対効果の高い製品です。
主な利点:
- 優れたテクニカルサポート:移行のプロジェクトにおける絶大経験による、
最も複雑なタスクの解決策を見つけることをお約束します。
- 迅速なカスタマイズ:修正、カスタム変換、最適化(ほとんどの要件は 1~2 日で対応)
- 検討段階での共同作業:お客様の検討期間中に変換のデモをお見せすることができます。
- 柔軟な価格設定:広範囲オプションのご提供。
- 最適化された変換:インテリジェントで保守しやすいコードを生成します。
変換後のソースの利用に特別なIspirerのミドルウェア等は必要ありません。
アセスメント
アセスメントは移行の作業量と費用の見積もりに役立ちます。アセスメント作業の詳細につきましては以下のリンクをご覧ください:
以下の質問表にご記入いただければ、お客様のプロジェクトに関する質疑応答や概算のお見積りをお出しする事ができます:
Ispirer移行ソリューションPowerBuilderからWPF C#へ リクエスト
変換の機能
Ispirer MnMTKはPowerBuilderからWPF C#アプリケーションへの自動変換を行う事ができます:
- アプリケーションソースファイル(.SRAファイル)の変換
SRAファイルはアプリケーションソースファイルです。アプリケーションとそのエントリポイントの基本的な情報を格納しています:
forward
global TYPE simple_demo FROM application
END TYPE
END forward
global TYPE simple_demo FROM application
string appname = "simple_demo"
END TYPE
global simple_demo simple_demo
ON simple_demo.CREATE
END ON
event OPEN;
OPEN ( simple_demo_main )
END event
SRAファイルはXAMLオブジェクト要素の用法に変換されます:
<Application x:Class="simple_demo._simple_demo"
xmlns="http://schemas.microsoft.com/winfx/
2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="simple_demo_main.xaml">
<Application.Resources>
</Application.Resources>
</Application>
- Windowオブジェクト(.SRWファイル)をXAMLへ変換
SRWファイルはwindowソースファイルです。Formとコンポーネントアイテムおよびイベントとメソッドの説明を格納しています。SRWファイルはXAML Windowオブジェクトに変換されます。
ひとつのコントロールエレメントを持つ単純なFormの例を見てみましょう:
$PBExportHeader$simple_demo_main.srw
forward
global TYPE simple_demo_main FROM window
END TYPE
TYPE b_button FROM commandbutton WITHIN simple_demo_main
END TYPE
END forward
global TYPE simple_demo_main FROM window
INTEGER width = 800
INTEGER height = 1200
BOOLEAN titlebar = TRUE
string title = "simple_demo"
b_button b_button
END TYPE
global simple_demo_main simple_demo_main
ON simple_demo_main.CREATE
this.b_button =CREATE b_button
this.Control[]={this.b_button}
END ON
ON simple_demo_main.destroy
destroy(this.b_button)
END ON
TYPE b_button FROM commandbutton WITHIN simple_demo_main
INTEGER x = 400
INTEGER y = 400
INTEGER width = 200
INTEGER height = 120
string text = "Show"
END TYPE
event clicked;
END event
これはXAMLオブジェクト要素の用法に変換されたFormおよびコンポーネントの説明です:
<Window x:Class="simple_demo._simple_demo_main"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:LOCAL="clr-namespace:simple_demo"
Title="simple_demo"
mc:Ignorable="d"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/
markup-compatibility/2006"
SizeToContent="WidthAndHeight">
<Grid Height="300" Width="200">
<Canvas>
<Button Content="Show" Name="b_filter"
Height="30" Width="50" Canvas.LEFT="100"
Canvas.Top="100" Click="b_filter_Click"/>
</Canvas>
</Grid>
</Window>
イベントはC#のクラスメソッドに変換されます:
public partial class _simple_demo_main : Window
{
public _simple_demo_main()
{
InitializeComponent();
}
private void b_filter_Click(object sender,RoutedEventArgs e)
{
}
}
Ispirer MnMTKはPowerBuilderアプリケーションと同様にコンポーネントのサイズと位置属性を保存します:
 |
 |
PowerBuilderアプリケーションWindow |
WPF アプリケーションWindow |
- メニュー(.SRM)を標準のユーザコントロールに変換します
SRMファイルはメニューのソースファイルです。メニュー要素とイベントの説明が記述されています。これはひとつの要素をもつ単純なメニューの例です:
$PBExportHeader$simple_menu.srm
forward
global TYPE simple_menu FROM menu
END TYPE
TYPE m_about FROM menu WITHIN simple_menu
END TYPE
END forward
global TYPE simple_menu FROM menu
END TYPE
global simple_menu simple_menu
ON simple_menu.CREATE
simple_menu=this
CALL super::CREATE
this.m_about=CREATE m_about
this.Item[UpperBound(this.Item)+1]=this.m_about
END ON
TYPE m_about FROM menu WITHIN simple_menu
END TYPE
ON m_about.CREATE
CALL super::CREATE
this.text = "&About"
END ON
event clicked;OPEN(simple_about)
END event
SRMファイルは UserControlオブジェクトに変換されます。メニュー要素はMenuおよびMenuItemコントロールに変換され、XAMLオブジェクト要素の用法に追加されます:
<UserControl x:Class="simple_demo._simple_menu"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/
markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d">
<Grid>
<Menu>
<MenuItem Name="m_about" Header="About" Click="m_about_Click">
</MenuItem>
</Menu>
</Grid>
</UserControl>
simple_aboutウィンドウをオープンするイベントコールメソッド:
event clicked;OPEN(simple_about)
END event
メソッドはクラスメソッドに変換されます:
private void m_about_Click(object sender,EventArgs e)
{
_simple_about simple_about = new _simple_about();
simple_about.Show();
}
- DataWindow (.SRD) をC#クラスに変換
SRDファイルは DataWindow ソースファイルです。DataWindowオブジェクトの情報を格納しています:
release 10.5;
datawindow(…)
…
TABLE(COLUMN=(TYPE=CHAR(200) updatewhereclause=yes
name=name dbname="simple_demo.name" )
COLUMN=(TYPE=long updatewhereclause=yes
name=age dbname="simple_demo.age" )
retrieve="PBSELECT( VERSION(400) TABLE(NAME=~"simple_demo~" )
COLUMN(NAME=~"simple_demo.name~")
COLUMN(NAME=~"simple_demo.age~")) " )
SRDファイルはISDataSourceクラスから派生したClassに変換されます:
public class _d_simple_demo : ISDataSource
{
public _d_simple_demo()
{
this.ConnectionString = ConfigurationManager.
ConnectionStrings["ConnectionString"].ToString();
}
public void Retrieve()
{
this.SelectComand =
"SELECT name, age FROM dbo.simple_demo";
this.GetData();
}
}
ISDataSourceクラスはデータアクセスロジックを実装します。Ispirer MnMTKはSystem.Data.SqlClientおよびSystem.Dataを用いた実装クラスをご提供します。ISDataSourceクラス自身は変換できませんが、お客様のリクエストに応じて開発や修正を行う事ができます。
詳細はお問い合わせください。
|