2010-08-04 18 views
8

Me gustaría crear una aplicación de escritorio en Java & tecnologías web. La razón principal para seleccionar Java es que es gratis, de código abierto, y por lo tanto nuestra inversión sería mínima y ahorraríamos mucha inversión con respecto a los costos de licencias, etc. Además, la razón principal para seleccionar tecnologías web es porque nuestra corriente los programadores están bien versados ​​en tecnologías web como HTMl, css, Ajax, y tenemos una buena experiencia en la creación de increíbles UI en tecnologías web.¿Es posible crear aplicaciones de escritorio usando backend Java y tecnologías web UI

Le daré una idea sobre el software que nos gustaría crear. Sería un software de escritorio, a saber, algo así como un software ERP.

Los requisitos clave son que debe haber una gran interfaz de usuario y debe ser rápida y no requiere demasiados recursos.

He oído que la implementación de una gran GUI es posible, pero difícil en Java. Se puede hacer, pero es complejo, mientras que es bastante simple hacer lo mismo en Visual Studio, productos de Microsoft.

También he comprobado Adobe Air, Nokia QT, etc. pero todos son bastante caros para nosotros y estamos buscando interfaz de usuario del navegador front-end y servidor/base de datos incrustado utilizando tecnologías Java.

Es posible crear un software de escritorio en el que se crea la interfaz de usuario utilizando las tecnologías web y hay un servidor integrado (como embarcadero o tomcat) y base de datos y la programación de fondo en Java. ¿Cómo encaja JavaFX en esto?

Así que, básicamente, la aplicación de escritorio tendría un navegador integrado (mozilla o algún navegador de Java que pueda empaquetarse con el software), pero el usuario final nunca debería darse cuenta de esto.

Espero recibir comentarios sobre lo mismo. ¿Podría proporcionarnos algunos ejemplos de software creado en una combinación similar de tecnologías web Java +?

Estudié algunos softwares como PulpTunes & Zimbra que eran similares a las líneas, pero parece que se están conectando a Internet para mostrar los datos. Nuestro software sería totalmente una aplicación de escritorio fuera de línea.

+0

"Muy simple" sólo se mantiene mientras la interfaz gráfica de usuario en sí es bastante simple. –

Respuesta

0

Tienes razón, java es genial si estás desarrollando un proyecto por cuenta propia.

La codificación del servidor se puede hacer utilizando Spring (para MVC, base de datos, etc.). Hibernación (marco ORM para manejo de bases de datos, proporciona dialectos para cualquier servidor de base de datos).

Para la interfaz de usuario, puede utilizar Spring MVC O JSF OR GWT O javaFX. JavaFX proporciona descarga JNLP, que se ejecuta en Java y sin navegador. revisa el enlace para ver más muestras de JavaFX. http://javafx.com/samples/

Así que es usted, lo que quiere utilizar para el lado de la interfaz de usuario. Si prefieres UI web (no me refiero a javaFX), entonces puedes tener muchas opciones.

Para Ajax, tendrá bibliotecas que admiten ajax fácil. como DWR (Easy Ajax, JS a JAVA) y muchas otras bibliotecas JS como yahoo, jQuery, etc. se pueden usar.

Espero que esto ayude.

0

En mi humilde opinión, la idea de ejecutar un servidor web para crear una aplicación de escritorio con js y ajax es horrible ... Escuché sobre Apple-creator Titanium que permite crear aplicaciones de plataforma cruzada utilizando técnicas web.Hay otros dos programas similares también.

Creo que terminarás mejor comprando una buena herramienta de diseño Swing wyswing para java ui que te costará un par de cientos de dólares pero te ahorrará muchos problemas de desarrollo. Es muy difícil de creer que diseñar una buena aplicación de escritorio sea más complicado que diseñar una página web.

0

No obtuve la pieza Embarcadero/Tomcat integrado. ¿Desea que la aplicación de escritorio ejecute un servidor incrustado que se comunica con la base de datos? Entonces, ¿cada aplicación de escritorio abriría una conexión DB?

¿Por qué no tener una aplicación de escritorio Java que envía solicitudes HTTP a un servidor JavaEE que se conecta al DB y procesa las solicitudes? Entonces, básicamente, un cliente Java (que podría ser tan rico como lo puedan hacer sus desarrolladores) reemplazando un navegador. Esto le da mucha más escalabilidad, etc.

