2008-11-03 14 views
6

De un programador atrapado en el mundo web ...opciones de desarrollo de software de escritorio

¿Cuáles son el desarrollo de escritorio más común "marcos" que se utilizan actualmente para el desarrollo de aplicaciones de escritorio?

  1. ¿Es realista escribir software de escritorio para Windows y OS X?

  2. ¿Es realista utilizar el mismo código base para escribir las capas de negocios/datos para una aplicación que tendrá una interfaz de usuario web parcial así como una UI de escritorio?

Respuesta

3
  1. Sí. Puede usar Java, Python/Ruby, etc. con un marco de interfaz de usuario de plataforma cruzada, AIR, etc.

  2. Sí, es realista. Constrúyalo en un modelo de cliente/servidor y la mayor parte del código se ajustará al modelo de interfaz de usuario web o de escritorio.

Si fue pulsada la raíz .NET, se puede utilizar Silverlight para la aplicación web, servidor de código .NET para el backend e incluso Mono para que pueda desarrollar para OS X.

Si tomó la ruta Java, Java se ejecuta dentro del navegador, pronto vendrá JavaFX, que es una pequeña versión similar a un flash para navegadores. Se ejecuta en casi todos los sistemas operativos y puede manejar el backend sin problemas.

Flex/AIR ofrece una excelente manera de desarrollar aplicaciones de escritorio y basadas en web para OS X, Windows y Linux, pero necesitará otro idioma para el back-end. .NET, Java, PHP, etc. todo funciona bien como backend.

Editar
A petición del MrJeepster, aquí están los detalles sobre la interfaz de una interfaz de AIR y .NET backend:

Hay dos maneras de interfaz de aire de un motor de .NET: la forma de bricolaje y la interacción remota camino.

El modo DIY implica definir sus propios formatos de datos (probablemente XML) y utilizar objetos de solicitud HTTP de bajo nivel para comunicarse con un servidor HTTP, o incluso clases de socket de nivel inferior para comunicarse con algún otro servidor.

La forma de interacción remota es más fácil ya que todos juntos buena gente han escrito una selección de paquetes de comunicación remota gratuitas:

http://www.adobe.com/devnet/flashremoting/articles/intro_flremoting_net.html
http://www.themidnightcoders.com/flashorb/gettingStarted.htm
http://www.fluorinefx.com/

Remoting implica compartir objetos entre el cliente y el servidor. Entonces, crea un objeto en el cliente AIR, obtiene el marco remoto para serializarlo, lo transfiere al servidor y lo deserializa en un objeto .NET. El servidor luego lo procesa y lo envía, o un nuevo objeto, de nuevo por la misma ruta.

+0

¿Podría darnos más detalles sobre cómo AIR funcionaría con un> lenguaje de red como back-end? –

1

Qt (ya sea en C++ o Python) es totalmente portable entre mac/win/Linux. también incluye QtWebKit, por lo que es fácil incorporar un navegador real y moderno en su aplicación.

1
  1. Podría sugerir Qt si está buscando plataformas cruzadas. Lo usamos por aquí hace unos años. Su licencia es por desarrollador y, sin embargo, es cara (al menos así fue).

  2. Seguro, puede hacer uso de servicios web.

2

Si bien el desarrollo de escritorio multiplataforma es posible, no es fácil. Como mínimo, debe probar en cada plataforma compatible. Y tiene que hacer concesiones difíciles: ¿hace que su software se vea exactamente igual en todas las plataformas (y por lo tanto no se vea como una aplicación nativa en algún lugar) o usa controles nativos y trata con diferentes alineamientos, etc. en varias plataformas? Además de la apariencia, ¿qué comportamiento usas? Por ejemplo, el software UNIX funciona con distinción de mayúsculas y minúsculas, pero el software de Windows no. ¿Escoge un orden de clasificación en ambas plataformas, o ordena de forma diferente en cada plataforma?

1

Ir con .NET y mono es una opción decente.

+0

No se compara con java – willcodejavaforfood

+0

True @willcodejavaforfood. Cuando pueda encontrar programas Java que estén dispuestos a codificar casi gratis, simplemente especifíquelo y eche comida para perros. ;) – kenny

0

Hemos creado muchas aplicaciones multiplataforma y multiplataforma que utilizan Java. En el escritorio Swing trabajó REALMENTE para nosotros.

0

Estamos construyendo una pequeña aplicación de plataforma cruzada usando Java (Swing) y es realmente agradable. Al menos hasta ahora. : D

0

Uso REALbasic para crear una amplia variedad de aplicaciones de escritorio para Mac OS X y Windows. Funciona bastante bien.

No obstante, no se presta bien para crear capas separadas para compartir con las IU de escritorio/web.

Cuestiones relacionadas