Do any development technologies stack up to PowerBuilder?

The question was almost rhetorical… but look at what I’ve done here.

Converting PowerBuilder to C Sharp .NET, WCF RIA Services and Silverlight 4

I know it is hard for some people to watch the big guys win all the time, but Microsoft has been up to some good things lately. I’ve used Visual Basic in some prior corporate projects and also done some light web development using ASP.NET several years ago.  Neither impressed me at all, they weren’t in the same ballpark as PowerBuilder as far as corporate development goes anyway.

My background, to put things into perspective here…  I am a PowerBuilder expert, a career PB developer with almost 20 years experience starting with version 3.0.   I’ve been trying to find the next best thing to PowerBuilder.

I previously wrote about was WaveMaker which is a good option especially if you like Java or your company is a Java shop.  I regret to say this, but if you are a PB developer without Java experience you are going to find yourself more comfortable learning Microsoft.

The .NET Framework 4 has evolved to become a viable competitor in the market.

Overview of Windows Communication Foundation in .NET Framework 4

PowerBuilder to WCF Conversions

WCF handles interoperability and security

WCF was created to support the move towards service-oriented software development.   In a nutshell WCF handles challenges of interoperability and security between systems of different platforms, such as Java EE and .NET that may require different security or transaction handling across local networks or the internet.

This graphic helps illustrate all of the technologies that would have been required in the prior version of .NET and were reasons that I lost interest in learning some of the prior versions of .NET.

The Microsoft site has a very detailed introduction to WCF in .Net Framework 4, and is where I borrowed above graphic from.

Overview of WCF RIA Services

WCF RIA Services is brand new this year and provides the ability to write application logic that runs on the middle tier and controls access to pre-defined queries or business logic.  WCF RIA is specific to Silverlight 4 and simplifies the authentication and data validation on the Silverlight platform.

Visual Studio 2010 generates the RIA Services from your Entity Model and allows you to customize the generated services or add extra business logic.  Unlike some tools that generate objects from your schema, Visual Studio is one of the best at handling data model changes after the fact.  This is a huge plus because let’s face it, there is almost always something overlooked before development starts.

Overview of Silverlight 4

Silverlight 4 is the platform for creating visually appealing and media rich user interfaces.  As a PowerBuilder developer you are going to have fun with Silverlight 4.  Visual Studio 2010 is an amazing IDE and Silverlight has come a long way in version 4.  The old days of VB where you had to bind a grid directly to a database are gone thank goodness.  Don’t expect datawindow functionality but you can count on an impressive arsenal of controls that almost make up for the lack of datawindow.  Another big plus and advantage over PowerBuilder is the quality and quantity of help files, sample programs and instructional videos.  The intelli-sense alone in VS2010 is enough get any object oriented PB developer up to speed very quickly.

Converting PowerBuilder Applications

So how does this technology stack up to PowerBuilder as a whole?  Not bad!  An experienced PB developer should be able to pick up these technologies and become somewhat productive in a couple weeks maybe a little longer if you are not familiar with WPF or XAML.

The Datawindow – How to manage without it

The DataGrid and Grid in Silverlight 4 allow you to bind to various data sources, has tons of flexibility and adequate events for meeting most business requirements.  Silverlight with RIA Services can even handle detecting changes made to the data and updating the database as long as your data model was well defined and all the associations made in your Entity Data Model.  I’ve found that in real-world applications much of the automatic “Marketing Magic” stuff never applies and in my application I ended up doing retrieval and update manually.

PowerBuilder Datwindow Buffers and Detecting Changes In Data

The .NET Framework has a class called ObservableCollections which inherits from Lists which inherits from Arrays (don’t quote me on this…) but the concept can be used in a remotely similar way as datawindow buffers in that they “observe changes” in the underlying rows or columns and you can perform actions based on the changes.

PowerBuilder Dataobjects – Free Form & Grid Style

Silverlight uses a basic Grid for “Free Form” style dataobjects consisting of many separate controls.

Silverlight has a DataGrid object which would be used for “Grid” style dataobjects.  It is nothing more than an XAML wrapper with one to many DataTemplate objects for each column each of them having a special “Header”  property defining the header.  Listed below is a possible mapping of these control types to PowerBuilder dataobject column edit styles.

Possible PowerBuilder to Silverlight 4 Mappings

PowerBuilder Silverlight 4 Data Template
SingleLineEdit TextBox
EditMask (Date) sdk:DatePicker
EditMask (String Format) TextBlock
Label sdk:Label
DropDownDataWindow ComboBox
DropDownListBox ComboBox
Picture Image
CheckBox CheckBox
RadioButton RadioButton
Tab/TabControl TabControl
Oval Ellipse
Rectangle Rectangle
SingleLineEdit (with code) AutoCompleteBox
RichTextEdit RichTextBox
Datawindow (Free Form) Grid (with many controls)
Datawindow (Grid, Tabular) DataGrid (with many controls)

Other Comments about the transition from PowerBuilder to .NET, WCF RIA & Silverlight 4

Overall the process of converting a PowerBuilder application went very well.  Every technical challenge was easily overcome by reading the vast amount of documentation, or finding the same thing on a developer blog.   I believe most PB developers will enjoy Silverlight 4, and eventually like it even more than PowerBuilder.  I didn’t go into the advanced possibilities with Silverlight 4, but you can do some pretty amazing things and customize just about any control, one example is a TreeView, with Templates you can define how the tree expands and display multiple columns in multiple formats for each treeviewitem.

I believe this combination is a viable PB alternative and one that most PB developers would enjoy.  If you have to choose one area to start learning in, Silverlight 4 is the most fun and the Silverlight website has tons of good information about learning and sample websites that will get you excited to start learning.  My program below doesn’t look too shabby for a weeks worth of development most of which was learning.

Here is a snapshot of my converted application, it is the Admin component to a publicly accessible link directory.  The database is Microsoft SQL Server 2008. The actual public part of the link directory this data represents is at My Orlando Information Link Directory

This program below was redeveloped in Visual Studio 2010 C#.NET with WCF RIA Services as mid-tier accessing a Microsoft  SQL Server 2008 and Silverlight 4 for the User Interface.   The Free form data grid still has a small amount of work tying the drop down value.

PowerBuilder to WCF RIA and Silverlight 4

PowerBuilder to WCF RIA and Silverlight 4

Sincerely

Rich (aka DisplacedGuy)


6 Responses

  1. Could you PM me and give me a few more facts about this, I am really fan of your site! just subscribed to your feed. Would you be be open to swapping site roll Thanks once more for putting this online. I unquestionably loved every bit of it.

Leave a Reply

Your email address will not be published. Required fields are marked *