ActiveX (AX)
Eintrag zuletzt aktualisiert am: 23.09.2009
ActiveX ist ein Dienst auf Basis von COM und
DCOM, der die Dienste von
OLE umfasst und ergänzt. Dabei hat Microsoft selbst Abgrenzungsschwierigkeiten zwischen den Begriffen ActiveX und COM.
Microsoft hat den Begriff ActiveX seit 1996 so sehr in den Vordergrund gestellt, dass er schließlich mit COM gleichgesetzt wurde. Erst im Laufe der Jahre 1998 und 1999 fand eine Rückbesinnung statt, die schließlich zur Einschränkung von ActiveX auf einen Dienst von COM führte. Microsoft definiert in einem Beitrag in der Knowledge Base (»Description of ActiveX Technologies«, [Q154544], Stand August 1999) ActiveX über folgende Teiltechnologien:
ActiveX-
Steuerelemente (ActiveX Controls)
ActiveX-Dokumente (ActiveX Documents)
ActiveX Scripting
In den letzten Jahren wird ActiveX nur noch für die Einbetten von
Objekten in den Browser verwendet, wobei gerade dort ActiveX einen schlechten Ruf wegen seines Sicherheitsmodells hat.
ActiveX ist aufgrund seines Schwarz-Weiß-Sicherheitsmodell nicht geeignet für Internet-Anwendungen, denn bei ActiveX kann man ein
Steuerelement entweder nur komplett verbieten oder aber das
Steuerelement mit den vollen Rechten des angemeldeten Benutzers (etwas eingeschränkt ab
Windows Vista mit aktivierter Benutzerkontensteuerung) ausführen. Eine Sandbox mit selektiver Ausführung wie bei Silverlight und den ".NET
Applets" auf Basis von
WPF WBA oder
Windows Forms, gibt es hier nicht. Im Intranet ist es aber kein Problem, den eigenen ActiveX-
Steuerelementen zu vertrauen.
Für Intranet-Anwendungen gilt oft die Anforderung des Zugriffs auf lokale Ressourcen wie
Dateisystem, Smart-Card-Reader und Spezialdruckern (z.B. für Etiketten). Solche Hard- und Softwareressourcen kann man weder mit
WBA noch mit
Windows Forms-basierten
Applets ansprechen. Dafür gibt es neben ActiveX allenfalls die Lösung einer
XML Brower Application (
XBAP) mit Hilfe von
WPF.
ActiveX-
Steuerelemente mit Hilfe von .NET zu erstellen, ist zwar technisch möglicht, macht aber keinen Sinn. Denn erstens braucht man dann ein
.NET Framework auf dem Client und zweites würde dann auch wieder das Sicherheitssystem greifen, das man ja im Fall des Zugriffs auf Ressourcen nicht will. ActiveX programmiert man am besten mit C++ als
Unmanaged Code, denn die entstehenden
DLLs sind klein und eine Laufzeitumgebung ist nicht erforderlich.