I’ve never directly used COM although I’ve been a professional .NET programmer for 3-4 years; I’m trying to understand what exactly COM is and does. Looking at the SO tag wiki for [COM] it mentions: “Component Object Model (COM) is a component technology from Microsoft, featuring remoting […]”. (emphasis mine.)
What does “remoting” mean in this context?
Remoting in a COM context means “ability to reference an object in another scope” where that scope could be in another apartment in the same process, or in another process on the same machine or even a different machine. A COM apartment is a running context whose configuration defines the ways other COM objects may call COM objects inside the apartment.
Processes, Threads, and Apartments (COM) @ MSDN
In .NET, remoting means “ability to converse with an object in another location”, and is an entire subsystem in itself for making calls across process and machine boundaries.
.NET Framework Remoting Overview @ MSDN
.NET has the concept of AppDomains, which have intents that are similar to COM apartments. Most applications written on .NET don’t explicitly manage multiple AppDomains at anywhere near the same amount of awareness that is required in COM.
System.AppDomain @ MSDN