Some COM and .NET Notes

This document explains some terminology used on other pags.

ActiveX
A technology layered on OLE that supports a method, IDispatch(), that executes method calls by name (by a string argument). IDispatch() solved the problem of scripting languages being late bound, and not able to handle multiple interfaces. ActiveX also covered other technical things, but the IDispatch feature is relevant to this topic.
Assemblies
A group of classes. The classes generally work together, and form a namespace. Analagous to a Java package. The .NET assemblies are analagous to the Java class libraries.
CLR, Common Language Runtime
A "virtual machine" that executes programs coded in CL, a platform-neutral assembly language produced by compilers. The CLR is also called a "managed environment" because the virtual machine takes care of many runtime issues like allocating memory.
COM - Component Object Model
Microsoft's object technology that allows code objects written in different languages to interact with each other. The idea was that you could instantiate an object written in C++ from within VB.
OLE - Object Linking and Embedding
A technology layered on COM that defined how independently running objects would interact with each other. One example is how code in MS Excel can execute a macro in MS Word.
Late Binding - Dynamic Typing
The type of an object is not known until it is used. This contrasts with early binding, or static typing, where you declare that an object is of a specific type, first, then use it. Early binding in the COM environment is used when you declare that an object uses a specific interface. That allows the compiler to check that your method calls conform to the interface.
Managed
See CLR. Managed code is any code that runs within the CLR. The execution is "managed" because the CLR takes care of things like memory allocation and threads.
Multiple Interfaces
The technique used by MS VB and COM to implement objects. An object implements an interface, and may implement more than one. To interact with the object, you instantiate the object with the specific interface, and that defines how you interact with it.