SlideShare une entreprise Scribd logo
1  sur  57
Internet Explorer 8 Application
    Compatibility
    Firestarter

1
Session Objective(s):
      Understand IE7 Compatibility
      Understand IE6 Migration
    Learn how to employ compatibility
    Know where to go for migration assistance




2
3
Page Built For Internet                    Page1. IdentifyInternet
                                                         Built For browser
         Explorer 6                                 Explorer 7
                                                        2. Serve right page


                          Page Built To Standards




                                    I’m Chrome
                                   I’m Firefox
    I’m IE6                                                          I’m IE7
                                                                               7
              6
4
1. Identify browser
                              2. Serve right page


    Page Built To Standards




             I’m Chrome
            I’m Firefox
               I’m IE8

                     8
5
Previous versions of IE offered two
    alternatives
      Quirks – Roughly compatibility IE 5.5
      Standards – Latest standards for current
      browser
    The problem is that meaning of “standards”
    changes
    New options in Internet Explorer 8



6
Quirks mode works the same



             Internet      Internet
            Explorer 6    Explorer 7


    Update for IE8          Update for IE8
    Standards               Standards
                           or
                            Compatibility mode
7
8
Positive User Experience                    Undefined User Experience
     More Effort From Site                         Less Effort From Site




                                                         3. Display Intranet
                                                       Sites in Compatibility
                             2. Implement                       Mode
    1. Code to IE8
                               the X-UA-
      Standards
                            Compatible Tag

                                                                    5. Rely on User
                                             4. Rely on the
                                                                        Pressing
                                              Compat List
                                                                    Compat Button


9
CSS 2.1 compliance
          DOM Improvements
          HTML Improvements
CSS 2.1
          Acid2 Test compliance

          This means
HTML
             Data URI Support
             Improved
             Namespace
             Support
             And more
ACID 2
Site developers can tell IE8 what version of
      IE it was designed for on a per-site bases or
      a per-page basis by including a simple tag
                   Content Value Meaning
                                   “Quirks” mode
                   IE=5
                                   Always use IE7 mode
                   IE=7
                                   Display in IE7 mode unless site has
                   IE=EmulateIE7
     recommended
                                   “Quirks” DOCTYPE
                                   Always use IE8 mode
                   IE=8
                                   Use this tag to override compatibility
                   IE=EmulateIE8   view on client machines and force IE8
                                   mode
                                   Display in latest mode; In the IE8
                   IE=Edge
                                   release, this is equivalent to IE=8


11
By default, IE8 displays
     “Intranet” sites in IE7
     mode
     Eases transition for
     Enterprises who have
     LOB applications in
     “Intranet”
     This feature is on by
     default
     User can turn off
     IT Pro Can use Group
     Policy to display intranet
     sites in IE8 mode instead
12
If a site is a top
                          worldwide sites AND a
                          compatibility problem
                          has been reported to
                          Microsoft
                          IE8 will automatically
                          show the site in
                          compatibility mode
                          Opt-out using X-UA-
                          Compatible tag or web
                          form
     res://iecompat.dll/iecompatdata.xml
13
If site not covered elsewhere, user can push
     the compat button
     Placed next to refresh button
     More discoverable in IE8 RC1
     Similar to X-UA-Compatible tag
     (IE=EmulateIE7), but User-Agent String also
     shows browser is IE7
14
15
16
1.   Short term: Use IE=EmulateIE7 tag
     2.   Test sites against IE8
     3.   Code to IE8 Standards
     4.   Long Term: Use IE=EmulateIE8 tag




17
Specifying IE version support
     Content Value           Meaning
     IE=5                    Display in Quirks mode
     IE=7                    Display in IE7 Standards mode
     IE=EmulateIE7           Display standards DOCTYPEs in
                             IE7 Standards mode; Display
                             quirks DOCTYPEs in Quirks mode
     IE=8                    Display in IE8 Standards mode
     IE=EmulateIE8           Display Standards DOCTYPEs in
                             IE8 Standards mode; Display
                             Quirks DOCTYPEs in Quirks
                             mode. Use this tag to override
                             compatibility view on client
                             machines and force Standards to
                             IE8 Standards.
     IE=Edge                 Display in latest mode; In the IE8
                             release, this is equivalent to IE=8
     Declared <META> overrides <!DOCTYPE>
18
Quirks
     <!DOCTYPE HTML PUBLIC ―-//W3C//DTD
       HTML 4.01 Frameset//EN>
     • (or no DOCTYPE)
     Standards
     <!DOCTYPE HTML PUBLIC ―-//W3C//DTD
       HTML 4.0 Strict//EN>




