.NET 2.0 Interoperability Recipes: A Problem-Solution Approach - Bukovics, Bruce (Apress, 2012)
It is difficult or impossible to immediately throw out all existing code and start over when a new technology arrives. That’s the situation with Microsoft .NET. It represents a new and improved way of developing software for the Windows platform. And, given the chance, you would likely love to rewrite all of your existing code in the newer managed code environment that .NET provides. However, you have that little problem known as legacy code. You may have C libraries, C++ class libraries, Visual Basic 6.0 COM components, or ATL COM components that you rely upon to run your applications. You may be using third-party libraries and COM components that represent a significant investment. You can’t simply throw all of that away. Instead, you need to find a way to move forward with new .NET development while reusing existing pieces of tested, working code. You need a way to interoperate with the existing code until you have a chance to finally rewrite all of it in .NET (if ever).