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

PowerBuilder to Windows Forms (WinForms) Application Migration

From now on Ispirer Migration and Modernization Toolkit is capable of converting PowerBuilder applications to WinForms .NET!


PowerBuilder to WinForms .NET Migration Overview

While migrating PowerBuilder to WinForms .NET, Ispirer MnMTK allows to convert:

  • Application source files (.SRA files)
  • Window objects (.SRW files)
  • Menu (.SRM)
  • DataWindow (.SRD)

Why Ispirer MnMTK 2015 for PowerBuilder to WinForms .NET Conversion?

The main purpose of Ispirer Systems is to carry out a high-grade and top-of-the-line database migration. We personalize our migration tool Ispirer MnMTK in such a way that a customized version can fully satisfy a client's business requirements.

Our main benefits:

  • High quality and experiences technical support: our technical team has a tremendous experience in migration projects of different levels of complexity.
  • Customer-oriented approach and Fast Customization: we personalize our migration tool in such a way that a customized version can fully satisfy our client’s business needs, custom conversions and optimizations are made within 1-2 business days;
  • Pre-Sales Engagement: we demonstrate a full conversion during the evaluation before you make a decision.
  • Flexible pricing: we can offer you a wide range of options, among which you will definitely find the one which suits you;
  • Optimized Conversion: after the conversion you get an intelligent and maintainable code, without using any Ispirer's middleware.

Assessment Process

The assessment of your migration project could definitely help to weigh up efforts and the approximate cost of your migration. In order to facilitate the process, you're welcome to download our:

Otherwise don't hesitate to complete the questionnaire and to send it to us so that we could initiate the discussion of your project:

Live Presentation

Ispirer Migration Solution

PowerBuilder to WinForms .NET

Request

Request a Quote

Ispirer Migration Solution

PowerBuilder to WinForms .NET

Service Toolkit

Conversion Features

Ispirer MnMTK is capable to automatically convert PowerBuilder to WinForms .NET application. To be more precise, Ispirer MnMTK allows to:

  • Convert Application source files (.SRA files)

    SRA file is an application source file that contains basic information about the application and an entry point to it:

    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 file is converted to 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>

  • Convert Window objects (.SRW files) to XAML

    SRW file is a window source file. It has the description of Form and Component items and also Events and Methods. SRW file is converted to XAML Window Object.

    Consider an example of simple Form with one Control element:

    $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
     

    Below is the description of Form and Component converted to an 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 is converted to 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 saves size and location property of components like in a convertible PowerBuilder application:

    Convert PB Convert to WPF
    PowerBuilder Application Window WPF Application Window

  • Convert Menu (.SRM) to standard User Control

    SRM file is a menu source file. It contains the description of Menu Elements and Events. Here is an example of a simple Menu with one Element for your consideration:

    $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 File is converted to UserControl Object. Menu Elements are converted to Menu and MenuItem Controls. They are added to 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 calls Method to open simple_about window:

    event clicked;OPEN(simple_about)
    END event

    Method is converted to Class Method:

    private void m_about_Click(object sender,EventArgs e)
    {
          _simple_about simple_about = new _simple_about();
          simple_about.Show();
    }

  • Convert DataWindow (.SRD) to C# Class

    SRD file is a DataWindow source file. It contains information about 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 file is converted to class inherited from 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 Class realizes Data Access Logic. Ispirer MnMTK offers an implemented Class that uses System.Data.SqlClient and System.Data. ISDataSource Class is not convertible and can be developed or modified at a client’s request.


You can also reach us via Contacts page.

 
.NET Versions

Microsoft .NET 4.6.1 and earlier

PowerBuilder Versions

PowerBuilder 12.5.2 and earlier

Case Studies
July 20, 2014PowerBuilder to С# Conversion, United States

Our Baltimore, Maryland-based client has been providing documentation and billing solutions for hospitals for more than fifteen years. The migration task was to be performed for one of its...

...

May 27, 2014PowerBuilder to Java Migration, United States

Ispirer was engaged by an ISV company that develops and provides advanced maintenance software solutions and services in the airline software market. The company, founded in 1997, has its main...

...

Testimonials
December 3, 2012Epicor Software Corporation, United States
Progress 4GL to C# .Net Migration

"Epicor has engaged with the Ispirer team to create and refine prototype techniques for migrating certain parts of the Epicor Progress ABL code to well...

...

Feedback

The migration went very well and the customer is very happy with the results.

Read more
Industry Events