19
Compatibility Mode Options
       On a per-site basis, add the custom HTTP
       Header:
       X-UA-Compatible: IE=EmulateIE7
       Web.Config File
       <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?>
       <configuration>
         <system.webServer>
           <httpProtocol>
             <customHeaders>
               <clear />
               <add name=quot;X-UA-Compatiblequot; value=quot;IE=EmulateIE7quot;>
             </customHeaders>
           </httpProtocol>
         <system.webServer>
       </configuration>

20
Add a tag right after <head>
         <meta http-equiv=quot;X-UA-Compatiblequot;
           content=quot;IE=EmulateIE7quot; />
     <!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.01 Strict//ENquot;>
     <html>
     <head>
       <!– Tell IE8 to display in IE7 Compatibility mode -->
       <meta http-equiv=quot;X-UA-Compatiblequot; content=quot;IE=EmulateIE7quot; />
       <title>My Web Page</title>
     </head>
     <body>
       <p>Content goes here.</p>
     </body>
     </html>



21
22
It’s not as simple as using EmulateIE8…
         …and it shouldn’t be
                                   1. User clicks compat
                                      button for foo.com
                                   2. Sales.foo.com
               Foo.com
                                      updates their site,
                                      sets EMULATEIE8
                                      metatag
                     Sales.foo.com 3. Now what happens to
     Dev.foo.com
                                      other domains-
                                      Foo.com,
                                      Dev.foo.com?


23
Top level domain needs to authorize
     removal
     IE looks for IEStandards.xml
       Located at server root of the top level domain
       Contains <IE8StandardsMode>




24
If file exists and contains tag
        Remove the domain from compat list
     Else
        Leave the domain in the compat list
        Wait 30 days to check again
     Ignore expiration (for testing purposes)
     [HKCUSoftwareMicrosoftInternet
       ExplorerBrowserEmulation]
     IgnoreExpiryPeriod=1


25
Compatibility mode by default for Intranet
       Line of business applications
     Implement Metatag for Internet sites…
       …and Intranet sites that don’t run in Intranet
       zone
       Excellent feedback from RDP Customers
         Easy to implement
         Good compatibility for IE7 sites
     Remember this is a temporary solution
       Move to standards mode as soon as possible

26
27
Used to process conditional comments
     Opportunity to emit markup based on the
     browser version
     <!—[if gte IE 5.5]
     <p>you are using IE 5 or higher</p>
     <![endif]-->




28
Commonly used to emit version-specific
     style sheets
     <!—[if IE 6]
     <linkrel=―stylesheet‖ type=―text/css‖
        href=―/stylesheets/ie6.css‖/>
     <![endif]-->
     <!—[if IE 7]
     <linkrel=―stylesheet‖ type=―text/css‖      Future
        href=―/stylesheets/ie7.css‖/>
                                              proof with
     <![endif]-->
                                                 gte
     <!—[if gte IE 8]
                                               operator
     <linkrel=―stylesheet‖ type=―text/css‖
        href=―/stylesheets/standards.css‖/>
     <![endif]-->

29
Browser’s identity
       Reported to web server in HTTP header
       Available client-side via script
     javascript:alert(navigator.userAgent)




30
User Agent String can be used on any
     browser
       Conditional comments are specific to IE
     Version vector used to conditionally emit
     markup
     User Agent String used for branching in
     program logic
       Commonly used to block new versions of a
       browser


31
Conditional comments
       Honored by compat mode
       May need to be changed for standards mode
         Use GTE operator as best practice
     User Agent String
       Beware logic that relies on version checking
         Especially blocking
       IE8 can be detected even in compat mode
       Mozilla/4.0 (compatible; MSIE 7.0;
         Windows NT 6.0; Trident/4.0; SLCC1;
         .NET CLR 3.5.21022)

32
JSON
        Built-in implementation
        May conflict with custom implementation
     LCIE
        COM Marshaling
        Components may no longer run in the same
        apartment (or process)
     3rd Party Plug-ins
        Sun JVM


33
34
What’s different from IE6
       Standards approach
       Well known bug fixes
     What it means for application compatibility
       Rendering issues
         CSS and HTML
         JScript




35
Rendering modes crucial to how a page
     renders
     2 rendering modes
     Quirks
        Focus on backwards compatibility
        Not standards based
     Strict
        Based on W3C standards. Less focus on
        backwards compatibility.


36
Important to understand for migration
     Can seriously effect page layouts when
     migrating between browser versions as you
     will see.




37
XML Declaration
     Quirks Box Model
     CSS Filters




38
Is intended to specify XML version
     Usually used in XHTML documents
     Required to be placed at the start of the
     document.

     e.g. <?xml version=quot;1.0quot;?>




