During the last two hours, you learned a variety of methods for integrating your legacy libraries and objects with the .NET Framework. If Microsoft hadn't maintained this layer of interoperability, many developers would have spent lots of time and money converting their code to work in the managed environment.
With this new technology comes yet another design decision you have to make when creating new applications. Do you create a managed application that runs within the common language runtime, or do you create an unmanaged application that can be used easily in both unmanaged and managed environments? Although some developers may be wary about creating unmanaged native C++ applications in fear of them later becoming obsolete due to not being supported, rest assured that unmanaged application support will still be around for a while. Only when you start seeing device drivers, computer games, and system DLLs written using the .NET Framework should you start worrying.