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
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|
|EditMask (String Format)||TextBlock|
|SingleLineEdit (with code)||AutoCompleteBox|
|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.
Rich (aka DisplacedGuy)