39
DTD = Document Type Definition
     In IE6 the DTD sets the mode (quirks/strict)
     Has to be at the start of the document
     In IE6 if DTD is not the first element it
     renders “quirks” mode
     Hence a XML declaration sets page into
     “quirks” mode in IE6 even if the author
     intended the page to use “strict”
     This order bug is fixed in IE7

40
<?xml version=quot;1.0quot;?>
     <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0
       Transitional//ENquot;
       quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-
       transitional.dtdquot;>

       IE6 renders quirks, IE7 renders strict
       Result is significantly different layout
       behaviour


41
Remove XML declaration
     Use a DTD that will put IE7 into quirks mode
     <!DOCTYPE html PUBLIC>
     Insert a comment before the DTD to set IE7
     into quirks mode
     <?xml version=quot;1.0quot;?>
     <!-- ... and keep IE7 in quirks mode -->
     <!DOCTYPE ...



42
Understand the issue – Strict vs. Quirks
     Weigh up the pros and cons of a chosen
     solution
     Migrate layout in appropriate manor




43
This is a bug in the implementation of
     Cascading Style Sheets
     Appears when in “quirks” mode
     W3C standards state border and padding
     should be added to width and height
     In IE6 quirks mode border and padding is
     included in width and height size




44
45
46
Total width/height includes border + padding
     A working layout in “quirks” will render
     differently in “strict” due to box model
     differences
     Common solution usually include re-
     designing webpage to use “strict” mode
     which uses W3C box model




47
Used to work around browser differences
     Workarounds making use of bugs or
     unimplemented CSS
     Used to:
       Render on other browsers and hide from IE
       Render on IE and hide from other browsers




48
Used to apply CSS rules in IE, while hiding
     them from other browsers.
     Commonly used to address box model
     problems
     Exploits a bug in the way that the older
     versions of IE interpret the “star” - or
     “universal selector”




49
* html .myDiv {
        background-color:blue;
     }

     <div class=quot;myDivquot;>Test Content</div>




50
51
Obviously not designed for this purpose
     Bug fixes in IE7 now prevent certain filters
     from being used
     Can be a major source of rendering issues
     when migrating from IE6




52
If migrating forward create standards-based,
     cross-browser designs.
     For compatibility look at using conditional
     comments to isolate IE6 workarounds




53
This is about migration, not compatibility
     Manual rather than programmatic strategy
     Compatibility to IE6 isn’t available, so
     migrate
       Except for Quirks mode
     Refer to existing guidance today
     http://www.msdn.com/iecompat
     More assistance on the way...


54
IE Compat Test Tool
       Part of ACT
     New guidance in latest
     version
       Definition
       Example
       Remediation
     Covers much of the
     application compatibility
     space


55
Feature Overview - www.microsoft.com/ie8
     Engineering Blog - http://blogs.msdn.com/ie
     Safety & Privacy Features
     www.microsoft.com/windows/internet-explorer/features/browse-privately.aspx

     Business Value of IE 8 & EV SSL Certificates
     www.microsoft.com/ie/ev

     User Control & Privacy Feature Guide
     www.microsoft.com/ie/privacy

     Internet Explorer Administration Kit (IEAK)
     http://technet.microsoft.com/en-us/ie/bb219517.aspx

     IE Compatibility Center - http://msdn.com/iecompat



56
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
     conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
                                 MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Contenu connexe

Similaire à Internet Explorer 8 Application Compatibility - IE8 Firestarter

Internet Explorer 9
Internet Explorer 9Internet Explorer 9
Internet Explorer 9Vasu Jain
 
Compatibility testing
Compatibility testingCompatibility testing
Compatibility testingRobin0590
 
So go installation guide
So go installation guideSo go installation guide
So go installation guideJavier Urbaneja
 
夜宴42期《Gadgets》
夜宴42期《Gadgets》夜宴42期《Gadgets》
夜宴42期《Gadgets》Koubei Banquet
 
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Lachlan Hardy
 
Internet Exporer 8 BETA PREVIEW
Internet Exporer 8 BETA PREVIEWInternet Exporer 8 BETA PREVIEW
Internet Exporer 8 BETA PREVIEWLauren Cooney
 
Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...
Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...
Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...camp_drupal_ua
 
Simple web browser
Simple web browserSimple web browser
Simple web browserSohag Babu
 
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...Vivek Ganesan
 
How Scala, Wicket, and Java EE Can Improve Web Development
How Scala, Wicket, and Java EE Can Improve Web DevelopmentHow Scala, Wicket, and Java EE Can Improve Web Development
How Scala, Wicket, and Java EE Can Improve Web DevelopmentBruno Borges
 
