Frage

Ich habe auf dem Internet über Net-Applets über einige Artikel kommen, und ich habe mich gefragt, wie es sich von einem ActiveX-Steuerelement unterschieden (erstellt eine .Net-Sprache)? (Zu klären, ist dies im Hinblick auf den Applets, die in einem Web-Browser ausgeführt wird)

(Ist der Unterschied:? ActiveX-Steuerelemente in einer .NET-Sprache geschrieben sind .Net Applets genannt)

Gibt es irgendwelche Vorteile in eine über die andere verwenden?

Auch, was referenziert Microsoft diese Technologie als? (Eine Suche auf MSDN tut nichts bringen genannt .Net Applets!)

ps: was kann ich ActiveX-Steuerelemente sehen müssen COM registriert sein, während .Net-Applets nicht. Auch in der Web-Seite wird ActiveX-Steuerelemente verweist ihre CLSID verwenden, während der .NET scheinen Applets von einem vollständigen Namen (Pfad, dll Name, Namespace und Klasse)

referenziert werden
War es hilfreich?

Lösung

ActiveX-Steuerelemente sind einfach COM-Objekte, die, auf ein Minimum, IUnknown implementieren. Neuere Versionen von IE haben damit begonnen, auch das Objekt erfordern IObjectSafety zu implementieren. Um etwas nützlich, muss das Objekt einige andere Ole-Schnittstellen als auch implementieren, wie IDispatch, IOleObject, etc. Das Objekt muss sein create-Lage über CoCreateInstance (), das heißt, Sie müssen registrieren es mit der Registrierung in irgendeiner Weise. Sie müssen nicht ein in dem Tag guid verwenden, können Sie auch die Verwendung AppId , wenn Sie registrieren.

Sie können auch einige verwalteten Code schreiben und erhalten, dass auch innerhalb IE läuft. Die Art und Weise, die funktioniert ist die CLR ein MIME-Filter , wenn es installiert ist. Dann, wenn IE sieht Sie senden etwas von der richtigen Mime-Typ nach unten, die Hände es den Code aus, um die CLR zu behandeln. Die CLR tut Sandbox den Code in dem Maße, dass es nur Internet-Berechtigungen erteilt wird, so kann es nicht alles tun, das Framework aussetzt. Sie werden für spezifische Dokumentation überprüfen, was kann und kann nicht in dieser Sicherheitszone durchgeführt werden.

Einige Kompromisse:

Einfache Installation: ActiveX-Steuerelemente benötigen Sie alles mit einer INI-Datei in eine CAB-Datei zu packen, die die Installationsanforderungen in eine ziemlich kryptischen Weise beschreibt. Wenn Sie weitere Abhängigkeiten mit Modulen (wie ATL / MFC-DLLs oder andere Module von Drittanbietern) installieren müssen, es wird ziemlich schwierig. Mit dem .net-Modul, Sie schicken Sie es einfach mit dem richtigen MIME-Typ nach unten, aber Sie müssen sicherstellen, dass Ihre Benutzer die richtige Version des Frameworks (die Sie über User-Agenten-String auf Ihrer Website überprüfen).

Sicherheit: ActiveX-Steuerelemente sind nur nativen Code auf dem System des Benutzers ausgeführt wird, so in der Theorie können sie tun, was sie wollen. In der Praxis begrenzt Lorie es in vielen Fällen, und Sie haben eine Reihe von speziellen Gehäusen von Dingen wie Registry und Dateisystemzugriff (siehe Verstehen und Arbeiten im geschützten Modus ).

Threading: Da ActiveX-Steuerelemente auf dem Browser UI-Thread ausgeführt wird, müssen Sie sicherstellen, dass Sie nicht mehr lange tun Operationen auf diesem Thread blockiert, so dass Sie das Einfädeln selbst zu tun haben. Wenn Ihr langer Sperrbetrieb den DOM manipuliert, müssen Sie die IHTMLxxx selbst Schnittstellen Marschall, entweder mit der GIT oder COM-Rangierung Funktionen . Ich bin mir nicht sicher, ob das .net-Applets auf dem Browser UI-Thread ausgeführt werden oder nicht, aber es ist einfacher, in C # zu behandeln ist mir sicher.

Browser-Objekte: Wenn Sie IE / Shell-Objekte in Ihrer verwalteten Erweiterung verwenden möchten, haben Sie die Interop sich die meiste Zeit zu schreiben, da das Framework nicht eine große Aufgabe der macht diese Schnittstellen in verwalteten Objekte wickeln. Siehe http://pinvoke.net eine wenig Hilfe zu erhalten begonnen.

Kompatibilität: Es gibt Probleme mit verschiedenen Versionen der Laufzeit im gleichen Prozess-Hosting. Bis vor kurzem war es gar nicht möglich, aber ich denke, mit den Versionen 3.x es begonnen hat, in einem Ausmaß möglich zu werden. Das Ergebnis ist, wenn Sie .net 1.0 als Teil ihres Browser-Erweiterung .net 2.0 und jemand anderes bereits geladen Ziel, Sie verlieren. Im Allgemeinen IE und Windows-Shell nicht unterstützen verwaltete Erweiterungen. Dieses .net app MIME-Filter Material kann eine bemerkenswerte Ausnahme sein, aber darüber im Klaren sein, dass es Potential sein kannFragen.

Andere Tipps

"ActiveX-Steuerelement (erstellt eine .Net-Sprache)" und ".NET-Applet" ist beide Slang für ".NET-Assembly in IE gehostet".

In der Tat kann .NET-Assemblies in einer Vielzahl von Anwendungen gehostet werden. Siehe auch:

Erstellen eines Host die .NET Common Language Runtime

ActiveX-Steuerelemente haben nicht die gleichen Sicherheitseinschränkungen als .NET-Applets, die ein Vorteil oder Nachteil sein kann, je nachdem, was Sie tun möchten. .NET-Applets sind in der Regel einfacher zu entwickeln, ActiveX Sie erstellen mit VB6 oder C ++.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top