IDE projects for simultaneous multi-platform development
Original Publication Date: 2004-Nov-05
Included in the Prior Art Database: 2004-Nov-05
Traditional techniques for multi-platform development have either relied on platform abstraction (for example, through the use of virtual machines), or employing translation tools once the application or component has been created for one platform. In some cases platform abstraction is not practical, and the use of batch-style translation has its own drawbacks. This article describes the use of projects in an Integrated Development Environment (IDE) which are capable of support development to multiple platforms simultaneously.
IDE projects for simultaneous multi -platform development
Most Integrated Development Environments (IDEs) have a concept of a Project. A project is a container for artifacts created during the development process. When developing for a specific platform, these artifacts conform to concepts in the programming model of the target platform (for example, Session EJB). When performing multi-platform development, common approaches are to use a platform abstraction (for example, such as the operating system abstraction provided by the Java* Virtual Machine) or to develop in the programming model of one platform and then use some post-development phase to translate the whole from one platform to another (see products such as MainWin and iNET).
The problem with this approach is it is labour intensive, and does not provide immediate feedback for all the target platforms. It is also difficult to ensure all the artifacts on each platform are synchronised.
The essence of the approach proposed in this article is to provide one or more project types with integrated multi-platform development support. The developer can build in the primary programming model (their chosen programming model, for example Java), and the project automatically translates to the other supported platforms. The artifacts generated for the other platforms can be monitored for changes to ensure that, if they are updated by some other tool, the project will refresh the primary programming model view (in cases where the translation is supported in both directions).
The project also simultaneously reports error occurring in the artifacts of all the supported platforms, thus giving immediate feedback on problems when they are created, rather than during some later translation.
Note, the translation between the different platforms may be source-level, or binary-level. Depending on which is provided, the capabilities of the projects would differ.