Java ide comparision
Java ide comparisionJava ide comparision
Java ide comparisionRaj
 
Pathway,I Ts Web Client Programming Manual
Pathway,I Ts Web Client Programming ManualPathway,I Ts Web Client Programming Manual
Pathway,I Ts Web Client Programming Manualguest2dfc87
 
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...Ovadiah Myrgorod
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web IntegrationKazuchika Sekiya
 

Similaire à Internet Explorer 8 Application Compatibility - IE8 Firestarter (20)

XTech May 2008
XTech May 2008XTech May 2008
XTech May 2008
 
Web Space10 Overview
Web Space10 OverviewWeb Space10 Overview
Web Space10 Overview
 
Internet Explorer 9
Internet Explorer 9Internet Explorer 9
Internet Explorer 9
 
Compatibility testing
Compatibility testingCompatibility testing
Compatibility testing
 
So go installation guide
So go installation guideSo go installation guide
So go installation guide
 
Banquet 42
Banquet 42Banquet 42
Banquet 42
 
夜宴42期《Gadgets》
夜宴42期《Gadgets》夜宴42期《Gadgets》
夜宴42期《Gadgets》
 
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8Welcome to IE8 - Integrating Your Site With Internet Explorer 8
Welcome to IE8 - Integrating Your Site With Internet Explorer 8
 
Internet Exporer 8 BETA PREVIEW
Internet Exporer 8 BETA PREVIEWInternet Exporer 8 BETA PREVIEW
Internet Exporer 8 BETA PREVIEW
 
Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...
Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...
Vadim Mirgorod.Best practices for cross browser compatibility of drupal websi...
 
Simple web browser
Simple web browserSimple web browser
Simple web browser
 
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
[JavaOne] Demystifying WebSockets - Build a Cool, Real-time Multi-player Game...
 
How Scala, Wicket, and Java EE Can Improve Web Development
How Scala, Wicket, and Java EE Can Improve Web DevelopmentHow Scala, Wicket, and Java EE Can Improve Web Development
How Scala, Wicket, and Java EE Can Improve Web Development
 
Java ide comparision
Java ide comparisionJava ide comparision
Java ide comparision
 
New Browsers
New BrowsersNew Browsers
New Browsers
 
Pathway,I Ts Web Client Programming Manual
Pathway,I Ts Web Client Programming ManualPathway,I Ts Web Client Programming Manual
Pathway,I Ts Web Client Programming Manual
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
Push it to the Edge
Push it to the EdgePush it to the Edge
Push it to the Edge
 
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
DrupalCon Chicago - Best practices for cross-browser compatibility of Drupal ...
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
 

Plus de Mithun T. Dhar

Concur State of Business Travel 2016
Concur State of Business Travel 2016Concur State of Business Travel 2016
Concur State of Business Travel 2016Mithun T. Dhar
 
Seattle Technical Forum-Insights of Travel
Seattle Technical Forum-Insights of TravelSeattle Technical Forum-Insights of Travel
Seattle Technical Forum-Insights of TravelMithun T. Dhar
 
ProgrammableWeb-API Conf-SF 2014
ProgrammableWeb-API Conf-SF 2014ProgrammableWeb-API Conf-SF 2014
ProgrammableWeb-API Conf-SF 2014Mithun T. Dhar
 
Concur-Evernote Conference 2014
Concur-Evernote Conference 2014Concur-Evernote Conference 2014
Concur-Evernote Conference 2014Mithun T. Dhar
 
Concur-Silicon Valley Code Camp - Mithun Dhar
Concur-Silicon Valley Code Camp - Mithun DharConcur-Silicon Valley Code Camp - Mithun Dhar
Concur-Silicon Valley Code Camp - Mithun DharMithun T. Dhar
 
Concur by the numbers...
Concur by the numbers...Concur by the numbers...
Concur by the numbers...Mithun T. Dhar
 
Session 7 - Integrating share point with silverlight firestarter
Session 7 - Integrating share point with silverlight firestarterSession 7 - Integrating share point with silverlight firestarter
Session 7 - Integrating share point with silverlight firestarterMithun T. Dhar
 
Session6-SharePoint and Azure- steve fox-windows-and_azure_spfs
Session6-SharePoint and Azure- steve fox-windows-and_azure_spfsSession6-SharePoint and Azure- steve fox-windows-and_azure_spfs
Session6-SharePoint and Azure- steve fox-windows-and_azure_spfsMithun T. Dhar
 
