Windows-Kernel ist in C-Sprache geschrieben und Windows-Komponente sind in C++ geschrieben. Wenn Ihre Frontend-Anwendung (z. B. Visual Basic oder C#) mit diesen Komponenten intakt sein muss, benötigen Sie eine Art Mechanismus/Standard, um mit diesen Komponenten zu interagieren. Dieser Interaktionsmechanismus // Standard heißt COM.
Laut Microsoft "COM ist ein plattformunabhängiges, verteiltes, objektorientiertes System zum Erstellen binärer Softwarekomponenten, die interagieren können".
Bitte beachten Sie, dass Sie. NET-Laufzeit nicht benötigen, um mit COM-Komponente zu interagieren. Es kann mit alten Sprachen wie Visual Basic, VC++ etc. aufgerufen werden.
Jetzt müssen die meisten Anwendungen, die in .Net- und .Net-Anwendungen entwickelt werden, mit Windows-Komponenten interagieren. Microsoft erstellt eine Schicht (API) oben auf der Windows-Komponente, so dass .NET-Anwendung problemlos mit der Windows-Komponente interagieren kann. Diese Ebene ist WinRT. Als Frontend-Entwickler müssen Sie mit WinRT interagieren und WinRT wird in Ihrem Namen mit der Windows-Komponente interagieren.
Bei .Net-Anwendungen ersetzt WinRT eventuell COM. Aber für Non-.Net-Anwendungen ist COM noch am Leben.
* "(...) aber Sie können COM ohne es tun)." - Das gilt nur für In-Process-Objekte, die das aktuelle Apartment unterstützen. Sie können eine DLL laden und 'DllGetClassObject' selbst aufrufen, aber das ist eine sehr schlechte Übung, wenn Sie beabsichtigen, mit anderen COM-Objekten zu interagieren. COM und WinRT bieten eine große Infrastruktur, auf die über Bibliotheksaufrufe und Basisklassen zugegriffen werden kann.Obwohl sie keine obligatorische und umfangreiche "Laufzeit" wie CLR oder JVM definieren, haben sie ihre "Laufzeit" -Bibliotheken und -Klassen. – acelent
@acelent - Ich habe nie gesagt, dass Sie COM nicht komplex machen können. Die einfachste COM ist nicht einmal über Dlls oder Interop, es ist nur ein binärer Vertrag. –
Ich streite umgekehrt: Sie sollten keine der "Komplexitäten" von COM selbst ausführen. Und dass es eine Bibliothek, eine Reihe von Hilfs- und Basisklassen und eine Menge Buchhaltung in COM gibt. – acelent