Tenemos un producto similar (aunque mucho más complejo) desarrollado usando - Swing + Apache Commons HttpClient en el escritorio. Esto hace una solicitud HTTP POST con datos binarios serializados al servidor. - Servlet del asignador que se ejecuta en un contenedor web que recrea el objeto Java en el servidor y ejecuta la solicitud.

2

En primer lugar, es posible. Si está buscando, por ejemplo, marque http://wiki.eclipse.org/Hudson-ci/Meet_Hudson. Puede obtener una arquitectura básica si profundiza en su código. No utiliza ningún db incrustado. Usted dice que su aplicación siempre estará fuera de línea, en ese caso le sugiero que vaya a la aplicación de escritorio pura usando tecnologías como el desarrollo de plugins de Eclipse.

Si ya tomado una decisión, aquí hay algunos puntos que pueden ayudar a usted, basado en mi experiencia con una aplicación similar,

  1. Aunque su aplicación no está en línea (supongo, su aplicación no debe conectar cualquier servidor para cualquier caso de uso, pero la máquina del usuario puede acceder a Internet), debe entregar cambios (por ejemplo, cambiar en la página html o jsp)/correcciones de errores de forma transparente para el usuario final. JNLP/Java web start es una buena opción para esto.

  2. Si va a utilizar el modo de instalación JNLP, el iniciador debe encargarse de la instalación y los puertos de db incorporados en la máquina del usuario final (este es un gran problema de lo que parece).

  3. Además, si está iniciando el servidor (en mi caso, Jetty) a través de JNLP, se encontrará con errores de carga de clases debido a problemas de permisos. Esté preparado para excavar a través del código del servidor. Lo he hecho hace mucho tiempo y no tengo código ahora para señalar problemas exactos.

  4. Muestra barras de progreso durante el proceso de instalación y durante el inicio de la aplicación. La implementación de War tarda algo de tiempo y el usuario necesita saber que la aplicación está en proceso. Usted terminará escribiendo alguna UI swing.

  5. Inicie la URL de la aplicación automáticamente en el navegador predeterminado del sistema del usuario, después del inicio de la aplicación. No necesita un navegador integrado. Marque http://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/.

  6. Utilicé MySql como base de datos integrada. Compruebe Embedding mysql in java desktop application. Me funcionó, no encontré ningún problema.
0

Probablemente me droguen por esto, pero sugiero JavaFX para esto. Hemos implementado con éxito una aplicación JavaFX para uso interno en una empresa más grande.Las ventajas son que el software está "controlado" por el lado del servidor (por lo tanto, nadie tendrá una versión "vieja"). esfuerzo de instalación es mínimo (Java Web Start reparar este problema para usted, será incluso provocar un JRE-instalación mínima, si no existe ninguno) y por último pero no menos importante, JavaFX se puede ejecutar en el navegador y como una aplicación de escritorio pura por igual sin tener que cambiar el código.

Adobe Flex es otro contendiente, pero carece de los bits "Web Start" y no es tan flexible cuando se trata de una fácil migración entre el navegador y el escritorio.

De todos modos, JavaFX no es una característica completa como FLEX, pero la versión 1.3 se puede considerar lista para la batalla y puedes crear cosas claras con los complementos JavaFX gratuitos para Adobe Creative Suite (si tu aplicación contiene gráficos) .

0

Estamos tratando de hacer una cosa muy similares. Tenemos una aplicación web Java existente. Hemos probado ejecutar esto en un sistema de escritorio instalado con Jetty y MySql. Con el navegador Chrome en modo "aplicación", se parece a una aplicación de escritorio.

Estamos investigando este enfoque como una forma de poner en práctica una multiplataforma (PC/Mac/Linux) versión en línea de nuestra aplicación Web en línea madura existente. Me gustaría saber si alguien sabe de proyectos similares o puede hacer algún hueco en la idea de ejecutar un servidor de aplicaciones para una aplicación de escritorio. Nuestro objetivo es, por supuesto, tener esencialmente una base de código para la implementación del servidor y del escritorio con variaciones protegidas cuando sea necesario.

1

Sí, es posible. Ver demostración https://github.com/jreznot/electron-java-app. Allí encontrará una manera fácil de construir una aplicación basada en Electron en Java, sin compilación a JS, solo la aplicación Java dentro de la instancia Embedded Jetty con Vaadin UI.

Cuestiones relacionadas