2010-02-19 25 views
10

Estoy escribiendo una aplicación cliente de grasa que lo ideal sería ser multiplataforma, pero puede conformarse sólo para Windows basado en lo siguiente:Java Swing o Windows Forms para aplicaciones de escritorio?

  • soy mucho más fuerte en C# que Java (aunque no tengo unos pocos años de experiencia Java Enterprise)
  • no he hecho mucho con cualquiera de las formas de Windows o Java swing, sólo aplicaciones de juguete para cada uno, aunque estoy más cómodo en Windows Formas de oscilación
  • me preocupa el rendimiento de las aplicaciones Swing (frente a Windows Forms), pero estoy preguntándome si las cosas han mejorado i en los últimos años
  • Estoy completamente abierto a desarrollar en cualquiera de las plataformas ... no hay esnobismo MS o Java aquí. De hecho, si quieres decirme que lo haga en Qt, wxWidgets u otra cosa, ¡te escucharé!

Si alguno de ustedes cambió de Windows Forms a Swing, ¿cuáles fueron los mayores obstáculos?

¿Al final, el atractivo inicial de ser multiplataforma valió la pena, o sería mejor una aplicación de Windows más rápida y menos flexible?

Si usa Java Swing, ¿qué IDE prefiere para el diseño del formulario arrastrar/soltar?

+2

Esto podría ayudar a la 'Si alguno de ustedes cambió de Windows Forms a Swing, ¿cuáles fueron los mayores obstáculos?' pregunta: http://stackoverflow.com/questions/740625/migrating-a-project-from-c-to-java – SwDevMan81

+1

El mal funcionamiento de Swing es un mito. Una GUI de Swing tiene un mal rendimiento cuando fue escrita por un desarrollador que no entiende Swing.En cuanto a su pregunta, Swing tarda mucho en acostumbrarse (léase: para conocer todos los obstáculos de Swing y cómo solucionarlos). – jfpoilpret

+0

@jfpoilpret Publicación antigua pero definitivamente no es un mito, el uso de tu CPU se dispara cuando cambias el tamaño incluso un JFrame vacío. – FINDarkside

Respuesta

4

Desarrollo una GUI compleja de baja latencia en un banco utilizando la plataforma RCP de Netbeans. Hay un montón de people using Netbeans. También trabajo con desarrolladores WinForm también.

Los chicos de WinForm tienen algunas rejillas y widgets extremadamente ricos y de alto rendimiento/baja huella, especialmente ofertas comerciales como Infragistics. Las aplicaciones de Netbeans pueden tener grandes huellas de recursos, por lo que realmente tiene que ser algo en lo que el cliente gaste la mayor parte de sus recursos informáticos.

Si necesita ser delgado y rico en interfaz o rápido, entonces Winforms es el camino a seguir.

Si desea una gran biblioteca de API para construir y mantener una gran base de código de GUI compleja y tener la libertad de una pila de tecnología completamente portátil, elegiría Java cada vez.

Habiendo dicho eso, Netbeans IDE es espantoso! Haría bien en visitar el blog Geertjan's si lo busca.

Registre regularmente su código en una sucursal cuando utiliza el editor de Matisse Graphics, a menudo se vuelve loco y arruina sus diseños y no puede deshacer. El manejo de dependencias de la plataforma RCP subyacente, si lo hace entrar en un giro, puede ser un desafío, ¡pero aún mejor que OSGi!

¡Buena suerte, el desarrollo de la GUI no es tan fácil como la gente dice!

1

Bueno, por supuesto es una cuestión de gusto, pero para un entorno de solo Windows preferiría formularios de Windows (que teóricamente podría intentar ejecutar en otras plataformas a través de Mono) o WPF (que es una mejor opción para una aplicación de cliente gordo en lo que a mí respecta). Vi muchas aplicaciones Swing realmente feas, que sin embargo son multiplataforma. De hecho, con un poco de trabajo extra puede obtener un aspecto casi nativo en cada plataforma. Puede usar NetBeans para arrastrar/soltar con Swing.

12

Parece que lo que quiere escuchar es: "No use el columpio con las formas de las monedas", aquí va: No use el columpio. Si se siente más cómodo con C#, creo que esa es la única razón por la que debe buscarlo.

Las aplicaciones Swing son rápidas y toda la plataforma es lo suficientemente buena, pero definitivamente necesita algo de tiempo para aprenderla.

Si decides intentarlo, sugiero Netbeas o IntellJ Idea, ambos tienen grandes constructores de GUI.

Pero, en realidad, sólo seguir con C#

6

descarga NetBeans y tratar de hacer una aplicación Swing simple en él. El editor de GUI es realmente agradable y poderoso, y hace que sea fácil evitar hacer el diseño a mano. A continuación, agrega funcionalidad con fragmentos de código colocados donde Netbeans le dice que lo haga.

Lo hice en una simple aplicación de GUI "leer en una hoja de Excel en JTable y cargar JTable a la base de datos" desde cero en un día. Estaba planeando solo hacer la GUI en Netbeans y luego importarla a Eclipse y hacer el trabajo duro allí, pero era mucho más fácil simplemente quedarme en Netbeans.

Pruébalo, te puede gustar.

Editar: Con respecto a la velocidad de Swing: Ha habido MUCHAS mejoras y, básicamente, puede ser muy rápido y ágil.El problema habitual es que el programador cree un código receptivo para que Swing llame para hacer sus cosas, y hay algunas cosas técnicas que debe averiguar si se encuentra con ese problema (básicamente, hacer cosas pesadas sobre los hilos de fondo).

1

Un punto que ninguna de las otras respuestas ha abordado es, ¿qué esperan los usuarios finales de la aplicación? ¿Necesitan una aplicación multiplataforma?

He echado un vistazo rápido al Visual Guide to Swing Components (Windows Look and Feel) y todos los componentes parecen tener un estilo de Windows XP, lo que puede ser un problema si su software se ejecutará en Windows Vista/7 (Dicho esto, el Swing la biblioteca bien puede rediseñarse a sí misma cuando se ejecuta bajo Vista/7, pero no pude encontrar nada que dijera de ninguna manera).

1

Es más fácil trabajar con formularios debido a las mejores herramientas de diseño en Visual Studio y la ayuda de msdn y otras fuentes. El oscilación parece ser lento para comenzar cuando se compara con las Formas. Ver: http://www.codeproject.com/KB/dotnet/RuntimePerformance.aspx También hoy Swing es menos utilizado en el escritorio que otras tecnologías.

0

Reglas C# ... No hay duda acerca de C# (.NET) cuando desea desarrollar su aplicación rápidamente. Como ejemplo, puedes comparar las opciones (flexibilidad) de datagrid con la JTable pésima ... Estoy seguro de que no te sorprenderá.

0

Veo que las personas dicen que usan winforms para un desarrollo rápido, de lo que muchos no se dan cuenta es que no se puede aplicar el patrón de diseño de control de vista de modelo o cualquier patrón de diseño a winforms. Netbeans no permite usar patrones de diseño también y oculta el código. Si usa Java, no use constructores de GUI, escríbalo a mano. Utilicé ambos idiomas y disfruto más el swing porque puedo modelar el código gui como quiero. Winforms no te da esa libertad. También Java tiene muchas más bibliotecas. Me tomó un mes aprender a desarrollar swing a nivel profesional viendo un video de udemy que compré y obtengo un video.

Cuestiones relacionadas