Interoperability in the .NET Framework enables you to use unmanaged applications with the managed applications. As a result, you can use the new functionalities provided by the .NET Framework and reuse existing unmanaged components. Migration enables you to upgrade your unmanaged applications to .NET. There are two ways to migrate your unmanaged applications, horizontal and vertical. You need to choose appropriate migration approach depending on your application and requirement so that you can use the perfect balance of interoperability and migration features.