2009-09-16 19 views
8

Estoy acostumbrado a desarrollar aplicaciones web en Java (Struts, Spring, JSP ...). Pero ahora quiero desarrollar uno de escritorio. Nunca me gustó diseñar ventanas en Java (AWT, Swing, SWT): demasiado trabajo para una interfaz fea. Entonces, creo que podría ser una buena idea si pudiera aprovechar mis habilidades de aplicación web. Una opción es modificar el navegador SWT y realizar llamadas a una función Java en lugar de solicitudes HTTP. Un muy buen complemento sería el uso de JSP. Finalmente, pensé que probablemente haya algún marco o herramienta para esto.Desarrollar vistas de aplicaciones de escritorio con HTML, como aplicación web

¿Crees que lo que propongo es una buena idea? ¿Hay disponible algún marco para esto?

Necesito esto para aplicaciones livianas. Por lo tanto, creo que integrar un servidor Tomcat y usarlo con solicitudes HTTP no es una buena idea.

Gracias por su ayuda.

Editar: Una aplicación de ejemplo podría ser un comparador de carpetas: especifica dos carpetas y la aplicación muestra qué carpetas y archivos son diferentes. En este caso, creo que abrir un navegador externo es feo. La aplicación hinchada (con su servidor, MVC, etc.) no sería la mejor opción.

+0

Utilice algo como Adobe AIR. Extremadamente bueno. Extremadamente facil. Tuvimos muy buen éxito con eso. –

+0

También le puede interesar el titanio. También te permiten ejecutar Ruby & Python. –

+0

Gracias por sus respuestas. AFAIK, AIR y Titanium no son para el desarrollo de Java, por lo tanto, mi código no será una plataforma cerrada. Además, no obtiene un ejecutable, debe instalar sus lanzadores. Por favor corrígeme si estoy equivocado. – sinuhepop

Respuesta

1

No descartaría incrustar un servidor web. He hecho esto antes con una aplicación de inicio web incrustando Jetty.

La descarga fue bastante rápida, el servidor se inicia y puede usar BrowserLauncher para conducir inmediatamente su navegador al servidor incorporado y, por lo tanto, a su aplicación. Jetty está diseñado para ser modular y tener una huella pequeña, por lo que probablemente puedas reducirlo a las necesidades básicas.

+0

Incrustar un servidor ligero como Jetty no está completamente descartado. Quizás es lo que haré si no encuentro algo como lo pedí. Gracias. – sinuhepop

1

Existen varias opciones: Puede usar la API de complemento de Firefox y desarrollar su aplicación allí. Puede usar HTML, JavaScript, la base de datos integrada, todas las características del navegador y acceder al nivel del sistema operativo.

O podría intentar PyQt (Python y Qt) que permite escribir aplicaciones simples muy rápidamente.

[EDITAR] El principal problema al que se enfrenta es la seguridad: por razones de seguridad, las aplicaciones de JavaScript (que se ejecutan en una página HTML) no pueden acceder a los recursos del sistema operativo local. Entonces, a menos que su navegador le permita escribir complementos en JavaScript (que solo es cierto para FF AFAIK), no hay forma de escribir una aplicación que use HTML como la "vista" sin la ayuda de otra cosa.

Además, HTML es muy limitado cuando se trata de características para aplicaciones. HTML está diseñado para ser una "vista de documento estática", no una "aplicación". Puede hacer cosas como GMail, pero si compara GMail con cualquier aplicación de correo real (Outlook, Thunderbird, Notes), verá rápidamente que las aplicaciones de escritorio reales ofrecen muchas más características.

+0

Gracias por su respuesta, pero creo que esto no es exactamente lo que estoy buscando. Quiero hacer una aplicación independiente, y no sería necesario instalar Firefox o cualquier otra aplicación (excepto Java). PyQt puede ser una buena forma de hacer aplicaciones de escritorio, pero Python no es Java y Qt no es HTML. De hecho, Qt es más como Swing, etc. Saludos. – sinuhepop

+0

Ver mis ediciones: Lo que quieras probablemente sea imposible si insistes en todos tus puntos. –

2

Si ha utilizado la biblioteca de JavaScript - ExtJs - entonces puede usarlo con Adobe AIR para crear una aplicación web basada en escritorio de buen aspecto.

La creación de aplicaciones en Adobe AIR también es simple y elegante con el ideario flex builder.

+0

Me encanta ExtJS;) Como se comentó anteriormente, el problema es que AIR no es para programación Java y no obtendrá un archivo ejecutable: el usuario debe instalar AIR. Corrígeme si me equivoco, por favor. ¡Y gracias! – sinuhepop

+0

Debe probar Aptana con él. Tienen un gran conjunto de ejemplos para que puedas avanzar. –

+0

Puede usar merapi API (código en java) y luego front-end con AIR. Agrupe la aplicación y el instalador en un solo conjunto. – techzen

2

Si su opción va a incrustar un servidor se enciende, compruebe winstone no es totalmente compatible con J2EE, pero debería ser suficiente para lo que necesita. Acerca del navegador, no soy un gran admirador de swt, complica mucho el despliegue multiplataforma, por lo que probablemente valga la pena vigilar jwebpane, aún no está listo, pero probablemente será la solución que necesitará.

Cuestiones relacionadas