# Trident (Software)

Trident (auch bekannt als MSHTML) ist die HTML-Rendering-Engine der Windowsversionen des Webbrowsers Internet Explorer von Microsoft. Die erste Version von Trident wurde 1997 mit der Veröffentlichung von Internet Explorer 4 eingeführt und bis heute weiterentwickelt – sie ist ein Kernbestandteil aller Nachfolgeversionen von Internet Explorer.
Frühere Versionen des Internet Explorers für Mac OS basierten auf der völlig eigenständigen Tasman-Engine.
In den Versionen 7, 8 und 9 dieses Browsers nahm Microsoft gravierende Änderungen an der Engine vor, um ihre Kompatibilität zu den etablierten Webstandards zu verbessern. Einen wesentlichen Fortschritt in dieser Richtung stellte der Internet Explorer 7 dar, weil Microsoft damit viele Fehler, teilweise auch schwerwiegende, beheben konnte. Die Nachfolgeversion, der Internet Explorer 8, bestand erstmals den Acid2-Test, der Internet Explorer 9 den Acid3-Test. Außerdem wurden mit dieser Version erneut zahlreiche Neuerungen des Webstandards implementiert. Die letzte Version des Browsers (Internet Explorer 11) vor Einstellung des Produktes setzte diese Entwicklung fort.

## Trident in der Softwareentwicklung

Trident wurde entwickelt, um Entwicklern das einfache Integrieren in Eigenentwicklungen zu ermöglichen. Die Engine bietet eine COM-Schnittstelle an, um Websites in Umgebungen mit COM-Unterstützung anzuzeigen und zu bearbeiten; beispielsweise stellen die Programmiersprache C++ und die .Net-Framework-CLR eine solche Unterstützung zur Verfügung. Dabei kann ein Browser-Steuerelement einem C++- oder VB-Programm hinzugefügt und verwendet werden, um die Inhalte einer im Browser geladenen Website abzurufen. Ebenso können Ereignisse der Browserbedienung abgefragt werden. Die Trident-Funktionalität wird durch Verknüpfen der Datei mshtml.dll mit dem Projekt erreicht.

## Versionen

* Legende:
* Ältere Version; nicht mehr unterstützt
* Ältere Version; noch unterstützt
* Aktuelle Version
* Aktuelle Vorabversion
* Zukünftige Version
| Version | Browser- kennung | Anmerkungen und wichtigste Änderungen |
| Ältere Version; nicht mehr unterstützt: 4.0 | | Erste Version |
| Ältere Version; nicht mehr unterstützt: 5.0 | | Verbesserte CSS-1-Unterstützung und Änderungen an der CSS-2-Unterstützung. |
| Ältere Version; nicht mehr unterstützt: 5.5 | | Probleme mit der CSS-Verarbeitung korrigiert |
| Ältere Version; nicht mehr unterstützt: 6.0 | | Fehler im sogenannten "Boxmodell" behoben, Quirks-Modus hinzugefügt |
| Ältere Version; nicht mehr unterstützt: 7.0 | | Zahlreiche Fehler des CSS-Renderings behoben, Unterstützung für transparente PNG-Grafiken hinzugefügt |
| Ältere Version; nicht mehr unterstützt: Mobile 7.0 | Trident/3.1 | Veraltete Version für Windows Phone 7, basiert auf einem Mix aus der Desktopversion 7 und 8. |
| Ältere Version; nicht mehr unterstützt: 8.0 | Trident/4.0 | Aktuelle Version unter Windows XP. Besteht als erste Version den Acid2-Test |
| Ältere Version; nicht mehr unterstützt: 9.0 | Trident/5.0 | Aktuelle Version unter Windows Vista. Der Hersteller möchte vollständige CSS-3.0 Kompatibilität erreichen. Das Seitenrendering soll dank Direct2D deutlich schneller als bei vorherigen Versionen sein und damit trotz höherer Sicherheit eine ähnlich hohe Geschwindigkeit wie Konkurrenzprodukte erreichen. |
| Ältere Version; nicht mehr unterstützt: Mobile 9.0 | Trident/5.0 | Aktuelle Version für Windows Phone 7, basierend auf der Desktopversion 9.0, vollständig hardwarebeschleunigt |
| Ältere Version; nicht mehr unterstützt: 10.0 | Trident/6.0 | Version unter Windows 8. Verbesserte Unterstützung für CSS 3.0, HTML5 und JavaScript. |
| Ältere Version; nicht mehr unterstützt: Mobile 10.0 | Trident/6.0 | Veraltete Version für Windows Phone 8, basierend auf der Desktopversion 10.0 |
| Aktuelle Version: 11.0 | Trident/7.0 | Aktuelle Version unter Windows 7 und Microsoft Windows 8.1 |
| Aktuelle Version: Mobile 11.0 | Trident/7.0 | Aktuelle Version unter Windows Phone 8, basierend auf der Desktopversion 11.0 |
Die Versionsnummer bezieht sich auf die Version der MSHTML.dll, diese ist jeweils auch mit der des Internet Explorers identisch. Mit dem Internet Explorer 8.0 wurde die Browserkennung dahingehend erweitert, dass ein Hinweis auf die verwendete Version von Trident enthalten ist.

