|By Chris Pollach||
|August 20, 2009 07:45 AM EDT||
PowerBuilder 11.5 was released in the third quarter of 2008 and by early 2009 had made its way into many IT development shops. The draw is a significant set of enhancements that move the development experience closer to the nirvana anticipated in the PowerBuilder 12.0 release.
PB 12.0 will complete Sybase's initial four-phase long range plan for PowerBuilder that was laid out in late 2003 (see Figure 1). In the meantime, PB 11.5 raises the bar in major areas such as application functionality, database connectivity, newer MS-Windows operating system compliance, more .NET compatibility, and Federal Desktop Core Configuration compliance.
Once again I was able to join the PowerBuilder beta program for version 11.5, which let me continue my unbroken participation in every PowerBuilder release since version 0.8. The nice thing about the beta programs is that not only do you get to take the new product for a full test drive but you also get to interact with the developers, engineers, and quality assurance people, which often gives you a much closer look at the inner workings of the product.
To top off the beta adventure I also bought a new HP Pavilion 17-inch laptop loaded with Microsoft Windows Vista Home Premium. Instead of reformatting the machine with Windows XP Professional, I decided to take the plunge and use Vista for a more hands-on experience of the controversial operating system. This was a hard decision because Sybase indicated that PowerBuilder 11.5 was being designed and certified only for the Business and Ultimate versions of Vista. However, I checked with Dave Fish who said engineering knew of no reason why PB 11.5 wouldn't work on this version. And after completing the beta program I'm happy to report that I have not only successfully used PB 11.5 on Vista Home Premium but also EAServer 6.2, SQLAnywhere 11, and ASE 15 as well. So to me this is a hidden gem and great selling point for the latest Sybase products running on what I think is the most common OS version shipping today. After this positive experience I'd strongly urge Sybase to list this Windows version on its compatibility list for PB 11.5.
The movement to adopt the .NET Framework as the preferred development platform on Windows technology has grown since I reported on the release of PowerBuilder 11.0. Even Novalys - the makers of Visual Expert for PowerBuilder - which does a yearly PowerBuilder survey, has now published its 2008 results. The poll indicates a strong commitment to moving to .NET, adopting PB 11.x, and embracing the .NET realm as Sybase heads to PB 12 running under the .NET Development Isolated Shell.
You can preview Novalys' results here.
One of the key trends identified is the move to the .NET 2/3 Framework that has now superseded Java in importance for the first time in any survey (see Figure 2).
.NET integration ranked second in enhancement demand.
So I'm quite confident in saying that Sybase's emphasis on .NET interoperability and its direction for PowerBuilder is aligned with the strategic direction developers are requesting.
And now, on to my picks!
Top Feature #1 - DataWindow
Hands down, the DataWindow gets my vote for the top feature in PowerBuilder 11.5. Now there are many enhancements to the DataWindow so I need to be a bit more specific in my description. In this case it's the one-two punch combination of the Gradient and Tooltip features. They not only give your presentation layer a real "wow" factor, but more importantly a vital communication feedback mechanism from the application to the application user is added as the user moves his mouse over any object in the DataWindow (see Figure 3). The graduated coloring allows for a really smooth surface look that definitely complements any XP or Vista themes.
The DataWindow also adds a few other bonus features as well to round-out its PowerPunch feature list.
The next key feature is the RichText Edit Style - a new Edit Mask format that let the application automatically enter a word processing mode when the user tabs into a specific column (see Figure 4). The only restriction is that you need a column length of at least 1,033 characters or more to hold the typed characters plus the rich text mark-up. Once you have columns defined in your schema to hold the large text descriptions - like product notes, employee review text, or customer letter information - build a DataWindow as per normal. Then, for each column that requires the RichText editing feature, locate the Edit tab in the corresponding property pane and change the Style Name to "RichText." You can immediately test the RichText feature in the DW Painter's Preview pane. Just tab over to the column marked RichText and you should see the DW object open a RichText tool bar overtop of the affected column. You may now enter any valid text and mark it up as you see fit - just like the application user will do in production (see Figure 5).
To complete the RichText experience, test out the full lifecycle by pressing the Save and Retrieve command buttons on the DW Painter's toolbar to force the rich text update and select back to the application. I'm sure you'll find everything else in the DW Object like the rich text experience will be as easy as the Web Service, Tree View, or Graphing - child's play compared to what you have to do in other development systems to enable this type of behavior!
To top off the panache of the DataWindow for release 11.5, Sybase has also added features like support for .PNG image types; Transparency for Pictures; and new Events and Methods to control RichText and image behaviors at runtime. This low-level control is always appreciated by the application developer who needs to finesse any object's behavior to get the exact look-and-feel that some users demand.
Top Feature #2 - Graphing
The number two key feature in PowerBuilder 11.5 in my opinion was the introduction of 3D rendering for graph objects (see Figure 6). This includes the Graph Control and the DataWindow graph presentation style. It is accomplished by PowerBuilder tapping into and utilizing Microsoft's DirectX technology feature, and is easily done by the PB developer just by checking the new "Third Render" property found in both the DataWindow and Window Painters.
This 3D rendering using DirectX again really adds some "wow" factor to your applications and I'm sure your application users will like the eye-candy and sharper images and labels. The same ease of graph rendering is also available in the DataWindow Painter. After creating the basic graph from the DW Wizard, activate the 3D Rendering property and watch the magic of the DirectX feature.
Top Feature #3 - DataBase Connectivity
The one thing that has always impressed me about PowerBuilder is its prowess in database connectivity. This is also important in large mission-critical applications that require sub-second response time for key database interactions and support for the rich feature set of the supporting DBMS. PowerBuilder 11.5 is no slouch here and raises the bar in connecting and fully utilizing the new Oracle 11g and Microsoft SQL Server 2008 technology.
For Oracle's release 11g, PB 11.5 adds a new handshake driver labeled just Oracle. The O11g driver is actually set in the Transaction Object in the DBMS property as a plain "ORA" setting (see Figure 7). This may be confusing since in prior releases we had the Oracle release in the setting (i.e., O84, O90, O10, etc). The Oracle 11g driver adds new functionality such as Session and Connection pooling; client result cache; proxy access; OCI security feature, and support for the new XML data type.
In the case of SQL Server 2008, PowerBuilder 11.5 stills uses the same driver handshakes for ODBC, OLE-DB, ADO.NET, and SNC. However, it adds some new options to activate the newer client to access the SQL Server 2008 feature set. In my case, I use the SQL Server Native Client (SNC) driver for SS2005 - so it seemed natural to continue with this mechanism for SS2008. After installing PB 11.5 you can create a new Database Profile using the SNC option to connect to SS2008. The difference in SS2008 is in a new value in the "provider" property. The new setting for the Provider property is SNCCLI10, which uses the latest SNC client (version 10.0), which supports SQL Server 2008. You can still access SQL Server 2005 by choosing the SNCCLI value, which uses the SNC version 9.0 driver (see Figure 8). Like most DBMSes, the newer driver and client can access SS2005 but you have to ensure that you don't use a SS2008 feature. I'd always recommend that you use the corresponding client version to match the DBMS server you're connecting to to avoid any feature misalignment.
Top Feature #4 - SQLAnyWhere 11
For the number four position, I've chosen a non-PowerBuilder feature - the SQLAnywhere (SA) DBMS. This software is often bypassed when evaluating PowerBuilder or considering a DBMS platform but I've developed hundreds of applications using this rich-featured database management system and put them into production without incident. The SQL Anywhere DBMS that ships with PowerBuilder is extremely solid, a great performer, easy to administer, has a small footprint, and above all a low cost of ownership. This makes teaming up a PB application with an SA one of the best combinations to deliver a first-class client/server application.
SA 11 brings some key new features to the PowerBuilder developer. The following is a list of the main features introduced in SQL Anywhere version 11. They are:
- Support for merging tables: Now allows you to merge tables, views, and system procedure results into a table or view.
- Support for login policies: SQL Anywhere now supports login policies, which is a set of options that define rules to be applied when a database connection is established for a user.
- Support for full text search: SQL Anywhere now supports full text search. Full text search can quickly find all instances of a word in a database. It uses a text index instead of scanning table rows.
- Support for regular expressions: SQL Anywhere now provides support for regular expressions using two new search conditions, REGEXP and SIMILAR TO.
- Database option settings are now recorded in the transaction log: The database option settings in effect during a LOAD operation are now recorded in the transaction log, ensuring that there are no inconsistencies in the data.
- Enhancements to the optimizer's use of indexes: Several performance enhancements have been made to the indexing capabilities of SQL Anywhere.
- Support for multiple indexes scan: The optimizer has been enhanced to consider multiple indices (up to four) to retrieve data from a base table based on multiple predicates on that table.
- Support for index-only retrieval: The optimizer has been enhanced to support index-only retrievals. With index-only retrieval, the query is satisfied using data from the indices, without having to access corresponding rows in the tables.
- Enhancements to loading and unloading data: Load data from, and unload data to, files on a client computer The database server already supports reading and writing data residing on the database server computer by means of SQL statements and functions. New features have been implemented to extend this capability to files that reside on the client computer without having to copy client files onto the database server computer. The transfer of data is done efficiently while providing security and access control for data on the client computer.
- Unload data into a variable: The UNLOAD statement has been enhanced to include an INTO VARIABLE clause to let you unload data into a variable.
- Load data from a column in another table: The LOAD TABLE statement has been enhanced to include a USING COLUMN clause that lets you to load data from a column in another table.
- Load data from a value (BLOB): The LOAD TABLE statement has been enhanced to include a USING VALUE clause so you can load data from a value expression, such as the results of a function or a system procedure.
- LOAD TABLE statement recovery and mirroring enhancements: Previously, in a mirrored database configuration, loading data from a file using the LOAD TABLE statement wasn't supported because only the LOAD TABLE statement was recorded in the transaction log, not the data being loaded. The LOAD TABLE statement has been enhanced to include three new logging option clauses: WITH CONTENT LOGGING, WITH ROW LOGGING, and WITH FILE NAME LOGGING.
- Support for immediate materialized views: You can now configure materialized views to be refreshed immediately when data changes in the underlying tables impact data in the materialized view. Views with this refresh type are called immediate views; views that aren't refreshed immediately are now referred to as manual views. Materialized views created before this release are considered manual views, and are the default when creating a new materialized view.
- Support for querying the contents of a file or BLOB string: Using the new OPENSTRING sub-clause of the FROM clause, you can now query data from a file or a BLOB string. The OPENSTRING clause lets you specify the object to be queried, as well as the schema and other parsing information for the data.
- Improved support for compressed indexes: Because of the work to improve support for compressed indices, when you rebuild a database by unloading and reloading it, the rebuilt database may be smaller than the original database. This decrease in database size doesn't indicate a problem or a loss of data.
- Read-only access to databases running on a mirror server: If you're using database mirroring, you can now connect to the database running on the mirror server. This lets you offload potentially resource-heavy reporting operations to the mirror server, while leaving the primary server available.
For my development endeavors I've already found the new Materialized View and Full Text Search to be invaluable in my latest projects.
Top Feature #5 - .NET Target Enhancements
For top feature number five, I'd like to nominate the enhancements to the .NET Target including Code Access Security (CAS), Strong Named Assemblies, Remote deployment to IIs (version 7), and SharedObjects.
The enhanced security features can be seen in the Project object for a .NET target in the Security and Sign tab pages (see Figure 9). The tab pages have been changed to let you publish an executable and grant specific permissions for its execution as well as sign an Assembly and its Manifest. These new options let the developer supply a "key file" to seed the signature identification.
When deploying a Webform application, the PowerBuilder 11.5 developer will now be able to deploy Webform components directly to a remote IIs server running either Vista or Windows 2008 operating systems. This negates the use of creating MSI installation packages, moving them to the remote server and running an MS-Install job on the target server. This should speed up the deployment of an application for System Testing, Prototyping, or Integration Testing. One would assume that production deployment would still use the .MSI method since most organizations don't allow developers access to the production environment.
The last key enhancement allows SharedObjects to be used in Webform and Winform applications. This was easily done in earlier PowerBuilder Win32 applications using the SharedObjectRegister ( ) and SharedObjectGet ( ) methods. I'm pleased to say that there's no change in functionality in the .NET realm. This new .NET Target feature enables your .NET applications to easily become multi-threaded and can certainly give your application a performance boost.
Top Feature #6 - Transaction Object Enhancements
The Transaction Object has been extended in PowerBuilder 11.5 adding two new events - DBError and SQLPreview. The key functionality change is the addition of the SQLPreview, which now allows a Win32 or .NET application to monitor or change all SQL originating in the client application. In previous releases the developer could only use this feature on the DataWindow control or DataStore object. Now the PB developer can capture, change, and monitor "in-line" SQL that appears embedded in the PowerScript language statements.
With this new SQL sensitivity all DML statements can now be acted upon regardless of where they're stored and activated in a PB-based application. This gives the developer unprecedented control over client-to-DBMS server interactions - especially for applications that require complete dynamic control over their SQL generation to get special features-enabled.
PowerBuilder 11.5 represents a significant advancement in functional capabilities such as .NET interaction, IDE productivity enhancements, and database connectivity. Sybase has definitely provided the application developer with key feature advancements that align PowerBuilder with new operating system and DBMS capabilities. I'd consider the "hit" features to be PowerTips in the DataWindow, graduated colors, DirectX graphing, shared objects, PNG image support, Oracle and SQL Server connectivity, rich text columns," and FDCC government standard compliance. Sybase had a few "misses" in not implementing PowerTips on all remaining controls and not supporting DirectX version 10 (the native version installed with Vista). Over all though, I'd rate PB 11.5 a solid nine out of 10 in its update appeal...a must in my opinion for the discerning developer and IT department.
- Where Are RIA Technologies Headed in 2008?
- PowerBuilder History - How Did It Evolve?
- Creation and Consumption of Web Services with PowerBuilder
- Cloud People: A Who's Who of Cloud Computing
- DDDW Tips and Tricks
- Working with SOA & Web Services in PowerBuilder
- Cloud Expo 2011 East To Attract 10,000 Delegates and 200 Exhibitors
- Dynamically Creating DataWindow Objects
- OLE - Extending the Capabilities of PowerBuilder
- DataWindow.NET How To: Data Entry Form
- Custom Common Dialogs Using SetWindowsHookEx
- Cloud Expo and The End of Tech Recession
- Solutions for Optimizing ASP.NET Applications
- Dynamic SQL
- Office 2003 Toolbar: A New Look For Your Old PowerBuilder App