YOUR FEEDBACK
Gregor Rosenauer wrote: well, not what's your take on this? Did I miss a second page of this article or...
AJAXWorld RIA Conference
Early Bird Savings Expire Friday Register Today and SAVE !..


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
POWERBUILDER LINKS YOU MUST CLICK ON


PowerBuilder Editorial: The State of the State
PowerBuilder Editorial: The State of the State

Back in 2002, Sybase announced their four-phase approach toward adding .NET support to PowerBuilder. Phase 1 was the implementation of web services in PB9 and Phase 2 was the release of DataWindow.NET, which was packaged with PB 10. Phases 3 and 4 were the more significant phases. In Phase 3, Sybase added a number of .NET target types to PowerBuilder 11 and added support for calling non-visual .NET assemblies from PowerScript. The 4th phase will be completed in PowerBuilder 12 and involves “...support for Windows Presentation Foundation (WPF) ... as well as full support for visual controls and drag-and-drop programming with .NET within the IDE”.1 We’re at the mid-point between the release of PowerBuilder 11 (phase III) and the release of PowerBuilder 12 (phase IV, which should complete .NET support). I thought it might be beneficial to review the progress so far and reassess what the future looks like.

Web Services
While PB9 did provide some original support for web services, it wasn’t until the 10.5 release when the .NET engine was added that such support became highly useable. The previous engine, built on the EasySOAP open source library, became largely feature frozen in 2002 when the EasySOAP project essentially became abandonware (http://en.wikipedia.org/wiki/Abandonware). The .NET engine introduced with PB 10.5 did bring the client proxy creation capability to current standards, but there are still some problems with the implementation. For example, PowerScript functions can’t return arrays, and the proxy object is limited to what PowerScript can support. As a result, you currently can’t create a proxy for a web service method that returns an array and expect to be able to do anything with the result (it gets cast as an “any” data type). There is also currently no support for WS-Security (most likely because that’s an add-on feature for .NET 2.x, not part of the original SDK) and for protocols other than SOAP (e.g., REST, JAX-RPC). It’s possible that those latter two issues will be addressed as Sybase implements support for WCF (Windows Communications Foundation) in PowerBuilder 12.0.

DataWindow.NET
DataWindow.NET hasn’t stood still since it was first introduced and packaged with PowerBuilder 10 either. Version 1.5 introduced the WebDataWindowControl. Version 2.0 added support for ADO DataSets as a data source, the TreeView presentation style and autosize height for non-detail bands. Version 2.5 finally brought the DataWindow Designer into the VS IDE, added support for the TreeView presentation style to web DataWindows, and added web services as a data source.

There are still some impediments to acceptance of DataWindow.NET into traditional .NET shops though. The first is the requirement to keep the DataWindow source in a PBL. A PBL makes sense to PowerBuilder developers because the compiled version of objects is kept there. It makes absolutely no sense in a VS.NET environment, particularly because a DataWindow isn’t compiled. It makes it confusing for new developers to get started and hinders proper source code management. Perhaps a bigger issue is the amount of work it takes to deploy an application that uses DataWindow.NET. The developer has to remember to include the PBD that contains the DataWindow, four or more unmanaged code runtime files, and (if PDF is used) download and install GhostScript.

WinForm Targets
WinForm targets were introduced in PowerBuilder 11, which is pretty much just a .NET compile of the Win32 version of the application. Somewhat akin to the machine code compilation, the PB source code is converted to C# and then compiled. One difference though, introduced in PowerBuilder 11.1, is the ability to do an incremental compile (machine code compiles are always an all or nothing proposition).

In the future, this particular target may become more useful as Win32 is phased out in future versions of Windows. However, at the moment, the primary advantage of this particular target is that you can include conditional code blocks within PowerScript that reference non-visual .NET assemblies (either .NET system assemblies or third-party assemblies) and that code becomes active when compiled in a WinForm target.

Unfortunately, the syntax that you need to use within the conditional code block is neither C# or PowerScript, but a morph of the two that is poorly documented and does not yet provide full support for all .NET language features. That, and the limitation of such usage to non-visual assemblies, has restricted the traction this particular feature has obtained. Because there are some Win32 features that are not supported in a WinForm target, a lot of testing that has to be done to ensure that a WinForm target works the same as the Win32 version and it has limited advantages.

Perhaps a bigger question surrounds the future of WinForms, regardless of the tool used to create them. Microsoft added WPF (Windows Presentation Foundation) to .NET as of version 3.0. There is a great deal of emphasis on it as the future for doing graphical interfaces. This has resulted in a great deal of debate within the .NET community about whether WPF is currently robust enough to handle LOB (line of business) applications.2 Sybase has already demoed the WPF DataWindow, so they are working toward supporting WPF.

SmartClient Targets
SmartClients are actually a subcategory of the WinForm target, but I thought that they are worth a special mention. This is the other major advantage I see to a WinForm deploy, the ability to deploy a “rich client” application to a client without the impact on the client configuration that rich clients generally require. Usually this feature works well. There’s still some area for improvement though, mainly having to do with the ability to easily customize how the application is deployed (how the web page appears, etc.). ClickOnce technology, which the SmartClient is based on, is also supported as a deployment option for WPF-based applications, so we should continue to have that capability regardless of whether we use a WinForm or WPF approach in later versions of PowerBuilder.

About Bruce Armstrong
Bruce Armstrong is a development lead with Integrated Data Services (www.get-integrated.com). A member of TeamSybase, he has been using PowerBuilder since version 1.0.B. He was a contributing author to SYS-CON's PowerBuilder 4.0 Secrets of the Masters and the editor of SAMs' PowerBuilder 9: Advanced Client/Server Development.

PBDJ LATEST STORIES . . .
Join Scott Guthrie as he discusses Microsoft’s commitment to web standards development, Rich Internet Applications and how Microsoft is contributing to help move the web forward. Join Adobe’s Kevin Lynch as he demonstrates how Flash and HTML come together to make the most engaging,...
Particularly in a means of moving PowerBuilder applications to the web. What I’m looking for doesn’t require a server license or the installation of unmanaged code to the web server, and works well across different browsers (not just Internet Explorer). The WPF DataWindow will help...
"The rise of Enterprise Architecture is proof that organizations need to manage the impact of changes in competition, technology and regulations across their enterprise," said Dan Lahl, director of Intelligent Enterprise for Sybase. "PowerDesigner 15's unique Link and Synch technology ...
With PowerBuilder 11 Sybase gave developers what we have long hoped for – the possibility of taking an application created in a client/server architecture and turning it into a Web application, almost without having to move the code; and it's better if you don't use a server applicat...
Like any standard .NET application, the PowerBuilder .NET application follows the common language runtime rules regarding the permissions needed to do the operation the application aims to do. The code access security (CAS) provided by the .NET Framework is a security mechanism that a ...
PowerBuilder 11.0 supports deploying existing PowerBuilder client/server business applications as an ASP.NET WebForm application. This greatly improves developer productivity without having to learn a new development language and preserves PowerBuilder development skills. Although the ...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021


SYS-CON FEATURED WHITEPAPERS

ADS BY GOOGLE
BREAKING POWERBUILDER / SYBASE NEWS

Sybase 365, a subsidiary of Sybase, Inc. (NYSE:SY), the global leader in mobile mes...