Game Development Reference
Using .NET Assemblies
as COM Objects
The lowest form of thinking is the bare recognition of the object. The highest,
the comprehensive intuition of the man who sees all things as part of a system.
Microsoft engineers have devoted a significant amount of work to the Component
Object Model (COM) since its inception in 1998. Many software projects invested
a lot of time and resources into adopting COM because it made sense at the time.
With the introduction of the .NET platform, software projects are starting to build
reusable components as strongly named .NET assemblies rather than dealing with
COM. Some companies have the available resources to migrate entire projects over
to .NET, while most companies only have the resources to migrate individual sub-
systems to the .NET platform one component at a time.
Thankfully for projects on a tight budget or schedule, the .NET framework provides
tools and strategies to promote easy integration with legacy components, and the
ability to allow legacy components to interact with .NET components. This chap-
ter covers the interoperability support that allows .NET components to be registered
for COM, thus allowing legacy applications to communicate with managed code
without being managed themselves.