http://msdn.microsoft.com/library/en-us/cossdk/htm/complusportal_9o9x.asp?frame=true En kort sammanfattning. Eftersom frågan är ställd i ett .NET forum så tar jag det som utgångspunkt.Sv: COM, DCOM, COM+
http://msdn.microsoft.com/library/en-us/dndcom/html/msdn_dcomhb.asp?frame=true
http://msdn.microsoft.com/library/en-us/com/htm/comportal_3qn9.asp?frame=true
lite länkar som kanske kan hjälpa? Sv: COM, DCOM, COM+
COM är många saker och dess betydelse har förändrats under åren. Idag när man pratar COM menar man den komponentteknologi som länge har funnits i Windows. Utmärkande för COM är:
* Alla komponenter måste registreras i Registry innan de kan användas
* All kommunikation mellan client och komponent sker genom interface, COM har alltså inte någon direkt kunskap om klasser. Fast det är ju alltid en klass som implementerar interfacet...
* Visual Basic 6.0 är det vanligaste verktyget för att skapa COM komponenter, även om man kan göra det i många andra språk/verktyg också.
DCOM står för Distributed COM. Det är en utvidgning av COM som gör det möjligt att anropa COM komponter över maskingränser. Du kan t.ex. från en webserver anropa en affärskomponent på ett annan maskin.
Både COM och DCOM ersätts av .NET. Lite förenklat kan man säga att Common Language Runtime (CLR) ersätter COM, DCOMs ersättare kan man anse vara .NET Remoting.
Det finns självklart ett stort behov av att anropa COM komponenter från .NET (det finns ju ganska många system som använder COM), och tvärtom. För att göra detta enkelt finns COM Interop, kolla efter det i SDK hjälpen.
När det gäller COM+ är saken lite annorlunda. COM+ är en uppsättning tjänster som är användbara vid komponentbaserad utveckling. T.ex. förenkling av transaktioner över klass- och komponentgränser, objektpoolning, säkerhet, queued components, etc.
Även om detta kallas COM+ så betyder inte det att det enbart kan användas av COM komponenter. Du kan använda dessa tjänster även i .NET komponenter, kolla i namespacet System.EnterpriseServices.
Hoppas detta hjälper dig lite.
/Mattias