Session 5-SharePoint with Office-Donovan Follette
Session 5-SharePoint with Office-Donovan FolletteSession 5-SharePoint with Office-Donovan Follette
Session 5-SharePoint with Office-Donovan FolletteMithun T. Dhar
 
Session4-Sharepoint Online-chrismayo
Session4-Sharepoint Online-chrismayoSession4-Sharepoint Online-chrismayo
Session4-Sharepoint Online-chrismayoMithun T. Dhar
 
Session 3 - Developer Tools-Sharepoint firestarter-paul yuknewicz
Session 3 - Developer Tools-Sharepoint firestarter-paul yuknewiczSession 3 - Developer Tools-Sharepoint firestarter-paul yuknewicz
Session 3 - Developer Tools-Sharepoint firestarter-paul yuknewiczMithun T. Dhar
 
SharePoint FireStarter - Session 1 - Keynote - Eric Swift
SharePoint FireStarter - Session 1 - Keynote - Eric SwiftSharePoint FireStarter - Session 1 - Keynote - Eric Swift
SharePoint FireStarter - Session 1 - Keynote - Eric SwiftMithun T. Dhar
 
SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101
SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101
SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101Mithun T. Dhar
 
SharePoint 2010 developer overview (in Visual Studio 2010)
SharePoint 2010 developer overview (in Visual Studio 2010)SharePoint 2010 developer overview (in Visual Studio 2010)
SharePoint 2010 developer overview (in Visual Studio 2010)Mithun T. Dhar
 
Azure Deployment(Seattle)
Azure Deployment(Seattle)Azure Deployment(Seattle)
Azure Deployment(Seattle)Mithun T. Dhar
 
Introduction To Cloud Computing Winsows Azure101
Introduction To Cloud Computing Winsows Azure101Introduction To Cloud Computing Winsows Azure101
Introduction To Cloud Computing Winsows Azure101Mithun T. Dhar
 
Taking_Your-Application_To_The_Next_Level - Windows 7
Taking_Your-Application_To_The_Next_Level - Windows 7Taking_Your-Application_To_The_Next_Level - Windows 7
Taking_Your-Application_To_The_Next_Level - Windows 7Mithun T. Dhar
 
Building_The_Next-Generation_UI - Multitouch and Ribbon
Building_The_Next-Generation_UI - Multitouch and RibbonBuilding_The_Next-Generation_UI - Multitouch and Ribbon
Building_The_Next-Generation_UI - Multitouch and RibbonMithun T. Dhar
 
Beyond_Human_Interaction - Sensor and Location Platform
Beyond_Human_Interaction - Sensor and Location PlatformBeyond_Human_Interaction - Sensor and Location Platform
Beyond_Human_Interaction - Sensor and Location PlatformMithun T. Dhar
 

Plus de Mithun T. Dhar (20)

Concur State of Business Travel 2016
Concur State of Business Travel 2016Concur State of Business Travel 2016
Concur State of Business Travel 2016
 
Seattle Technical Forum-Insights of Travel
Seattle Technical Forum-Insights of TravelSeattle Technical Forum-Insights of Travel
Seattle Technical Forum-Insights of Travel
 
Concur-Ford Hackathon
Concur-Ford HackathonConcur-Ford Hackathon
Concur-Ford Hackathon
 
ProgrammableWeb-API Conf-SF 2014
ProgrammableWeb-API Conf-SF 2014ProgrammableWeb-API Conf-SF 2014
ProgrammableWeb-API Conf-SF 2014
 
Concur-Evernote Conference 2014
Concur-Evernote Conference 2014Concur-Evernote Conference 2014
Concur-Evernote Conference 2014
 
Concur-Silicon Valley Code Camp - Mithun Dhar
Concur-Silicon Valley Code Camp - Mithun DharConcur-Silicon Valley Code Camp - Mithun Dhar
Concur-Silicon Valley Code Camp - Mithun Dhar
 
Concur by the numbers...
Concur by the numbers...Concur by the numbers...
Concur by the numbers...
 
Session 7 - Integrating share point with silverlight firestarter
Session 7 - Integrating share point with silverlight firestarterSession 7 - Integrating share point with silverlight firestarter
Session 7 - Integrating share point with silverlight firestarter
 
Session6-SharePoint and Azure- steve fox-windows-and_azure_spfs
Session6-SharePoint and Azure- steve fox-windows-and_azure_spfsSession6-SharePoint and Azure- steve fox-windows-and_azure_spfs
Session6-SharePoint and Azure- steve fox-windows-and_azure_spfs
 
Session 5-SharePoint with Office-Donovan Follette
Session 5-SharePoint with Office-Donovan FolletteSession 5-SharePoint with Office-Donovan Follette
Session 5-SharePoint with Office-Donovan Follette
 
