Was bedeutet COM-Objekt?

2438
Sergey

Was ist es? So wie ich es verstanden habe, handelt es sich bei einigen Objekten um eine Art Microsoft-Spezialtechnologie. Aber was genau?

9

4 Antworten auf die Frage

10
dsolimano

Ein COM-Objekt ist im Grunde eine Blackbox, die eine bekannte Schnittstelle implementiert. Es kann sich auch bei Windows registrieren, damit Programme es in den Griff bekommen können.

Angenommen, es gibt eine Schnittstelle ICalculator, die ich für mein Programm schreibe. Ich kann jetzt in jedes Objekt wechseln, das in einer beliebigen Programmiersprache (da es sich um eine binäre Schnittstelle handelt) geschrieben wurde ICalculator. Zur Laufzeit kann ich meinen Benutzern so eine Option anbieten, dass sie FooCorpCalculatordas in Python geschriebene COM-Objekt verwenden können. Wenn sie mehr Geschwindigkeit benötigen, können sie ein NinjaCalculatorin C geschriebenes Element auswählen. Ich schreibe Mein Programm hängt von einer Schnittstelle ab, nicht von einer Implementierung, und verwendet dann das eigentliche COM-Objekt, das die Schnittstelle später implementiert.

Natürlich gibt es noch viel mehr, aber das könnte ein Beispiel sein, das es für Sie konkreter macht.

4
bwDraco

Siehe diesen Wikipedia-Artikel: Component Object Model

Component Object Model (COM) ist ein binärer Schnittstellenstandard für Softwarekomponenten, der 1993 von Microsoft eingeführt wurde. Er wird verwendet, um die Kommunikation zwischen Prozessen und die dynamische Objekterstellung in einer Vielzahl von Programmiersprachen zu ermöglichen. Der Begriff COM wird in der Microsoft-Softwareentwicklungsbranche häufig als Oberbegriff verwendet, der die Technologien OLE, OLE Automation, ActiveX, COM + und DCOM umfasst.

Ein COM-Objekt wird häufig in einer DLL-Datei implementiert. Sie können von Programmen für eine Vielzahl von Funktionen verwendet werden. Der Begriff "Objekt" bezieht sich hier auf Objekte in der objektorientierten Programmierung .

Deshalb habe ich diese Frage gestellt. weil die Wikipedia es nicht beantwortet hat. Die Definition ist sehr abstrakt und ich sehe kein wirkliches Beispiel. Sergey vor 13 Jahren 1
4
MorganTiley

Es ist im Grunde eine alte Technologie, die zum Schreiben von Programmen in der Windows-Umgebung verwendet wird. Es ist groß und komplex und es war nicht angenehm zu verwalten / zu unterstützen. Das .NET-Framework ersetzt es.

werden in .NET Framework keine COM-Objekte verwendet? Sergey vor 13 Jahren 0
Sie können von .NET aus aufgerufen werden, sind jedoch ein völlig anderes System. Es heißt COM Interop. Sie können sie etwas auf Ihrem Computer untersuchen - unter Systemsteuerung >> Verwaltung >> Komponentendienste. MorganTiley vor 13 Jahren 2
COM geht nirgendwohin. Es wird weitgehend von Microsofts eigenen Produkten verwendet. Ich denke, es ist daher etwas irreführend, dass Sie es "im Grunde eine alte Technologie" nennen. Ja, es wurde zum ersten Mal in den frühen 90ern eingeführt, technisch gesehen ist es "alt" in dem Sinne, dass es schon eine Weile her ist, aber Sie müssen darauf achten *, dass es nicht veraltet oder veraltet ist. Cody Gray vor 12 Jahren 1
0
knb

COM besteht aus einer Reihe von Windows-spezifischen Technologien, um die Wiederverwendung und Interoperabilität von Code zu ermöglichen, hauptsächlich auf der Ebene der Binärdatei (nicht unbedingt auf der Ebene des Quellcodes).

In den frühen 1990er Jahren erlaubte Bill Gates nicht, dass das Powerpoint-Entwicklungsteam ein eigenes Diagrammsubsystem für das Powerpoint-Produkt implementierte, da Microsoft bereits über Excel verfügte. Daher entwickelten sie eine Spezifikation, damit ihre internen Produkte Daten austauschen und sich gegenseitig Funktionen aufrufen können. Microsoft verallgemeinerte diese APIs, veröffentlichte sie und viele weitere Richtlinien für die Codeentwicklung.

Sehen Sie dieses Video von 2006: Tony Williams: Miterfinder von COM

Ich denke, dass COM 2012 immer noch im Zentrum von WMI und Office steht.