Applications designed for ubiquitous computing environments need to be coded in a specific way in order to fully realize the benefits of ubiquitous computing. Currently, applications for ubiquitous computing environments either need to be rewritten entirely to benefit from ubiquity, or special wrappers need to be written and customized for particular applications to provide limited compatibility. We argue that the real-world deployment of ubiquitous computing will be realized when users can migrate and use the applications they are familiar with in their daily lives with minimal effort. Furthermore, these applications should automatically benefit from typical ubiquitous computing features including multi-device support, run-time adaptation, environment-independence and context-awareness. In this paper we present a framework that allows us to port any generic application to the domain of ubiquitous computing without having to rewrite the code from scratch. We have experimented with the framework in our prototype ubiquitous computing platform known as Active Spaces. This has allowed us to explosively increase the number of applications supported by our Active Space.