En un entorno de desarrollo integrado (IDE) típico, una colección de archivos fuente se introducen en una herramienta de compilación para producir algún tipo de salida consumible. La salida puede constar de objetos intermedios, bibliotecas, ejecutables o, dependiendo de la complejidad y el tipo de proyecto, de una combinación de los anteriores. Históricamente, la salida de compilación resultante se ha diseñado para ser utilizada en la misma estación de trabajo que el IDE, pero algunos entornos de desarrollo modernos permiten a los usuarios a producir salida que se ejecuta en sistemas remotos.
Existen diversas maneras en las que un proyecto de un IDE puede destinarse a un sistema remoto. Un método es utilizar un compilador cruzado; este es el caso en el que la herramienta de compilación utilizada produce salida diseñada para ser utilizada en una plataforma que no es aquella en la que se genera la salida. Algunos lenguajes, como Java, producen salida de compilación que puede ejecutarse en cualquier plataforma, por lo que, al igual que el enfoque de compilador cruzado, la herramienta de compilación local es suficiente para generar la salida correcta. Pocos lenguajes de programación pueden ser neutrales con respecto a la plataforma como Java; no es fácil encontrar compiladores cruzados para una combinación determinada de lenguaje/plataforma y, sin instrumentación remota adicional, estos dos enfoques son limitados al no transferir también automáticamente los resultados de compilación a una máquina remota de destino.
Un enfoque opuesto consiste en que las compilaciones se ejecuten en el sistema de destino, en lugar de en la estación de trabajo donde se ejecuta el IDE. Para ello, el código fuente debe estar disponible para compilación en el host remoto. El código fuente debe desarrollarse remotamente, o el código fuente del proyecto local debe sincronizarse con el sistema remoto. Un entorno de desarrollo, como IBM® Rational Developer for Power Systems Software, da soporte al desarrollo remoto directo (es decir, a través de un sistema de archivos de Eclipse remoto o de montaje) y, alternativamente, un mecanismo de transmisión/recepción para transferir archivos entre un proyecto local y un host remoto. Aunque la capacidad de dirigirse a un determinado host remoto y plataforma desde un proyecto resulta útil, el potencial completo del desarrollo remoto aún no se ha conseguido plenamente con el soporte de desarrollo remoto de varios contextos. Actualmente, muchos proyectos de desarrollo están destinados al trabajo en diferentes plataformas, y otros a la ejecución en modalidad distribuida en varias máquinas simultáneamente. No es inusual que los desarrolladores generen compilaciones depurables y optimizadas o que generen compilaciones alternativas que tengan alguna otra propiedad exclusiva en la misma máquina. El desarrollo remoto de varios contextos disponible ahora en IBM Rational Developer for Power Systems Software permite destinar un único proyecto u otro tipo de recurso local de un IDE a varios entornos, plataformas y ubicaciones de forma fluida y simultánea.