## Trident-basierte Anwendungen

Sämtliche Versionen von Internet Explorer ab Version 4 nutzen Trident als Rendering-Engine. In Windows 98, Windows Me, und Windows 2000 greift der Windows-Explorer auf die Engine zurück, in Windows XP wird sie für die Systemsteuerungselemente "Software" und "Benutzerkonten" verwendet; die Module sind HTML-Anwendungen.
Daneben machen zahlreiche Programmkomponenten und Anwendungen anderer Hersteller davon Gebrauch, darunter:
* AOL Instant Messenger 6.x, der Trident verwendet, um Unterhaltungen, Profilfenster und Werbeeinblendungen zu rendern
* EA Link, ist mit Trident 5 (wie in Internet Explorer 7 enthalten) nicht kompatibel
* Google Talk verwendet Trident, um Nachrichtenfenster und Profilkarten anzuzeigen
* LimeWire renderte damit die Seite 'New@Lime'
* Der Webbrowser Avant Browser
* Xtravo Explorer
* TheWorld Browser
* Der Webbrowser Lunascape
* Maxthon verwendet die Trident 5-Engine und fügt Funktionen hinzu, die in Internet Explorer 7 nicht vorhanden sind
* MenuBox fügt Trident ein erweitertes DOM hinzu, um damit HTML-Anwendungen und Wrap-Webdienste als lokale Anwendungen ausführen zu können
* Microsoft InfoPath
* Microsoft Encarta
* Kompilierte HTML-Hilfedateien
* Microsoft Outlook (bis Version 2003), um E-Mails im HTML-Format zu rendern und "Outlook Heute" anzuzeigen
* Microsoft Outlook Express, um E-Mails im HTML-Format zu rendern
* Windows Live Messenger, um Flash-basierte Spiele bereitzustellen und Werbung anzuzeigen
* Der Webbrowser Netscape Navigator (Version 8), um Websites im IE-Kompatibilitätsmodus zu rendern
* RealNetworks
* SiteKiosk
* Souvergin
* Teega
* TomeRaider
* Windows Media Player, um Albuminformationen anzuzeigen. Andere Player wie Winamp und RealPlayer bringen ähnliche Funktionen mit.

## Standardkonformität

Obwohl jede Version von Internet Explorer Webstandards grundsätzlich unterstützt (in Internet Explorer 6 war ein "Standards-Compliant Mode" implementiert), wurden einige Kernstandards unvollständig gerendert. So gab es zum Beispiel keine Unterstützung für das Element <abbr>, das mit HTML 4.01 eingeführt wurde und bei der Darstellung umfließender Innenabstände von Containern, die in CSS 1 festgelegt wurden. Ferner wurde die CSS-Angabe min-height nicht unterstützt, die eine Mindesthöhe dehnbarer Container zulassen soll.
Internet Explorer 8 unterstützt CSS 2 vollständig.

## Alternativen von Microsoft
### Tasman

Die HTML-Rendering-Engine Tasman wurde in Internet Explorer 5 für Mac genutzt. Internet Explorer für Mac hat zuvor Trident verwendet. Die Entwicklung von Internet Explorer für Mac wurde 2003 eingestellt, Tasman wurde eingeschränkt weiterentwickelt und später in Microsoft Office 2004 for Mac eingesetzt.

### Expression Web

Microsofts Webdesign-Projekt Expression Web verwendet statt Trident einen eigens dafür entwickelten Renderer, der laut Microsoft die Webstandards am konsequentesten umsetzen soll.

### EdgeHTML

EdgeHTML ist Microsofts kurzlebige HTML-Rendering-Engine, die erstmals unter Windows 10 im Webbrowser Microsoft Edge zum Einsatz kam. Seit 2018 arbeitet Microsoft jedoch an einen Chromium-basierten Nachfolger, so dass wegen der ohnehin geringen Nutzerbasis die Bedeutung von EdgeHTML noch mehr schwinden wird.