Session4-Sharepoint Online-chrismayo
Session4-Sharepoint Online-chrismayoSession4-Sharepoint Online-chrismayo
Session4-Sharepoint Online-chrismayo
 
Session 3 - Developer Tools-Sharepoint firestarter-paul yuknewicz
Session 3 - Developer Tools-Sharepoint firestarter-paul yuknewiczSession 3 - Developer Tools-Sharepoint firestarter-paul yuknewicz
Session 3 - Developer Tools-Sharepoint firestarter-paul yuknewicz
 
SharePoint FireStarter - Session 1 - Keynote - Eric Swift
SharePoint FireStarter - Session 1 - Keynote - Eric SwiftSharePoint FireStarter - Session 1 - Keynote - Eric Swift
SharePoint FireStarter - Session 1 - Keynote - Eric Swift
 
SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101
SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101
SeattleUniv-IntroductionToCloudComputing-WinsowsAzure101
 
SharePoint 2010 developer overview (in Visual Studio 2010)
SharePoint 2010 developer overview (in Visual Studio 2010)SharePoint 2010 developer overview (in Visual Studio 2010)
SharePoint 2010 developer overview (in Visual Studio 2010)
 
Azure Deployment(Seattle)
Azure Deployment(Seattle)Azure Deployment(Seattle)
Azure Deployment(Seattle)
 
Introduction To Cloud Computing Winsows Azure101
Introduction To Cloud Computing Winsows Azure101Introduction To Cloud Computing Winsows Azure101
Introduction To Cloud Computing Winsows Azure101
 
Taking_Your-Application_To_The_Next_Level - Windows 7
Taking_Your-Application_To_The_Next_Level - Windows 7Taking_Your-Application_To_The_Next_Level - Windows 7
Taking_Your-Application_To_The_Next_Level - Windows 7
 
Building_The_Next-Generation_UI - Multitouch and Ribbon
Building_The_Next-Generation_UI - Multitouch and RibbonBuilding_The_Next-Generation_UI - Multitouch and Ribbon
Building_The_Next-Generation_UI - Multitouch and Ribbon
 
Beyond_Human_Interaction - Sensor and Location Platform
Beyond_Human_Interaction - Sensor and Location PlatformBeyond_Human_Interaction - Sensor and Location Platform
Beyond_Human_Interaction - Sensor and Location Platform
 

