|13 Jul 2009||#1|
| || |
Windows 7 E Best Practices for ISVs
I asked by Giorgio Sardo, to write about the E editions for Windows 7 and the changes developers need to be aware of. Since the E edition for Windows 7 will ship without  Internet Explorer 8. Giorgio is the Technical Evangelist working on IE and other web technologies.
In a previous post, we explained how Microsoft is working to fulfill our legal obligations in Europe for Windows 7. In the meantime, we received some questions about what the E editions of Windows 7 will mean for ISVs and developers.
I took the most common questions and posed them to Arik Cohen, a Program Manager who is working on the E editions of Windows 7. If you have other questions about how this could affect your applications, please add your comments to the post to let us know and we’ll work to get your questions answered.
Q: What are the differences between standard editions of Windows 7 and E editions of Windows 7?
A: The only functional difference is that the Internet Explorer 8 component is not available. This is the same component that your users can turn off in the “Turn Windows features on and off” control panel in the Windows 7 RC build. The Internet Web Platform components (for example, WebOC) are still installed and available on all editions of Windows 7, since they are part of the Windows core.
Q: How should I test my application to ensure that it will work without IE?
A: To get the same functional behavior as a clean install of the E editions of Windows 7, go to “Turn Windows features on and off” dialog and uncheck Internet Explorer 8. We recommend testing your application both without a browser installed and with a browser installed (remember to set the installed browser as the default).
Q: What happens if I try to open a link without a browser installed?
A: You will get an “Application not found” exception.
Q: What general impacts of Windows 7 E editions have you seen on applications – especially ones that rely on the WebOC?
A: During our application compatibility testing, we’ve found that the vast majority of applications work on Windows 7 E editions without any changes. This includes applications that use many of the Internet Web Platform embedding methods (including WebBrowser control, hosting Trident, and HTML Help).
For instance, the following screenshot shows a .NET application that embeds the WebBrowser control running correctly on the E edition of Windows 7.
Q: My Windows application (WPF, Win Forms, Java, etc.) uses the Web Browser control. Is there any compatibility issue?
A: Everything should work as expected. However, we’ve seen some issues when applications depend directly on a specific browser. In particular, if while using the Web Browser control, you allow the application to open new windows that do not respect the user’s default browser choice, you may see some issues.
Q: What are the most common issues that you have found in your testing of applications? And what do you recommend ISVs do about them?
A: I have seen applications encounter three classes of issues on E editions of Windows 7:
A: Use the IApplicationAssociationRegistration::QueryCurrentDefault API to determine the registered browser by checking QueryCurrentDefault(“http”, AT_URLPROTOCOL,  AL_EFFECTIVE, out progID).
Q: My app needs to open the browser. What are the best practices?
A: Run shellexecute() without hard-coding the name of the browser. Respect the user’s choice of default browser and gracefully handle cases where no browser is installed on the system.
Q: How can I check if I’m running in one of the E edition for Windows 7?
A: The GetProductInfo() API (introduced in Windows Vista) is how to tell exactly what edition of Windows you are running. The new constant values for the E editions of Windows 7 will be available in the Windows 7 SDK.
Example of code to determine if you are running on Home Premium vs. Ultimate:
internal static extern bool GetProductInfo(
out uint edition);
private void CheckEdition()
GetProductInfo(6, 1, 0, 0, out edition);
case ProductEditions.HOMEPREMIUM :
MessageBox.Show("Running on a Home Premium edition");
case ProductEditions.ULTIMATE :
MessageBox.Show("Running on an Ultimate edition");
Q: Are the E editions of Windows 7 going to be available on MSDN? If so, when?
A: Yes, both the E editions of Windows 7 and the standard editions will be available on MSDN at the same time.
Q: What about the Internet Explorer 8 Feature Pack for Windows 7 E? If and when will Microsoft release it to the public?
A: Yes, the Internet Explorer 8 Feature Pack for Windows 7 E will be available on the Microsoft Download Center soon after Windows 7 becomes generally available.
IE Technical Evangelist – Microsoft Corp
|My System Specs|
|Similar help and support threads for2: Windows 7 E Best Practices for ISVs|
|9 popular IT security practices that just don't work||Security News|
|Windows 7 AIO Best practices?||Installation & Setup|
|Best Practices Documentation||System Security|
|Best Software, Practices for copying DVDs||Music, Pictures & Video|
|What are proper audio practices?||Sound & Audio|
|Best Practices and apps for defrag?||Performance & Maintenance|
|Windows 7 E Best Practices for ISVs||News|