PowerBuilder에서 Windows Presentation Foundation (WPF)으로 마이그레이션하기
Ispirer MnMTK 애플리케이션의 마이그레이션 및 현대화는 툴킷은 PowerBuilder에서 Windows Forms의 WPF C#로 자동 변환을 제공합니다.
PowerBuilder에서 WPF C#로 마이그레이션하기 개요
마이그레이션 시 Ispirer MnMTK의 도움으로 PowerBuilder는 WPF C#로 변환 가능합니다.
- 응용 소스 파일(.SRA files)
- 윈도우 오브젝트 (.SRW files))
- 메뉴 (.SRM)
- 데이터 윈도우 (.SRD)
이 데모 영상은 Ispirer MnMTK의 도움으로 PowerBuilder에서 WPF C#로 마이그레이션하는 방법을 보여줍니다.
왜 Ispirer MnMTK 2015인가?
Ispirer Systems의 주된 목적은 최상의 애플리케이션의 마이그레이션을 제공하는 것입니다. Ispirer Systems의 마이그레이션 툴은 고객님의 비즈니스 요구 사항을 충족할 수 있도록 여러 가지 방식으로, 원하는 대로 개인화합니다.
Ispirer Systems의 주요 장점
- 고품질의 기술 지원 Ispirer Systems의 기술 팀은 다양한 마이그래이션 프로젝트에서 경험이 있습니다.
- 고객 지향적 접근 방식 및 신속한 고객화 Ispirer Systems의 마이그레이션 툴은 고객님의 비즈니스 요구사항 에 맞추기 위하여 툴을 고객님의 요구대로 개인화합니다. 고객님께 맞춤 및 최적화 변환은 영업일 2일 내에 수행합니다.
- 사전 판매 전시 고객님이 결정을 내리기 전에 Ispirer Systems는 평가 과정에서 전환을 입증합니다.
- 유연한 가격 정책 다양한 옵션 중에서 고객님께 필요한 것을 찾을 수 있습니다.
- 최적화된 변환 변환 후에는 Ispirer의 미들웨어를 사용할 필요없이 지능적인 코드를 얻을 수 있습니다.
평가 과정
평가는 마이그레이션의 노력과 비용을 추정하는데 도움을 줍니다. 더 자세한 평가의 공정을 위해 다음 링크를 참조하시기 바랍니다.
고객님께서 Ispirer Systems와 프로젝트에 대해 공동 논의를 위해 주저 없이 설문지를 작성하시고 보내주십시오.
Ispirer Toolkit 10
PowerBuilder to WPF C# 내려받기
Ispirer 마이그레이션 솔루션
PowerBuilder to WPF C# 서비스
툴킷
변환의 특징
Ispirer MnMTK는PowerBuilder에서 WPF C#로 자동 변화를 제공합니다.
- 응용 소스 파일을 (.SRA files) 변환하기
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 Object Element Usage로 변환됩니다.
<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>
- 윈도우 오브젝트 (.SRW files)는 XAML으로 변환하기
SRW 파일은 윈도우 소스 파일입니다. 그 파일에서는 양식 및 구성 요소 항목 또한 Event 및 Method의 설명을 있습니다. SRW 파일은 XAML로 변환됩니다.
하나의 제어 요소와 간단한 양식의 예를 가정해 보겠습니다.
$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 Window Object Element Usage로 구성 요소 항목의 변환의 설명이 있습니다.
<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>
Event는 C# Class Method로 변환됩니다.
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 Application Window |
WPF Application Window |
- 메뉴 (.SRM)에서 기준 User Control로 변환하기
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 Controls로 변환됩니다. Menu 와 MenuItem Controls는 XAML Object Element Usage에 추가됩니다.
<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>
Event는 simple_about 윈도우를 열기 위해 Method을 호출합니다.
event clicked;OPEN(simple_about)
END event
Method는 Class Method로 변환됩니다.
private void m_about_Click(object sender,EventArgs e)
{
_simple_about simple_about = new _simple_about();
simple_about.Show();
}
- DataWindow (.SRD)는 C# Class로 변환하기
SRD파일은 DataWindow Object의 정보에 대한 소스 파일입니다.
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에서 상속된 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 Class는 DataAccess Logic을 수행합니다. Ispirer MnMTK는 System.Data.SqlClient 와 System.Data를 사용하는 구현 Class를 제공합니다. SETDataSource Class는 변환하지 않고 고객님의 요청에 의해 수정되거나 확장할 수 없습니다.
추가로 문의 사항이 있으시면 연락주시기 바랍니다.
|