Dernier

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Dernier (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

Internet Explorer 8 Application Compatibility - IE8 Firestarter

  • 1. Internet Explorer 8 Application Compatibility Firestarter 1
  • 2. Session Objective(s): Understand IE7 Compatibility Understand IE6 Migration Learn how to employ compatibility Know where to go for migration assistance 2
  • 3. 3
  • 4. Page Built For Internet Page1. IdentifyInternet Built For browser Explorer 6 Explorer 7 2. Serve right page Page Built To Standards I’m Chrome I’m Firefox I’m IE6 I’m IE7 7 6 4
  • 5. 1. Identify browser 2. Serve right page Page Built To Standards I’m Chrome I’m Firefox I’m IE8 8 5
  • 6. Previous versions of IE offered two alternatives Quirks – Roughly compatibility IE 5.5 Standards – Latest standards for current browser The problem is that meaning of “standards” changes New options in Internet Explorer 8 6
  • 7. Quirks mode works the same Internet Internet Explorer 6 Explorer 7 Update for IE8 Update for IE8 Standards Standards or Compatibility mode 7
  • 8. 8
  • 9. Positive User Experience Undefined User Experience More Effort From Site Less Effort From Site 3. Display Intranet Sites in Compatibility 2. Implement Mode 1. Code to IE8 the X-UA- Standards Compatible Tag 5. Rely on User 4. Rely on the Pressing Compat List Compat Button 9
  • 10. CSS 2.1 compliance DOM Improvements HTML Improvements CSS 2.1 Acid2 Test compliance This means HTML Data URI Support Improved Namespace Support And more ACID 2
  • 11. Site developers can tell IE8 what version of IE it was designed for on a per-site bases or a per-page basis by including a simple tag Content Value Meaning “Quirks” mode IE=5 Always use IE7 mode IE=7 Display in IE7 mode unless site has IE=EmulateIE7 recommended “Quirks” DOCTYPE Always use IE8 mode IE=8 Use this tag to override compatibility IE=EmulateIE8 view on client machines and force IE8 mode Display in latest mode; In the IE8 IE=Edge release, this is equivalent to IE=8 11
  • 12. By default, IE8 displays “Intranet” sites in IE7 mode Eases transition for Enterprises who have LOB applications in “Intranet” This feature is on by default User can turn off IT Pro Can use Group Policy to display intranet sites in IE8 mode instead 12
  • 13. If a site is a top worldwide sites AND a compatibility problem has been reported to Microsoft IE8 will automatically show the site in compatibility mode Opt-out using X-UA- Compatible tag or web form res://iecompat.dll/iecompatdata.xml 13
  • 14. If site not covered elsewhere, user can push the compat button Placed next to refresh button More discoverable in IE8 RC1 Similar to X-UA-Compatible tag (IE=EmulateIE7), but User-Agent String also shows browser is IE7 14
  • 15. 15
  • 16. 16
  • 17. 1. Short term: Use IE=EmulateIE7 tag 2. Test sites against IE8 3. Code to IE8 Standards 4. Long Term: Use IE=EmulateIE8 tag 17
  • 18. Specifying IE version support Content Value Meaning IE=5 Display in Quirks mode IE=7 Display in IE7 Standards mode IE=EmulateIE7 Display standards DOCTYPEs in IE7 Standards mode; Display quirks DOCTYPEs in Quirks mode IE=8 Display in IE8 Standards mode IE=EmulateIE8 Display Standards DOCTYPEs in IE8 Standards mode; Display Quirks DOCTYPEs in Quirks mode. Use this tag to override compatibility view on client machines and force Standards to IE8 Standards. IE=Edge Display in latest mode; In the IE8 release, this is equivalent to IE=8 Declared <META> overrides <!DOCTYPE> 18
  • 19. Quirks <!DOCTYPE HTML PUBLIC ―-//W3C//DTD HTML 4.01 Frameset//EN> • (or no DOCTYPE) Standards <!DOCTYPE HTML PUBLIC ―-//W3C//DTD HTML 4.0 Strict//EN> 19
  • 20. Compatibility Mode Options On a per-site basis, add the custom HTTP Header: X-UA-Compatible: IE=EmulateIE7 Web.Config File <?xml version=quot;1.0quot; encoding=quot;utf-8quot;?> <configuration> <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name=quot;X-UA-Compatiblequot; value=quot;IE=EmulateIE7quot;> </customHeaders> </httpProtocol> <system.webServer> </configuration> 20
  • 21. Add a tag right after <head> <meta http-equiv=quot;X-UA-Compatiblequot; content=quot;IE=EmulateIE7quot; /> <!DOCTYPE HTML PUBLIC quot;-//W3C//DTD HTML 4.01 Strict//ENquot;> <html> <head> <!– Tell IE8 to display in IE7 Compatibility mode --> <meta http-equiv=quot;X-UA-Compatiblequot; content=quot;IE=EmulateIE7quot; /> <title>My Web Page</title> </head> <body> <p>Content goes here.</p> </body> </html> 21
  • 22. 22
  • 23. It’s not as simple as using EmulateIE8… …and it shouldn’t be 1. User clicks compat button for foo.com 2. Sales.foo.com Foo.com updates their site, sets EMULATEIE8 metatag Sales.foo.com 3. Now what happens to Dev.foo.com other domains- Foo.com, Dev.foo.com? 23
  • 24. Top level domain needs to authorize removal IE looks for IEStandards.xml Located at server root of the top level domain Contains <IE8StandardsMode> 24
  • 25. If file exists and contains tag Remove the domain from compat list Else Leave the domain in the compat list Wait 30 days to check again Ignore expiration (for testing purposes) [HKCUSoftwareMicrosoftInternet ExplorerBrowserEmulation] IgnoreExpiryPeriod=1 25
  • 26. Compatibility mode by default for Intranet Line of business applications Implement Metatag for Internet sites… …and Intranet sites that don’t run in Intranet zone Excellent feedback from RDP Customers Easy to implement Good compatibility for IE7 sites Remember this is a temporary solution Move to standards mode as soon as possible 26
  • 27. 27
  • 28. Used to process conditional comments Opportunity to emit markup based on the browser version <!—[if gte IE 5.5] <p>you are using IE 5 or higher</p> <![endif]--> 28
  • 29. Commonly used to emit version-specific style sheets <!—[if IE 6] <linkrel=―stylesheet‖ type=―text/css‖ href=―/stylesheets/ie6.css‖/> <![endif]--> <!—[if IE 7] <linkrel=―stylesheet‖ type=―text/css‖ Future href=―/stylesheets/ie7.css‖/> proof with <![endif]--> gte <!—[if gte IE 8] operator <linkrel=―stylesheet‖ type=―text/css‖ href=―/stylesheets/standards.css‖/> <![endif]--> 29
  • 30. Browser’s identity Reported to web server in HTTP header Available client-side via script javascript:alert(navigator.userAgent) 30
  • 31. User Agent String can be used on any browser Conditional comments are specific to IE Version vector used to conditionally emit markup User Agent String used for branching in program logic Commonly used to block new versions of a browser 31
  • 32. Conditional comments Honored by compat mode May need to be changed for standards mode Use GTE operator as best practice User Agent String Beware logic that relies on version checking Especially blocking IE8 can be detected even in compat mode Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 3.5.21022) 32
  • 33. JSON Built-in implementation May conflict with custom implementation LCIE COM Marshaling Components may no longer run in the same apartment (or process) 3rd Party Plug-ins Sun JVM 33
  • 34. 34
  • 35. What’s different from IE6 Standards approach Well known bug fixes What it means for application compatibility Rendering issues CSS and HTML JScript 35
  • 36. Rendering modes crucial to how a page renders 2 rendering modes Quirks Focus on backwards compatibility Not standards based Strict Based on W3C standards. Less focus on backwards compatibility. 36
  • 37. Important to understand for migration Can seriously effect page layouts when migrating between browser versions as you will see. 37
  • 38. XML Declaration Quirks Box Model CSS Filters 38
  • 39. Is intended to specify XML version Usually used in XHTML documents Required to be placed at the start of the document. e.g. <?xml version=quot;1.0quot;?> 39
  • 40. DTD = Document Type Definition In IE6 the DTD sets the mode (quirks/strict) Has to be at the start of the document In IE6 if DTD is not the first element it renders “quirks” mode Hence a XML declaration sets page into “quirks” mode in IE6 even if the author intended the page to use “strict” This order bug is fixed in IE7 40
  • 41. <?xml version=quot;1.0quot;?> <!DOCTYPE html PUBLIC quot;-//W3C//DTD XHTML 1.0 Transitional//ENquot; quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1- transitional.dtdquot;> IE6 renders quirks, IE7 renders strict Result is significantly different layout behaviour 41
  • 42. Remove XML declaration Use a DTD that will put IE7 into quirks mode <!DOCTYPE html PUBLIC> Insert a comment before the DTD to set IE7 into quirks mode <?xml version=quot;1.0quot;?> <!-- ... and keep IE7 in quirks mode --> <!DOCTYPE ... 42
  • 43. Understand the issue – Strict vs. Quirks Weigh up the pros and cons of a chosen solution Migrate layout in appropriate manor 43
  • 44. This is a bug in the implementation of Cascading Style Sheets Appears when in “quirks” mode W3C standards state border and padding should be added to width and height In IE6 quirks mode border and padding is included in width and height size 44
  • 45. 45
  • 46. 46
  • 47. Total width/height includes border + padding A working layout in “quirks” will render differently in “strict” due to box model differences Common solution usually include re- designing webpage to use “strict” mode which uses W3C box model 47
  • 48. Used to work around browser differences Workarounds making use of bugs or unimplemented CSS Used to: Render on other browsers and hide from IE Render on IE and hide from other browsers 48
  • 49. Used to apply CSS rules in IE, while hiding them from other browsers. Commonly used to address box model problems Exploits a bug in the way that the older versions of IE interpret the “star” - or “universal selector” 49
  • 50. * html .myDiv { background-color:blue; } <div class=quot;myDivquot;>Test Content</div> 50
  • 51. 51
  • 52. Obviously not designed for this purpose Bug fixes in IE7 now prevent certain filters from being used Can be a major source of rendering issues when migrating from IE6 52
  • 53. If migrating forward create standards-based, cross-browser designs. For compatibility look at using conditional comments to isolate IE6 workarounds 53
  • 54. This is about migration, not compatibility Manual rather than programmatic strategy Compatibility to IE6 isn’t available, so migrate Except for Quirks mode Refer to existing guidance today http://www.msdn.com/iecompat More assistance on the way... 54
  • 55. IE Compat Test Tool Part of ACT New guidance in latest version Definition Example Remediation Covers much of the application compatibility space 55
  • 56. Feature Overview - www.microsoft.com/ie8 Engineering Blog - http://blogs.msdn.com/ie Safety & Privacy Features www.microsoft.com/windows/internet-explorer/features/browse-privately.aspx Business Value of IE 8 & EV SSL Certificates www.microsoft.com/ie/ev User Control & Privacy Feature Guide www.microsoft.com/ie/privacy Internet Explorer Administration Kit (IEAK) http://technet.microsoft.com/en-us/ie/bb219517.aspx IE Compatibility Center - http://msdn.com/iecompat 56
  • 57. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.