Welcome!

AJAX & REA Authors: John Funnell, Bob Little, Kevin Hoffman, Maureen O'Gara, Onkar Singh

Related Topics: PowerBuilder, .NET

PowerBuilder: Article

Vista-Certifying Your PowerBuilder Application

Its three major process components: learn, build, and certify

As a software vendor developing a Windows-based PowerBuilder application often competing with Web-based applications, we decided that we need to embrace as many Windows advantages as we can. As you know, the latest hot-ticket item in that arena is Windows Vista. When we decided to pursue Vista certification for our product, we didn't fully understand what that really entailed. This article will give you some insight into how to structure a project to certify your PowerBuilder application for Vista - and it needs to be treated as a project, since it involves many different components.

Our company - AssetPoint - develops, sells, and supports TabWare EFx, an Enterprise Asset Management (EAM) software package developed with PowerBuilder. We are also a Microsoft Gold Certified partner, and as such we decided to take full advantage of the Vista early adoption partner benefits that Microsoft offers. Microsoft sponsors two programs for Vista compliance - the "Works with Vista" logo program and the "Certified for Vista" logo program. The requirements for the "Certified for Vista" logo program are much more strenuous than for the "Works with Vista" logo program and, correspondingly, the benefits are more generous. So we decided to go for the "Certified for Vista" logo for TabWare EFx. As early adopters of Vista (defined as submitting our application for certification prior to May 1, 2007), we were eligible for marketing money from Microsoft, prime product placement on Microsoft Web sites, and reimbursement of the certification testing fees. Also, since Vista endeavors to improve the security and stability of the Windows platform, Vista-certified applications enable IT managers to take full advantage of these improvements. We wanted our application to be "IT-friendly" in that regard. Our CEO directed us to take advantage of all of these initiatives and so we embarked on the "Vista Certification" project. So...how do you launch a Vista certification project? The project had three major process components: learn, build, and certify (see Figure 1). And each of these process groups has components.

Learn
The learning process can be overwhelming since it involves so many parts. You have to become knowledgeable about Vista, its compliance requirements, and the certification process. You must also assess your application's compliance with the requirements to determine what changes need to be made. After we went through the initial learning curve, we knew we needed a multi-skilled project team, which we assembled out of the following team members:
Microsoft Tools Expert - Having a team member who understands how to interpret and perform the Microsoft tests is crucial. Microsoft provides an SDK for development and testing, so understanding how to use those tools is a requirement.
PowerBuilder Expert - Our TabWare EFx PowerBuilder application had to be modified to comply with the new Vista security and stability requirements; so a PowerBuilder resource was required to address these issues.
Testing and QA Analyst - An application QA analyst must be on the project team to ensure that the application behaves as expected after any Vista-related modifications are made. You must submit application test plans that the testing center will use to verify that the application executes normally within the Vista parameters. So the QA analyst will have to assemble and verify your application's test plans that the testing center will then use in its testing.
DBA - A database analyst will have to establish a testing database for internal use. The DBA will assist in troubleshooting connection and database settings issues that arise from making the application Vista-compliant. The DBA will also create the database scripts and setup instructions for submission to the testing center.
Project Management - There's a role for project management in overseeing the whole process and getting it through to application submission and acceptance.

Build
The Build process involves three components: Microsoft installation changes, certification pre-testing, and PowerBuilder application changes. After studying the requirements and test cases we decided the first step was to create a new installer. Microsoft's Windows Installer was chosen to ensure full compliance. Unfortunately the Visual Studio setup project was too limited. Microsoft's Orca program was also too complex as is the Windows XML Installer program. We finally decided to use the open source WixEdit program to create a new Vista-compliant installation package.

MSI - Our application needed to use the Windows Installer (MSI). ClickOnce was also an option but would have required additional application changes.
ICEs - The installation package mustn't get errors from the Internal Consistency Evaluators. ICE checks the installation package for potential errors to prevent security or stability issues during installation.
UAC - User Account Control compliance was achieved by requiring the application installer to have administrative privileges. The installation package can't assume that the installer will also be the user. No user-specific settings such as INI or registry entries can be written during installation.
Folders - The installation package must default installation directories to the correct Vista locations.
Package Identity - The installation package must be configured to work properly with the Software Explorer. Setting the version, product and manufacturer information is required. Properly configured, users can add, modify, remove, repair, or roll back the installation.
Windows Resources - Windows files and registry keys protected by Windows Resource Protection (WRP) can only be installed by a Microsoft service pack or an approved installation package. Merge modules are available for installing the Microsoft runtime files needed by PowerBuilder.
Reboots - The installation process should avoid forced reboots. The restart manager should be used if the application requires that the system be rebooted. Even though our application didn't require a reboot, the installation package had to contain a "files in use" dialog so users can automatically close and restart other running applications if necessary.
Command Line - The installation package had to support command line installation. The package needs command line parameters for each user input value. Command line support provides enterprise deployment flexibility.

The next step is to pre-test your application - this step is really understated. Our installation package and application were run through a pre-test using the test cases and recommended tools. Most of the test cases actually test the installation of the software. All violations were documented and divided into four different categories:
Fixable - Fixable means just that; code changes should do the trick. In our case these included protected resource violations, limited user access issues, and non-standard default directories. The application was searched to find all areas requiring modification and a work plan was created and executed.
Waiver Required - Waivers are needed for all third-party EXEs and DLLs. The Sybase PowerBuilder runtime files and Microsoft runtime files required by our application were identified and listed on the waiver application form. Fortunately unsigned third-party files are one of the waivers allowed.
Nice to Have - Nice-to-have issues are mostly cosmetics that can give the application a more Vista-like appearance; you might want to take advantage of some of the Vista features that can "light up your application."
Showstopper - The most dreaded of all, showstoppers are failed test cases that aren't fixable with application code. Even one showstopper would automatically nix certification with no possibility of a waiver. In our case these included third-party protected resource violations, third-party limited user access issues, the inability to sign PowerBuilder EXEs and DLLs, the inability to add manifests to PowerBuilder EXEs and DLLs, and a Windows Error Reporting failure. Each showstopper had to be analyzed and researched to try and find a way past the problem. While early adopters have some advantages, they also have disadvantages - being first means there's little information available to help resolve a problem so we learned a lot about certification during this process. Most of the showstoppers were only a problem for Vista certification and didn't prevent the application from functioning. The only way to see them was to run as a limited user with the test tools monitoring the application.


More Stories By John Martin

John Martin is a senior systems architect with AssetPoint, with over 25 years of experience in the IT industry. He is responsible for Web-based and .NET product offerings.

More Stories By Kay Jenkins

Kay Jenkins is the EVP of Products and Services at AssetPoint, with 20 years of IT experience. Her responsibilities have ranged from application development to project management to her current corporate management responsibilities. She is responsible for AssetPoint’s SaaS offerings, Product Development and Support for TabWare and its peripheral products, infrastructure, and Professional Technical Services.

More Stories By Jeff Fetzer

Jeff Fetzer is a senior systems architect with AssetPoint, with 25 years of IT experience. Jeff has been working with PowerBuilder products for 15 years, and at AssetPoint is responsible for TabWare Efx’s application development project team.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
peter_wong 07/09/09 11:49:00 PM EDT

The text "Setting "MultipleActiveResultSets=False" in the ProviderString in the DBParm string when connecting to the database took care of it. " is not right, it should be 'MARS Connection=false'.