Amadeus Consulting
Search
BLAST!
 
 
Picture Quote
"Amadeus clearly knows how to manage a large custom software project and to move from concept to production."
- Fran L. Iannucci, MS, PMP
Systems Manager, Business Information Services

Architecture Blog

A word of warning: our architecture blog isn’t for the faint of heart. Amadeus Consulting has its roots in Enterprise C++ applications and we really do have some interesting (at least to us) and passionate debates about technology. For example, why are there two different xaml implementations – one for WPF (Windows presentation foundation) and WCF (Windows Compact Framework)? This is the place to go to learn about .NET frameworks, patterns and architecture best practices.

July 14, 2009
The Internet Explorer 8 Problem
Posted: 5:32 PM -06:00

IE 8 was officially released on March 19, 2009. Since that time IE 8 has gained around 7% market share. Market share will only continue to increase since the browser will be available through Windows Update. Despite having a similar look and feel to IE 7, IE 8 is a completely new browser. Everything from the process model to the rendering engine has been significantly changed with the goals of improving stability, performance, and standards compliance. IE 8 is the first Microsoft browser to pass the Acid2 test. This is a huge step forward for Web developers since all current versions of the major browsers are now relatively standards compliant.

IE 8 Modes
However, all is not well in Web development land. IE 8 does present some new challenges for developers. The first is understanding IE 8's rendering modes.

Standards Mode
The default mode in IE 8 is Standards mode. Standards mode is pretty self explanatory: it's IE 8's best attempt at complying with Web standards. Standards mode has better support for CSS 2.1 and does away with IE 7's challenging hasLayout DOM property.

Compatibility View
The other major mode of rendering is Compatibility View. This mode exists to allow backward compatibility with sites that are optimized for IE 7. In a nutshell, this mode forces IE 8 to render pages as much like IE 7 as possible. Sites can force the browser into this mode through the use of meta tags and HTTP headers (see below).

Internet Explorer 7
The developer toolbar that ships with IE 8 makes a third rendering mode available, Internet Explorer 7 mode. This mode forces IE 8 to use the IE 7 rendering engine. While this is intended to let developers see what sites look like in IE 7, there are still some slight differences in the rendering particularly in the width of tables.

Testing
The next hurdle for developers to overcome is one of testing. The new rendering modes essentially mean that we now have three new browsers to test rather than just one. Users can choose to display all Web sites using Compatibility View so we must ensure that sites function properly and look correct in both Standards mode and Compatibility View. Of lesser importance is testing in Internet Explorer 7 mode since it is only available through the toolbar and cannot be used as a permanent setting. We will need to test separately for IE 7.

Sites in production
Most sites currently in production should continue to function and render correctly in IE 8. Notable exceptions to this are sites that make heavy use of Javascript or third party controls. Regardless of a site's reliance on outside code, we will need to verify that supported production sites are functional.

Force Compatibility
For sites that do not work in Standards mode, we can quickly fix them with an "IE=EmulateIE7" tag. This tag can be set on a page-by-page basis using a meta tag. Sites that have master pages should have the tag set in the master's head element. The tag can be applied site wide using an HTTP header. It's important to note that forcing IE 7 compatibility is a short term fix for existing code bases only. New development must be IE 8 compliant.

Third Party Tools
One of the last major issues with IE 8 is with integrating 3rd party products. Presumably, as IE 8 matures and other developers have a chance to catch up this will be less of an issue. The two libraries that we have had trouble with in the office are Google Maps API and Telerik controls.

Google Maps API
There appear to be some problems with handling click events, locating pins, and generally rendering maps with the API. At the moment there does not appear to be a good fix for these problems short of forcing Compatibility View. This appears to be the one valid exception to the rule of new development needs to be compliant with IE 8.

Telerik Controls
Any version of Telerik prior to Q1 2009 SP1 are not guaranteed to work in IE 8. Older versions of the RadGrid control's client side API and the RadComboBox control, in particular, fail miserably in IE 8. Even in Compatibility View, IE 8 will not correctly render older versions of the RadComboBox. Telerik has been very aggressive in fixing these kinds of errors so upgrading is the only fix for problems in existing sites. There is a caveat to upgrading: skins for older versions of the controls are not compatible with Q1 2009 SP1. Fortunately, Telerik has provided an online skin converter to assist in the upgrade. New sites should use Q1 2009 SP1.

More Information
The definitive source of IE 8 information from Microsoft is the Developer Information Index for IE 8.



View All Posts
Recent Posts
Silverlight Development: Bing Maps with Silverlight Control Drops Beta
Apple Tablet Update: the iPad™ Arrives
The Top 5 Features of the Apple Tablet We Hope are True
"W" is the New "I"
Web Software Development - Things to Remember
Software Project Rescue: Development projects fail. How do you save them?
Top Ten Things You Should / Shouldn’t Do When Writing Code
Custom Software Development: Why Old Code Isn’t Bad Code
The Internet Explorer 8 Problem
Implementing a struct in C#
 
   
     
     
 

Zero Waste Winner

2006 and 2007 Inc. 5000

Mercury 100 - Fastest Growing Companies

40 Under 40

Women Owned Business of the Year

Winner - Microsoft XP Challenge

Microsoft Gold Certified Partner

Microsoft Silverlight Partner