Search code examples
c#.netcom-interop

COM Interop .NET Assembly - A Terminology Question


My question is only about terminology. Does "COM Interop" refer only to using a COM component or object inside a .NET project?

What term is best used for the practice of making a .NET Assembly and designing and configuring it for use in COM applications (such as VB6 or VBA)?


Solution

  • COM Object :

    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 Microsoft software development industry as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, COM+ and DCOM technologies.

    So a COM object isn't language dependent. It's a communication protocol.
    So anything that uses this protocol is a COM Object.

    You can create dlls that support COM Communication using .NET Framework.

    A COM Interop is the interface .NET uses to wrap the COM Communication so you can write regular .NET code without having to mess with COM protocol and declarations. Visual Studio can create Interops when you reference COM objects to the project.

    COM Interop is a technology included in the .NET CLR that enables COM objects to interact with .NET objects, and vice versa.