1. A method for porting a software application from a native object oriented programming system having an application framework layer built on a set of defined native foundation classes and an operating system layer running a native operating system to a target object oriented programming system running a target operating system different than said native operating system, said software application implemented to interface with the native object oriented programming system by invoking native application programming interface (API) methods built on said set of defined native foundation classes, the method comprising the steps of: (a) defining a set of target object oriented programming system data types in terms of said set of native object oriented programming system data types; and (b) emulating said set of defined native foundation classes by mapping each native API method invoked by said software application to template library calls to allow the software application to execute on the target operating system in a functionally equivalent manner as if running on the native object oriented programming system.