What is COM Component RRS feed

  • Question

  • User155303772 posted

     What is COM componenet?

    i read in an article that "COM Components usually take the form of an EXE, or DLL file" .I want to know whether is it like Assembly file ?

    Assembly also takes the form of .dll or .exe file.


    Friday, June 12, 2009 2:14 AM

All replies

  • User2032526919 posted


    Component Object Model (COM) is a binary interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages. The term COM is often used in the software development industry as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM technologies.

    The essence of COM is a language-neutral way of implementing objects that can be used in environments different from the one they were created in, even across machine boundaries. For well-authored components, COM allows reuse of objects with no knowledge of their internal implementation, as it forces component implementers to provide well-defined interfaces that are separate from the implementation. The different allocation semantics of languages are accommodated by making objects responsible for their own creation and destruction through reference-counting. Casting between different interfaces of an object is achieved through the QueryInterface() function. The preferred method of inheritance within COM is the creation of sub-objects to which method calls are delegated.

    Although the interface standard has been implemented on several platforms, COM is primarily used with Microsoft Windows. For some applications, COM has been replaced at least to some extent by the Microsoft .NET framework, and support for Web Services through the Windows Communication Foundation (WCF). However, COM objects can still be used with all .NET languages without problems. Networked DCOM uses binary proprietary formats, while WCF encourages the use of XML-based SOAP messaging. COM is very similar to other component software interface standards, such as CORBA and Java Beans, although each has its own strengths and weaknesses. It is likely that the characteristics of COM make it most suitable for the development and deployment of desktop applications, for which it was originally designed.


    Read more for more details. One main difference between COM component and .NET dlls is that .NET dlls (assemblies) contain a manifest describing what the assembly contains. E.g assembly is self-describing. Even though they might have same file extensions, their difference is a lot nmore than that.

    Sunday, June 14, 2009 3:05 PM