Advertisement
Promo

Become a member of the ZDNet UK community

Greg Lambert

View blog's RSS Feed

Application Compatibility

Getting Apps to work...

Thursday 5 November 2009, 9:02 AM

Microsoft's Program Compatibility Assistant (PCA)

Posted by Greg Lambert

I was working my through some our compatibility checks this morning when I realized that it had been a few months since I last read the Application Compatibility cookbook. This is a rich-text of application compatibility resources and every once in a while, it's worth a re-read.

One section caught my eye - the Program Compatibility Assistant, which is part of the Windows 7 OS and monitors how applications install and how application behave in a run-time environment.

In Microsoft's own words;

"The Program Compatibility Assistant (PCA) is a feature in Windows Windows 7 and Windows Server 2008 that can make older programs that have compatibility problems work better in an automated manner. PCA monitors programs for known issues. If an issue is detected, PCA notifies the user of the problem and offers to apply solutions that will be effective before the user runs the program the next time."

There are a number of features to the PCA including;

Detecting Failures in Setup Programs
Detecting Program Failures under UAC
Detecting Program Failures While Trying to Launch Installers
Detecting Installers That Need to Be Run as Administrator
Detecting Legacy Control Panels That Might Need to Run as Administrator
Detecting Program Failures Due to Deprecated Windows Components
Detecting Unsigned Drivers on 64-Bit Platforms

I thought I had a pretty good handle on the installation, legacy control panel issues, administrator requirement scenarios and the 64-bit driver installation issues but the Deprecated components area needed some more research.

I have seen the PCA pop-up dialog boxes a number of times, most commonly to advise the user that the application in question required access to a DLL that is no longer available on Windows Vista; a prime example is an application having a dependency on MSVBM50.DLL.

This got me thinking; What algorithm is the PCA using to determine a missing/deprecated component?

Is it;

1) Comparing missing dependencies against a list known missing DLL's?
- If so, are these files documented somewhere?
2) Hooking in the EXE loader (NT.DLL) and logging all failed loads

My thinking is that this is a bit reactive. We should be able to, prior to deployment be able to determine which applications will experience runtime PCA issues relating to deprecated components.

I suggest the following analysis. Each package should have all of its dependencies listed for each file contained in the target application package against;

- The target operating system
- All deployed middleware
- What files are contained within the package

Remember, this not about Windows 7 compatibility, but about your build of Windows 7, your middleware in your environment and your packages.

References:

Microsoft Compatibility Assistant: http://msdn.microsoft.com/en-us/library/bb756937.aspx


Microsoft Application Compatibility Cook Book: http://www.microsoft.com/downloads/details.aspx?FamilyId=69C63073-FE3F-47C3-BAA5-B37943AFE227

Comments on this post

CA

See this type of problem arises because ms & the developer community for the windows space chose to make there applications dependent on the operating system, instead of making the applications self standing.

The operating system is nothing more than a launching platform but somewhere along the line they have lost site of this, system dependent component use was and still is a bad idea.

Posted by CA on Nov 5, 2009 7:22 PM

Greg Lambert

This member is ranked #13 in our top 100

  • Greg Lambert
  • Corporate-Level / Senior Management, London
  • Member since: September 2009

Site Activity Rating 5

Contacts

Number of Contacts: 0

Contacts' Latest Discussions

Number of Tracked Discussions: 0

Contacts' Latest Blogs

Number of Contacts Blogs: 0


Skip Sub Navigation Links to CNET Brand Links

Help

Become part of the ZDNet community.

Newsletters