Windows 7

Blog von Microsoft Deutschland

December, 2010

  • HTML5 Labs: Prototypen für experimentelle HTML5 Spezifikationen

    html5labs

    Gastposting Dariusz Parys, Developer Evangelist für .NET 3.0 Technologie, C++, High Performance Computing, Windows Communication Foundation, Workflow Foundation und Visual Studio Team System bei der Microsoft Deutschland GmbH.

    Gestern haben wir die Seite HTML5 Labs veröffentlicht. Ziel der Seite ist es, Prototypen von noch nicht ausgereiften W3C HTML5 Spezifikationen zu implementieren und zu veröffentlichen, um eine Diskussions- und Feedbackgrundlage für Entwickler zur Verfügung zu stellen.

    The HTML5 Labs site is the place where Microsoft prototypes early and unstable web standard specifications from standards bodies such as the W3C. Sharing these prototypes helps us have informed discussions with developer communities, and contributes to a better implementation experience with draft specifications.

    HTML5 Standardisierungsfortschritt

    Solche Prototypimplementierungen helfen Entwicklern, Technologien zu verstehen und geben Ihnen auch Gelegenheit zum Feedback. Es hilft auch den Mitgliedern des W3C Spezifizierungsprozesses, dieses Feedback in die Spezifikation mit einfließen zu lassen und so eine stabilbe Spec zu erarbeiten.

    Betrachtet man den HTML5 Standardisierungsfortschritt, so kann man diese in stabile und experimentelle Spezifikationen einordnen. Stabile Spezifikationen finden sich in allen gängigen, modernen Web Browsern - wie auch dem Internet Explorer 9 - wieder. Die stabilen HTML5 Features können demzufolge auch in Webseiten ruhigen Gewissens eingebaut werden. Semantische Tags sind hier ein gutes Beispiel.

    Auf der anderen Seite gibt es Spezifikationen die noch nicht so ausgereift sind und die man eben als experimentell bezeichnen kann, wie zum Beispiel WebSockets.

    Der Fall der WebSockets

    WebSockets im Browser klingt nach einer guten Idee. Direkte Kommunikation aus JavaScript mit dem Server, ohne Plugin. Die Spezifikation wurde schon in einem frühen Stadium von diversen Browser Herstellern implementiert, was zur Folge hat, das Änderungen direkt an die API Schnittstelle für Entwickler durchgereicht werden und somit der geschriebene Code nicht funktioniert und umgestellt werden muss. Zudem ist nicht abzusehen, ob eventuelle Sicherheitsrisiken in sich ändernden Spezifikationen auftun.

    Als Beispiel können wir einen Blick auf die Mozilla Entwicklung werfen, die für jedermann einsehbar ist und dort konkret auf Fehler 602028. Hier die Beschreibung des Bugs:

    The -76 implementation of websockets should be prefixed in an experimental
    namespace for ff 4, while the final websockets protocol is sorted out in the
    IETF.

    Man möchte die Implementierung in einen experimentellen Namespace überführen, da das Protokoll aussortiert wurde. Daraufhin gab es gleich einen Kommentar, dass man damit eine Inkompatibilität herbeiführt, da andere Browser diesen Namespace nicht haben.

    We most certainly should not. Chrome and Safari have released -76 support
    unprefixed, and Opera will do the same. Prefixing in Gecko doesn't gain anybody
    anything, because any new version that wants to see adoption will have to be
    compatible with the shipped implementations, regardless of what we do. It only
    hurts us, because "Firefox doesn't implement HTML5".

    Ein weiterer Kommentar bestätigt, dass die Implementierung sich auf jeden Fall ändern wird und verweist auch darauf, das andere Browser Hersteller dieses Feature ebenso in einen Namespace prefixen werden. [Comment 7]

    Die Diskussion schreitet voran. Ein weiterer Kommentar schlägt vor, den Prefix mit der Begründung wegzulassen, Entwickler würden wissen, welche der sich in Entwicklung befindlichen Spezifikationen Codeänderungen mit sich bringen. Demzufolge wäre es in Ordnung, wenn der serverseitiger Code nicht mehr funktioniert und wieder und wieder angepasst werden muss. Das Original liest sich einfach besser [Comment 26]:

    As for prefixing with x-, I would prefer not to do that as we would then keep
    it around forever and probably not migrate. I think the best strategy is to
    just keep breaking people to force the expectation that this is still a work in
    progress, and if you're not aware of that you shouldn't be using it...

    Die Diskussion kommt dann an eine entscheidende Stelle [Comment 51], als jemand die Sicherheitsproblematik der WebSockets Spezifikation anspricht, die es theoretisch möglich macht, die Kommunikation zu manipulieren. Kurz: Es gibt ein Sicherheitsproblem.

    Das Aus für WebSockets?

    Genau das ist der entscheidende Unterschied zwischen stabilen und experimentellen Spezifikationen. Bisher hat Microsoft im Internet Explorer 9 die Implementierung von WebSockets nicht angegangen, denn es bringt dem Entwickler nichts, mit Features produktiv zu gehen, die noch sehr weit weg von Produktionsreife sind. Firefox und Opera haben nun ihre WebSockets-Implementierungen deaktiviert. Vor allem die Sicherheits- und Kompatibilitätsprobleme waren hier ausschlaggebend.

    Ist das nun das Aus für WebSockets? Nein, wir sind nach wie vor mit in der Diskussion um die Spezifikation und auch andere Browser Hersteller sind daran beteiligt (draft-montenegro-hybi-upgrade-hello-handshake-00).

    HTML5 Labs Prototypes

    Auf der anderen Seite möchten aber Entwickler genau mit diesen Features experimentieren und genau hier kommt HTML5 Labs ins Spiel. Wir bieten dort unsere Beispielimplementierungen für diese experimentellen Zweige an. Zwei Prototyp Implementierungen stehen zur Verfügung: Einmal für WebSockets und einmal für IndexedDB.

    WebSockets is a technology designed to simplify much of the complexity around bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket. It can be implemented in web browsers, web servers as well as used by any client or server application. The WebSockets API is currently being standardized by the W3C Web Applications Working Group and the  protocol is being standardized by IETF Hypertext Bidirectional (HyBi) Working Group.

    Link: WebSockets Prototype

    IndexedDB is a W3C draft Web specification for the storage of large amounts of structured data in the browser, using indexes that allow for high performance searches on this data. The IndexedDB API is currently being standardized by the W3C Web Applications Working Group. IndexedDB can be used for browser implemented functions like bookmarks, and as a client-side cache for web applications such as email.

    Link: IndexedDB Prototype

    Letztere Spezifikation hat mehr an Bedeutung gewonnen und ist daher für uns eine Prototyp-Implementierung Wert. Diese Implementierungen müssen gesondert und bewusst installiert werden. Somit ist jedem Entwickler klar, dass es sich um eine experimentelle Implementierung handelt und diese sich natürlich ändern kann.

    Wie geht es weiter?

    Es gibt noch weitere Spezifikationen, die man als experimentell bezeichnen kann. Hierzu gehören unter anderem die File API und auch WebGL. Wer mit diesen Features experimentiert, muss sich im Klaren sein, dass diese sich auch ändern mit der Zeit. Browser, die diese direkt implementieren, laufen Gefahr, dass heute geschriebener Code in der Zukunft nicht mehr funktioniert und unter Umständen auch Sicherheitslücken entdeckt werden. Eine Spezifikation in der realen Welt zu benutzen ist erst dann sinnvoll, wenn diese die Hürde des W3C genommen hat und mindestens als stabil gekennzeichnet ist.

    Anders gesagt: Der Internet Explorer 9 unterstützt den HTML5 Standard und die stabilen Spezifikationen. Der IE9 ist damit bereit, HTML5 fähige Seiten Millionen von Benutzern hardwareunterstützt performant anzuzeigen. IE9 bietet damit Entwicklern eine gute Basis zur HTML5 Webseiten Entwicklung. Wer darüberhinaus mit den experimentellen Spezifikationen arbeiten möchte, kann dies mit den Prototyp Implementierungen der HTML5 Labs  tun.

    Daher der Aufruf an alle Webentwickler: Wer noch nicht mit IE9 Beta an Bord gegangen ist, sollte jetzt mit der aktuellen Platform Preview den Zug nicht verpassen!

    1. Holt das Beste aus der Unterstützung von Internet Explorer 9 mit HTML5, CSS3, SVG, DOM, ES5 und mehr heraus.
    2. Schaut Euch das Entwicklerhandbuch für IE9 an! Vermeidet Browserweichen, die auf Versionsnummern basieren und testet auf die benötigten Funktionen!
    3. Testet Eure Seiten in IE9 Standards Mode für die beste Performance und Interoperabilität und nutzt mit nur wenigen Zeilen Code die Vorteile für Eure Webseiten in Windows 7 mit der Integration in die Taskbar und die Nutzung von Sprunglisten!

    Auf www.internet-explorer9.de stellt Microsoft eine Produktübersicht zur Verfügung. Weiterführende Informationen rund um den Internet Explorer 9 finden Administratoren auf Microsoft TechNet und Entwickler auf MSDN.

  • Internet Explorer Crash oder Fehlfunktion nach Installation von MS10-090?

    Nach der Veröffentlichung des letzten kumulativen Sicherheitsupdates für Internet Explorer MS10-090 beobachten wir Kundenberichte, in denen beschrieben wird, dass nach der Installation Internet Explorer mit der Fehlermeldung “Internet Explorer hat ein Problem festgestellt und muss beendet werden” abstürzt oder die Fehlermeldungen “Seite kann nicht angezeigt werden” oder “Zeitüberschreitung” beim Browsen im Internet auftreten.

    Achtung: Dies ist nach unseren bisherigen Erkenntnissen NICHT auf einen Fehler in dem Sicherheitsupdate zurückzuführen!

    Unsere sofortigen Untersuchungen haben ergeben, dass alle Kunden, die bisher diese Probleme im Zusammenhang mit dem Update gemeldet haben, die Yahoo! Toolbar installiert haben. Unsere Zusammenarbeit mit Yahoo ergab schnell, dass das Problem eine veraltete Version der Yahoo! Toolbar ist, welche einen Fehler enthält, der nun zu Tage tritt. Wir haben diesbezüglich jetzt auch eine offizielle Antwort von Yahoo bekommen:

    ” Yahoo is aware of the reported issues with older versions of the Yahoo! Toolbar and we apologize to those who have been affected. To quickly remedy this issue, please uninstall the Yahoo! Toolbar and restart your browser. The latest, optimized version of the Yahoo! Toolbar which is compatible with IE is available for download at toolbar.yahoo.com. This version contains many new features that keep you up to date with the latest news, email and much more.”

    Übersetzt auf Deutsch in etwa:

    “Yahoo sind die beschriebenen Probleme im Zusammenhang mit einer älteren Yahoo! Toolbar-Version bekannt und wir entschuldigen uns bei allen Betroffenen. Um das Problem schnellstmöglich zu beheben, deinstallieren Sie bitte die Yahoo! Toolbar und starten dann den Browser neu. Die aktuellste, optimierte Version der Yahoo! Toolbar für den Internet Explorer kann unter toolbar.yahoo.com heruntergeladen werden. Diese Version enthält viele neue Funktionen, welche Sie mit den aktuellsten Neuigkeiten, Emails und vielem mehr immer auf dem Laufenden hält.”

    Unabhängig von dem aktuellen Problem beobachten wir bei kumulativen Updates des Internet Explorers manchmal ähnliche Schwierigkeiten im Zusammenspiel mit Sicherheitssoftware von Drittanbietern. Da bei Updates des Internet Explorers Kernbestandteile wie zum Beispiel iexplore.exe, mshtml.dll, wininet.dll, etc. ausgetauscht werden, ändern sich dadurch die Signaturen der jeweiligen Dateien.

    Viele Sicherheitsprogramme arbeiten mit Dateisignaturlisten, um ungewollte Veränderungen an diesen Dateien durch Malware zu überwachen und mögliche falsche Alarme durch eine Whitelist zu vermeiden. Dabei prüfen sie möglicherweise jedoch nicht die kryptografische Signatur. Deshalb schlägt diese Überwachung dann mit einem Fehlalarm zu buche, wenn diese Dateien offiziell aktualisiert werden.

    Wir haben dieses Problem in dem Artikel Error message after you install a Windows Internet Explorer 7 update from Windows Update or from Microsoft Update: "Webpage cannot be displayed" näher beschrieben. Abhilfe kann hier nur eine Aktualisierung der Sicherheitssoftware von Drittanbietern oder eine Rekonfiguration durch den Anwender schaffen.

    Generell möchte ich an dieser Stelle noch einmal darauf hinweisen, dass solche Probleme durch eine ganze Reihe von Dingen verursacht werden können, die oftmals nicht direkt von Microsoft verursacht oder gelöst werden können. Microsoft stellt hierfür die schrittweise Problembehandlung Internet Explorer 8: Websites werden nicht richtig angezeigt oder funktionieren nicht ordnungsgemäß zur Verfügung. Hier werden einige Fragen gestellt und die Schritte empfohlen, die zur Problembehebung am besten ausgeführt werden sollten.image

    In den meisten Fällen kann man nicht kompatible Add-Ons oder Toolbars ausschließen, indem man den Browser ohne Add-Ons startet. Genau dieses Vorgehen hat in dem vorliegenden Fall gezeigt, dass der Fehler nicht im Browser, sondern in einem Zusatzprogramm zu suchen war. Manuell geht das, indem man im Startmenü Internet eingibt und den Menüeintrag Internet Explorer (ohne Add-Ons) wählt oder mit Hilfe des Kommandos iexplore.exe –extoff.

    imageUm in der Vergangenheit verstellte Einstellungen des Internet Explorers auf die Standardeinstellungen zurückzustellen und alle Add-Ons zu deaktivieren, kann man in der Systemsteuerung in den Internetoptionen auf der Registerkarte Erweitert auch die Internet-Explorer-Einstellungen zurücksetzen.

    Weiterhin habe ich sporadisch Probleme auf einigen Laptops mit umschaltbaren Grafikkarten im Zusammenhang mit Internet Explorer 9 Beta gesehen. Hier wird, abhängig von Lastprofil, Stromversorgung und Batterieladestand entweder ein in den Chipsatz integrierter Grafikchip oder ein dezidierte Grafikprozessor verwendet. Die Umschaltung geschieht dabei automatisch.

    Hier sollte man sicherstellen, dass man die aktuellste BIOS-Version des Notebookherstellers sowie den neuesten Grafikkartentreiber im Einsatz hat (insbesondere für ATI-Grafikchips hier). Sollte das Problem weiterhin auftreten, kann man im BIOS das automatische Umschalten An-/Ausschalten oder die Hardwarebeschleunigung beim Rendern in deaktivieren und das Softwarerendering einschalten:

    Softwarerendering

  • Internet Explorer vs. Social-Engineering-Malware: 1:0

    Webseiten können heutzutage gefährlich sein: Sie liefern bösartige Inhalte aus, verleiten zur Preisgabe persönlicher Informationen oder erfassen Aktivitäten ohne das Einverständnis des Benutzers. Dieses Verhalten ist dabei nicht auf sogenannte Untergrundseiten beschränkt – durch Servereinbrüche werden auch immer mehr seriöse Webseiten mit Malware infiziert. In meinem Blogpost So verdient der Untergrund mit Scareware habe ich gezeigt, wie man sogar über die Suchergebnisse einer Suchmaschine wie Google auf seriöse Webseiten geführt werden kann, auf denen im Hintergrund Malware lauert.

    Um Internetbetrügern noch effektiver den Kampf anzusagen, führt Microsoft im Internet Explorer 9 mit SmartScreen® Application Reputation eine neue Funktionen ein, um Anwender besser vor Malware zu schützen, die auf Social Engineering-Techniken setzt. Die SmartScreen-Filtertechnologie ist dabei ein Feature von Internet Explorer, mit dessen Hilfe Phishingwebsites erkannt werden können und vor der Installation von bösartiger Software oder von Malware gewarnt wird. Mein Kollege Ryan Colvin (Internet Explorer 9 Program Manager) hat zu der generellen Funktionsweise ein interessantes Video veröffentlicht:

    Welche Auswirkungen diese Schutztechnologien auf die Browsersicherheit haben, hat das weltweit führende unabhängige Forschungs- und Testinstitut für Informationssicherheit NSS Labs Inc. genauer untersucht. Laut Web Browser Group Test Socially-Engineered Malware Report Q3 2010 bietet Internet Explorer den besten Schutz gegen Social-Engineering-Malware!

    Durch die Untersuchungen kam NSS Labs zu dem Ergebnis, dass 99% der Social-Engineering-Malware im Test durch Internet Explorer 9 entweder geblockt oder vor der Ausführung gewarnt wurde. Zitat: “With a unique URL blocking score of 94% and over-time protection rating of 99%, Internet Explorer 9 was by far the best at protecting users against socially-engineered malware.”

    clip_image002
    [Quelle: NSS Labs – basierend auf den verfügbaren stabilen Browserversionen zum Testzeitpunkt im Vergleich mit einem pre-Beta Internet Explorer 9 Build 9.0.7930.16402]

    Gegen derartige Angriffe sind viele Anwender bisher nicht wirklich gewappnet, wie ein weiteres Video von der Produktgruppe zeigt. Auch im realen Leben sind Menschen anfällig gegen Social Engineering, wie die aus dem Internet auf das reale Leben übertragenen Beispiele zeigen:

    Daher ist es wichtig, dass ein moderner Webbrowser hier hilft, Anwender vor immer ausgefeilteren Angriffen zu schützen. Ich bin gespannt, wann derartige Kriterien in Vergleichstests von Webbrowsern Einzug halten – bisher legen die meisten ja noch den Schwerpunkt auf den recht sinnfreien Vergleich von Microbenchmarks.

    Wer noch nicht mit IE9 Beta an Bord gegangen ist, sollte jetzt mit der aktuellen Platform Preview 7 den Zug nicht verpassen!

    1. Holt das Beste aus der Unterstützung von Internet Explorer 9 mit HTML5, CSS3, SVG, DOM, ES5 und mehr heraus.
    2. Schaut Euch das Entwicklerhandbuch für IE9 an! Vermeidet Browserweichen, die auf Versionsnummern basieren und testet auf die benötigten Funktionen!
    3. Testet Eure Seiten in IE9 Standards Mode für die beste Performance und Interoperabilität und nutzt mit nur wenigen Zeilen Code die Vorteile für Eure Webseiten in Windows 7 mit der Integration in die Taskbar und die Nutzung von Sprunglisten!

    Auf www.internet-explorer9.de stellt Microsoft eine Produktübersicht zur Verfügung. Weiterführende Informationen rund um den Internet Explorer 9 finden Administratoren auf Microsoft TechNet und Entwickler auf MSDN.

  • IE9 Tracking Protection

    Heutzutage ist vielen Anwendern nicht bewusst, dass auch seriöse und populäre Webseiten intensiv das Nutzungsverhalten mit Hilfe von speziellen, in die Webseiten eingebauten Inhalten auswertbar machen. Oftmals kommen hierzu auch Drittanbieter mit ausgefeilten Datamining-Lösungen zum Einsatz. So funktioniert heute nun mal das Web.

    Allerdings ergeben sich daraus eben auch potentiell unerwünschte Konsequenzen: Während ein Anwender Webseite A besucht, ist es durchaus möglich, dass Webseite B, C und D-Z ebenfalls Informationen über den Besuchsvorgang erhalten. Das Internet Explorer Team hat dazu einen umfangreichen Hintergrundartikel Online privacy, Tracking, and IE8’s InPrivate Filtering auf dem IE-Blog veröffentlicht.

    Ursächlich ist die Art und Weise, mit der heutzutage Webseiten erstellt werden. Oftmals werden dabei Inhalte wie Skripts, Bilder, HTML, Cookies, etc. von vielen anderen Webseiten übernommen und als eigene Inhalte in die Webseite integriert.

    Wenn der Anwender nun auf Webseite A surft, liefert er beim Abrufen der Inhalte unbewusst den Seiten B-Z ganz nebenbei persönliche Informationen wie die eigene IP-Adresse, die Browser- und OS-Version, die vorher besuchte Seite, etc. Mit Hilfe von Cookies und anderen Tracking-Technologien können damit umfangreiche Profile über das Surfverhalten und die persönlichen Vorlieben erstellt werden.

    Durch das Begrenzen von automatisierten Datenzugriffen der Seiten B-Z kann man effektiv die Möglichkeit der Datensammelei einschränken. Internet Explorer 9 wird dafür als neue Technologie Tracking Protection einführen und damit die bisherige Funktion InPrivate Filtering ersetzen.

    Mit Hilfe des neuen Mechanismus können auf Wunsch Drittanbieter, die möglicherweise das Surfverhalten beobachten wollen, automatisiert geblockt werden. Tracking Protection hilft dabei, Inhalte mit Auswirkungen auf die Privatsphäre einfach herauszufiltern. Dazu wird man als Anwender zukünftig Inhalte von jeder Webseite anhand von Tracking Protection-Listen (TPL) automatisiert herausfiltern lassen können.

    Das Prinzip dieser Listen ähnelt in gewisser Weise zum Beispiel der deutschen Robinsonliste für eMail, Mobilfunk und Telefon. Wenn man eine TPL zu seinem Browser hinzufügt, verhindert Internet Explorer 9 zukünftig zuverlässig das Senden von Daten an Webseiten, die auf der Liste stehen. Zur Standardisierung des Aufbaus einer TPL schlagen wir folgendes vorläufige Dateiformat vor. Es enthält sowohl Elemente mit “Do Not Call” (blockieren) und “OK to Call” (erlauben) Charakter:

      1: <?xml version="1.0" encoding="UTF-8"?>
    
      2: <rss version="2.0" xmlns:wf="http://www.microsoft.com/schemas/webfilter/2008">
    
      3:   <channel>
    
      4:     <title>Demo</title>
    
      5:     <description>Tracking Protection List from ietestdrive.com </description>
    
      6:     <item><wf:blockRegex><![CDATA[msdn\.com/.*\.js]]></wf:blockRegex></item>
    
      7:     <item><wf:allowRegex><![CDATA[strikestrike\.com/.*\.js]]></wf:allowRegex></item>
    
      8:   </channel>
    
      9: </rss>

    Derartige Listen können somit sehr einfach erstellt und somit von verschiedensten Stellen angeboten werden. Wir stellen dafür das vorgeschlagene Format zusätzlich unter Creative Commons Attribution Lizenz und Microsoft Open Specification Promise. Anwender könnten zukünftig sowohl Listen von Datenschutzorganisationen, als auch von Werbefirmen nutzen, um besser selbst bestimmen zu können, welche Daten sie zur Verfügung stellen wollen, um möglicherweise auch im Gegenzug Dienste kostenfrei nutzen zu können.

    Hintergrund

    Am letzten Dienstag wurden von der US-Handelsaufsicht Federal Trade Commission (FTC) umfangreiche Empfehlungen (PDF-Datei) zur Verbesserung des Datenschutzes im Internet veröffentlicht. Diese Veröffentlichung kam für uns nicht überraschend. Microsoft steht in einem ständigen Dialog mit Behörden und Datenschutzorganisationen weltweit. Das Thema Datenschutz genießt bei uns eine sehr hohe Priorität (Stichwort: Trustworthy Computing).

    Der Webbrowser ist mittlerweile das am häufigsten von Privatanwendern benutzte Programm. Nutzerstudien von Microsoft zeigen, dass fast 60% aller Nutzungsvorgänge auf privaten Computern das Surfen im Internet ist. Daher muss ein moderner Webbrowser umfassenden Schutz und einfache Kontrollmöglichkeiten für Anwender mitbringen, damit private Daten und persönliche Vorlieben auch nicht unbewusst mit unberechtigten Dritten versehentlich geteilt werden.

    Wir setzen im Hinblick auf den Schutz der Privatsphäre aller Anwender auf eine möglichst hohe Transparenz bei der Frage, welche Informationen von Webseiten auf dem lokalen PC gespeichert und darüber hinaus ausgewertet werden können. Anwender müssen eine möglichst einfache Kontrollmöglichkeit über ihre Privatsphäre erhalten, die über die bisherigen Fähigkeiten von InPrivate Browsing & InPrivate Filtering hinausgehen.

    Der Datenschutz im Internet ist ein komplexes Thema, welches weit über Fragen der richtigen Technologie (Web), Produkte (Webbrowser und Webseiten) sowie Interoperabilität (W3C und Testsuiten) hinausgeht. Die FTC empfiehlt der Industrie, Funktionen wie “Do Not Track” einzubauen. In der Industrie werden auch Funktionen wie “Do Not Follow” diskutiert. Die Empfehlungen werfen dabei eine Reihe von Fragen auf:

    • Wie kann man einen Schutzmechanismus bauen, dessen Funktion für Anwender möglichst einfach zu finden, zu benutzen und zu verstehen ist?
    • Wie kann man einen Schutzmechanismus bauen, bei dem Anwender die Auswirkungen ihrer Einstellungen und die Grenzen, die Technologie hier bieten kann, klar verstehen?
    • Welche ökonomischen Vor- und Nachteile sind mit einem einheitlichen Standardmechanismus zur Kontrolle der Online Werbung verbunden?
    • Welchen ökonomischen Einfluss hat ein solcher Mechanismus auf das Web, wenn die Mehrheit der Anwender ihn nutzten würde?
    • Wie beeinflusst ein solcher Mechanismus das Geschäftsmodell von werbefinanzierten Webseiten und Werbefirmen sowie Online-Händlern?
    • Welche Auswirkungen würden sich wiederum langfristig für die Anwender ergeben?
    • Sollten Anwender vielleicht bei einem standardisierten Opt-out auch die Art der Werbung festlegen können, die sie bereit sind, zu erhalten oder welche persönlichen Daten sie bereit wären, zur Verfügung zu stellen, um im Gegenzug den Dienst kostenfrei nutzen zu können?

    Das ist nur eine kleine Auswahl der Fragen, die uns in dem Zusammenhang beschäftigen. Dass dies bei weitem nicht nur theoretischer Natur sind, zeigt zum Beispiel folgende Email:

    Sehr geehrter Herr Melanchthon,

    im Rahmen meiner Tätigkeiten als Schriftführer für einen Pfarrgemeinderat habe ich die Zusammenarbeit des Gremiums auf eine Kombination von Office Live Small Business [...] und Office Live Services (Skydrive) umgestellt [...] Mit der auf den Live Services aufsetzenden Lösung kommen selbst die älteren Mitglieder unseres Gremiums gut zurecht [...] Bezüglich der kostenlosen Office Live Services verbleibt eine negative Anmerkung - und diese bezieht sich auf die nervende Werbung: Ich verstehe, dass der Service finanziert werden muss und bin bezüglich Werbeeinblendungen schmerzfrei, sofern diese zielgruppengesteuert ist. Aufforderungen für Dating-Bekanntschaften - und diese machen einen Großteil der Einblendungen aus - sind sicherlich nicht für alle Zielgruppen relevant ;-)

    Natürlich werden diese und weitere Fragen im Internet Explorer-Team intensiv diskutiert. Wir wünschen uns hierbei nicht nur Fortschritte bei unseren Produkten, sondern auch bei der öffentlichen Diskussion rund um das Thema Datenschutz.

  • Integration von Internet Explorer 9 in Windows 7

    Gastposting von Oliver Scheer, Developer Evangelist - Windows, Silverlight und UI-Technologien bei der Microsoft Deutschland GmbH.

    Der neue Internet Explorer 9 beinhaltet die Möglichkeit, Windows 7 Funktionen der Taskleiste zu verwenden. Dabei benötigt man für die einzelnen Funktionen maximal drei Zeilen Code. Dieser Beitrag stellt diese Funktionen vor und zeigt, wie man diese in seine eigenen Webseiten integrieren kann.

    Video-Demonstration

    Get Microsoft Silverlight

    Webseite im Standard-Modus darstellen

    Damit der Internet Explorer die Seite im Standard-Modus darstellt, welche zur bestmöglichen Darstellung beiträgt, muss man der Webseite dies mitteilen. Macht man dies nicht, versucht der Internet Explorer 9 und andere Browser, die Webseite nach eigener Einschätzung darzustellen:

    image

    Die obige Darstellung zeigt den Internet Explorer, wie er eine Seite darstellt, wenn man keinen Standard auswählt.

    Der Sourcecode der Webseite:

      1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
      2: <html xmlns="http://www.w3.org/1999/xhtml">
    
      3:   <head>
    
      4:     <title>Keine Festlegung auf Standard</title>
    
      5:   </head>
    
      6:   <body>
    
      7:     <p>...</p>
    
      8:   </body>
    
      9: </html>

    Die folgende Darstellung zeigt, wie es aussehen kann, wenn der Browser exakt weiß, wie die Seite zu rendern ist:

    image

    Dazu benötigt man lediglich eine weitere Zeile im HTML-Code:

      1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
      2: <html xmlns="http://www.w3.org/1999/xhtml">
    
      3:   <head>
    
      4:     <title>Festlegung auf Standard</title>
    
      5:     <meta http-equiv="X-UA-Compatible" content="IE=9" />
    
      6:   </head>
    
      7:   <body>
    
      8:     <p>...</p>
    
      9:   </body>
    
     10: </html>
    Definieren eines Symbols für die Webseite

    Viele Webseiten zeigen neben der Adresse auch ein eigenes Symbol an. Um diese Funktion in seine eigene Webseite ebenfalls zu ermöglichen, ist ebenfalls nur eine Zeile HTML-Code notwendig:

    image

    Der Source-Code der oben dargestellten Seite:

      1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
      2: <html xmlns="http://www.w3.org/1999/xhtml">
    
      3:   <head>
    
      4:     <title>Festlegung auf Standard</title>
    
      5:     <meta http-equiv="X-UA-Compatible" content="IE=9" />
    
      6:     <link href="/icons/site.ico" rel="shortcut icon" type="image/x-icon" />
    
      7:   </head>
    
      8:   <body>
    
      9:     <p>...</p>
    
     10:   </body>
    
     11: </html>
    Anheften einer Webseite an die Startleiste von Windows 7

    Eines der spannendsten neuen Funktionen im Internet Explorer 9 ist die Möglichkeit, Webseiten an die Startleiste in Windows 7 anzuheften. Das funktioniert übrigens mit jeder Webseite, ohne den HTML-Quelltext zu verändern. Wie geht das? Man zieht einfach das Symbol der Webseite neben der eigentlichen Adresse (oder aber den Karteireiter der Webseite) auf die Taskleiste:

    image

    Anschließend hat man die Webseite auf einen Klick parat in der Startleiste:

    image

    Wenn man die Webseite direkt aus der Startleiste startet, stehen einem noch viel mehr Funktionen zur Verfügung. Dafür werden im folgendem einige Beispiele demonstriert. Keine dieser Funktionen sorgt dafür, dass eine Webseite nicht in anderen Browsern dargestellt werden kann. Dennoch sollte man vorab prüfen, ob die Webseite gerade im Internet Explorer 9 angezeigt wird oder nicht. Je nach dem kann man die Funktionen einfach „hinzuschalten“.

    Internet Explorer 9 erkennen

    Wie erkennt man am einfachsten ob die Webseite gerade im Internet Explorer 9 oder in einem anderen Browser angezeigt wird? Das folgende Beispiel zeigt ein Skript zur Erkennung des Internet Explorer 9.

      1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
      2: <html xmlns="http://www.w3.org/1999/xhtml">
    
      3: <head>
    
      4:   <title>Wird diese Seite im Internet Explorer 9 dargestellt?</title>
    
      5:   <meta http-equiv="X-UA-Compatible" content="IE=9" />
    
      6:   <script type="text/javascript">
    
      7:     function isIe9() {
    
      8:       var version = getInternetExplorerVersion();
    
      9:       if (version >= 9) {
    
     10:         return true;
    
     11:         }
    
     12:       else {
    
     13:         return false;
    
     14:       }
    
     15:     }
    
     16:     function getInternetExplorerVersion() {
    
     17:       var rv = -1; // Return value assumes failure.
    
     18:       if (navigator.appName == 'Microsoft Internet Explorer') {
    
     19:         var ua = navigator.userAgent;
    
     20:         var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    
     21:         if (re.exec(ua) != null)
    
     22:         rv = parseFloat(RegExp.$1);
    
     23:         }
    
     24:       return rv;
    
     25:     }
    
     26:   </script>
    
     27:   </head>
    
     28:   <body>
    
     29:     <p>
    
     30:       <input id="Button1" type="button" value="button" onclick="BLOCKED SCRIPTalert(isIe9());" />
    
     31:     </p>
    
     32:   </body>
    
     33: </html>

    Diese Seite macht nichts anderes, als einen Button darzustellen. Betätigt man diesen, erscheint eine Meldung, die angibt, ob die Seite im Internet Explorer angezeigt wird oder ob man einen anderen Browser benutzt.

    Site-Mode erkennen

    Was ist der Site-Mode? Als Site-Mode bezeichnet man den Modus, wenn man eine Webseite als Anwendung direkt aus der Taskleiste heraus startet. Dadurch kann eine Webseite zusätzliche Funktionen der Windows-Taskleiste verwenden. Eine einfache Möglichkeit zu erkennen, ob die Webseite im Site-Mode betrieben wird, ist ein kleines JavaScript-Snippet:

      1: function isSiteMode() {
    
      2:   try {
    
      3:     if (window.external.msIsSiteMode()) {
    
      4:       return true;
    
      5:     }
    
      6:     else {
    
      7:       return false;
    
      8:     }
    
      9:   }
    
     10: catch (e) {
    
     11:   return false;
    
     12:   }
    
     13: }

    Diese Funktion liefert true zurück, wenn die Seite im Site-Mode gestartet wurde. Andernfalls wird false zurückgeliefert. Diese Methode wird in den beigefügten Beispielen verwendet, um die zusätzlichen Funktionen zu aktivieren.

    Anpassen der Darstellung der Webseite

    Im Site-Mode hat man die Möglichkeit, die Darstellung der eigenen Seite anzupassen. Man kann definieren, wie Navigationsbuttons des Internet Explorer 9 aussehen, wie groß das Fenster beim Starten der Seite sein soll und wie welcher Name und Tooltip in der Startleiste erscheinen soll.

    image

    Der dazu notwendige HTML-Code:

      1: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
      2: <html xmlns="http://www.w3.org/1999/xhtml">
    
      3:   <head>
    
      4:     <title>Festlegung auf Standard</title>
    
      5:     <meta http-equiv="X-UA-Compatible" content="IE=9" />
    
      6:     <link href="/icons/site.ico" rel="shortcut icon" type="image/x-icon" />
    
      7:     <meta name="application-name" content="Sample Site Mode Application"/>
    
      8:     <meta name="msapplication-navbutton-color" content="lightgreen" />
    
      9:     <meta name="msapplication-tooltip" content="Starte die Anwendung" />
    
     10:     <meta name="msapplication-starturl" content="/default.htm" />
    
     11:     <meta name="msapplication-window" content="width=800;height=600" />
    
     12:   </head>
    
     13:   <body>
    
     14:     <p>...</p>
    
     15:   </body>
    
     16: </html>

    Der Parameter msapplication-navbutton-color definiert die Hauptfarbe der Navigationsbuttons. Die Schreibweise für Farben kann nach Namen oder Hexadecimal-Code erfolgen. Mit dem Parameter msapplication-navbutton-tooltip kann festgelegt werden, welcher Text als Tooltip über dem Symbol der angehefteten Webseite erscheinen soll.

    Die URL der Webseite, die gestartet werden soll, kann mit dem Parameter msapplication-starturl definiert werden. Wichtig hierbei ist, dass man jede beliebige Webseite innerhalb der aktuellen Website und auch Links innerhalb einer Seite definiert werden können. Der Parameter msapplication-window legt fest, wie groß das Fenster sein soll, wenn die Anwendung gestartet wird.

    Erstellen von Einträgen in der Sprungliste des Kontextmenüs

    Bisher befanden sich im Kontextmenü nur allgemeine Funktionen zu Programmen, wie zum Beispiel Schließen und Verschieben. Seit Windows 7 hat man die Möglichkeit, in dieses Kontextmenü eigene Menüpunkte zu integrieren:

    image

    Die genaue Bezeichnung für solche Funktionen lautet Sprunglisten. Damit lassen sich Funktionen direkt innerhalb einer bestimmten Website anspringen. Die einzelnen Einträge innerhalb einer Sprungliste können auch in Kategorien gruppiert und mit einzelnen Symbolen versehen werden.

    Sprunglisten können auf zwei Arten erstellt werden. Durch Meta-Tags können Sprunglisten direkt erzeugt werden. Verwendet man JavaScript, um die Einträge der Sprungliste zu erzeugen, so kann man dies dynamisch zur Laufzeit machen.

    Die Meta-Tag Variante sieht wie folgt aus:

      1: <META name="msapplication-task" content="name=Task 1;action-uri=http://host/Page1.html;icon-uri=http://host/icon1.ico"/>
    
      2: <META name="msapplication-task" content="name=Task 2;action-uri=http://microsoft.com/Page2.html;icon-uri=http://host/icon2.ico"/>

    Die JavaScript-Variante sieht wie folgt aus:

      1: window.external.msSiteModeCreateJumplist('Meine Site');
    
      2: window.external.msSiteModeAddJumpListItem('Funktion 4', '07_jumplist.htm', '/icons/add.ico');
    
      3: window.external.msSiteModeAddJumpListItem('Funktion 3', '07_jumplist.htm', '/icons/delete.ico');
    
      4: window.external.msSiteModeAddJumpListItem('Funktion 2', '07_jumplist.htm', '/icons/refresh.ico');
    
      5: window.external.msSiteModeAddJumpListItem('Funktion 1', '07_jumplist.htm', '/icons/search.ico');
    
      6: window.external.msSiteModeShowJumplist();

    Die Funktion window.external.msSiteModeCreateJumplist erzeigt eine neue Sprungliste. Die Funktion window.external.msSiteModeAddJumpListItem fügt einen neuen Eintrag mit einer Zieladresse und einem Symbol hinzu. Die Funktion window.external.msSiteModeShowJumplist aktualisiert die Taskleiste.

    Anzeigen von Buttons im Overlay

    Eine Funktion, die man vom Windows Media Player her kennt, ist die Möglichkeit, Buttons in der Anwendungsvorschau der Taskleiste einbauen zu können. So kann man zum Beispiel den Media Player steuern (nächstes oder vorheriges Lied und Start/Stop), in dem man mit der Maus auf das jeweilige Symbol in dem Vorschaubild über der Taskleiste klickt. Man muss dabei nicht unbedingt die gesamte Anwendung in den Vordergrund holen:

    image

    Diese Möglichkeit hat auch jetzt eine Webseite im Internet Explorer 9 unter Windows 7. Der JavaScript-Code sieht dazu wie folgt aus:

      1: <script type="text/javascript">
    
      2:   function createThumbnailButtons() {
    
      3:     if (!isSiteMode()) {
    
      4:       return;
    
      5:     }
    
      6:   alert('createThumbnailButtons');
    
      7:   btn1 = window.external.msSiteModeAddThumbBarButton('/icons/add.ico', 'button 1');
    
      8:   btn2 = window.external.msSiteModeAddThumbBarButton('/icons/delete.ico', 'button 2');
    
      9:   btn3 = window.external.msSiteModeAddThumbBarButton('/icons/edit.ico', 'button 3');
    
     10:   window.external.msSiteModeShowThumbBar();
    
     11:   document.addEventListener('msthumbnailclick', handler1, false);
    
     12:   }
    
     13: </script>
    Kompatibilität mit anderen Browsern

    Alle Beispiele in diesem Gastbeitrag basiert auf der Beta-Version des Internet Explorer 9 und stehen nur unter Windows 7 zur Verfügung. Allerdings lassen sich die Webseiten ohne Probleme – aber ohne die neue Funktionalitäten - in anderen Browsern darstellen.

    Weiterführende Links

    Der Sourcecode für das einzelne Projekt kann hier heruntergeladen werden:

    Dieses und weitere Beispiele befinden sich hier:

  • Erst eins, dann zwei, dann drei, dann vier….

    Damit das Warten auf den Weihnachtsmann nicht zu langweilig wird, versüßt Microsoft die Zeit bis Weihnachten in diesem Jahr mit dem Internet Explorer 9 Beta Adventskalender!

    img_ie9_advent_367x242_ihnen

    Jeden Tag gibt es Preise wie Windows Phone 7, Xbox 360 mit Kinect und Netbooks. Zur Teilnahme braucht man einfach nur fünf versteckte Features des Internet Explorer 9 Beta im Adventskalender aufdecken. Schon nimmt man an der Verlosung des Tagespreises teil. Welcher Preis sich hinter welchem Türchen versteckt, das weiß nur der Weihnachtsmann. Das Beste: Man kann jeden Tag neu mitmachen und sein Glück versuchen!

    Have fun!
    Daniel