Part V. Techniques for Legacy Interoperability

 

Programming is like sex: one mistake and you have to support it for the rest of your life.

 
 --Michael Sinz

The .NET platform is relatively new technology, so the majority of game development studios still have legacy code that they have invested large amounts of time and money into developing. Conversions and ports do not happen overnight, and some situations require that a wrapper or interface be built around legacy technology instead of updating it. Considerable resources have been spent on researching and attempting ways to interoperate between managed and unmanaged applications. The long-term goal of a tools team should be to have a purely managed code base, but it will take some time and commitment to reach such an objective. For a short-term plan, a solid course of action will be to slowly migrate key components over to managed code, exposing wrappers that allow the existing legacy applications to still consume them without errors. As each component is migrated and as dependencies on legacy components are reduced, you will be able to start getting rid of unmanaged wrappers. Obviously, any new components will targeted at the managed runtime. Over time, you will end up with a purely managed solution that exists solely on the managed runtime.

In order to accomplish even the short-term goal, an understanding must be fostered regarding how to go about writing wrappers and exposing unmanaged interfaces from managed components. In addition to exposing unmanaged interfaces, some conversion strategies may include migrating the application harness to the managed runtime, and slowly move the unmanaged components across. In this situation, you will need to know how to consume an unmanaged component from within a managed application or component.

The chapters in Part V focus on such topics as exchanging data between applications, and exposing wrapper interfaces between various components. These techniques can be used to support a solid migration plan for legacy components to managed code.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.135.188.121