Was bedeutet COM-Objekt?


9

Was ist es? Soweit ich weiß, handelt es sich bei einigen Objekten um eine Art Microsoft-Spezialtechnologie. Aber was genau?

Antworten:


3

Es ist im Grunde eine alte Technologie, die zum Schreiben von Programmen in der Windows-Umgebung verwendet wird. Es ist groß und komplex und hat keinen Spaß gemacht, es zu verwalten / zu unterstützen. Das .NET Framework ist sein Ersatz.


1
Werden in .NET Framework keine COM-Objekte verwendet?
Sergey

3
Sie können von .NET aus aufgerufen werden, sind jedoch ein völlig anderes System. Es heißt COM Interop. Sie können sie auf Ihrem Computer ein wenig erkunden - unter Systemsteuerung >> Verwaltung >> Komponentendienste.
Morgan T.

2
COM wird nicht so schnell irgendwohin gehen. Es wird häufig von Microsoft-eigenen Produkten verwendet. Ich finde es daher etwas irreführend, dass man es "im Grunde eine alte Technologie" nennt. Ja, es wurde zum ersten Mal in den frühen 90ern eingeführt, technisch gesehen ist es also "alt" in dem Sinne, dass es schon eine Weile her ist, aber Sie müssen darauf achten, nicht darauf hinzuweisen, dass es veraltet oder veraltet ist.
Cody Gray

12

Ein COM-Objekt ist im Grunde eine Black Box, die eine bekannte Schnittstelle implementiert. Es kann sich auch bei Windows registrieren, damit Programme darauf zugreifen können.

Nehmen wir zum Beispiel an, es gibt eine Schnittstelle ICalculator, für die ich mein Programm schreibe. Ich kann jetzt jedes Objekt austauschen, das in einer beliebigen Programmiersprache geschrieben ist (da es sich um eine binäre Schnittstelle handelt), die implementiert wird ICalculator. Dann kann ich meinen Benutzern zur Laufzeit eine Option zur Verfügung stellen, damit sie FooCorpCalculatordas in Python geschriebene COM-Objekt verwenden können. Wenn sie mehr Geschwindigkeit benötigen, können sie ein NinjaCalculatorin C geschriebenes Objekt auswählen . Der Punkt ist, ich schreibe Mein Programm hängt von einer Schnittstelle ab, nicht von einer Implementierung, und wählt dann das eigentliche COM-Objekt, das die Schnittstelle später implementiert.

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


4

Siehe diesen Wikipedia-Artikel: Komponentenobjektmodell

Das Component Object Model (COM) ist ein 1993 von Microsoft eingeführter Standard für binäre Schnittstellen für Softwarekomponenten. Er ermöglicht die Kommunikation zwischen Prozessen und die dynamische Objekterstellung in einer Vielzahl von Programmiersprachen. Der Begriff COM wird in der Microsoft-Softwareentwicklungsbranche häufig als Oberbegriff für die Technologien OLE, OLE Automation, ActiveX, COM + und DCOM verwendet.

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 hier verwendete Begriff "Objekt" bezieht sich auf Objekte in der objektorientierten Programmierung .


1
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

1

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

In den frühen neunziger 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. Deshalb haben sie eine Spezifikation entwickelt, mit der ihre internen Produkte Daten austauschen und sich gegenseitig Funktionen aufrufen können. Microsoft hat diese APIs verallgemeinert, veröffentlicht und viele weitere Richtlinien für das Code-Design.

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

Ich denke, dass COM auch 2012 noch im Mittelpunkt von WMI und Office steht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.