2009-12-18 20 views
12

Hay una pregunta similar en WPF versus Windows Forms que tiene buena información, pero en mi experiencia personal no veo ninguna razón para usar WPF sobre Winforms. Inicialmente, con WPF se habló mucho sobre su funcionalidad de subprocesos múltiples pero, en uso, no veo beneficios.¿Por qué debería usar WPF sobre Winforms? ¿Algún ejemplo de WPF superando a Winforms?

Tengo dos aplicaciones que hacen lo mismo, una en WPF y otra en Winforms. La aplicación Winforms elimina la aplicación WPF en términos de rendimiento (por un factor de 10) y se ve igual de agradable.

Concedido Soy más competente en aplicaciones de Winforms que WPF.

+0

WPF> WinForms porque puedes poner un navegador web en un botón. ;) – Qberticus

+0

@Qberticus: No estoy seguro de seguir tu respuesta. Puedo crear fácilmente un WebBrowserControl y manejar el evento 'Click'. –

+0

Lo que significa es que el QBerticus WebBrowserControl sería * dentro * el control Button, tanto visual y lógicamente (no puedo decir por qué alguien querría eso) –

Respuesta

15

Hay otra discusión sobre el tema aquí: When is Windows Forms the correct choice vs WPF?

La aplicación Winforms sopla la aplicación WPF de distancia, en términos de rendimiento (por un factor de 10) y se ve tan bonito.

WPF es algo más que simplemente los gráficos de fantasía ... No soy un diseñador, demonios tengo ninguna sensación de colores (a un punto en mi prometida decidió ya no puedo comprar mi propia ropa) pero me encanta WPF. Compatibilidad con DataBinding por ejemplo es increíble sin mencionar lo fácil que es crear una ItemTemplate para un ListBox (¿recuerda anular los métodos de dibujo en Windows Forms para obtener 2 líneas de texto y una imagen en un elemento ListBox?)

En cuanto al rendimiento ... en mi experiencia, la mejora solo se puede notar si está usando Windows Vista/7 con una GPU. (Y por supuesto, la forma en que escribes el código).

Tal vez fue un error de Microsoft comercializar que WPF tiene que ver con los gráficos de elefante rosa mientras hace mucho más. (Cometieron un error similar con la versión apresurada de Silverlight 1, que en mi opinión deberían haberse salteado todas juntas).

+5

+1 Definitivamente, los principales beneficios de WPF son la gran flexibilidad que obtienes y cómo puedes escribir códigos mucho mejores, como el patrón Model-View-ViewModel. –

+3

De acuerdo con Timothy y Martinho, se trata de la arquitectura. La creación de tablas y el enlace de datos son razones de peso para usar WPF: puede hacer mucho más, mucho más fácilmente y mucho más de forma sostenible. Y definitivamente estuvo de acuerdo en que el marketing de Microsoft de WPF como una forma de crear diseños de botones tontos fue un error. Es * todo * sobre la arquitectura. – itowlson

0

WinForms y WPF son dos grandes frameworks, la pregunta es cuál es la más adecuada para su aplicación. Si necesita una interfaz gráfica de usuario fluida con controles animados y estilos muy fáciles de usar, o simplemente está creando una interfaz de usuario muy gráfica, WPF es muy bueno para ese tipo de aplicación. WinForms puede ser muy limitante a veces porque los controles son lo que son. Puede crear controles de usuario para agregar cosas, pero cambiar su apariencia puede ser difícil si tiene un aspecto muy específico en mente.

Una buena comparación sería observar la diferencia entre una aplicación WinForms y una aplicación Silverlight. Silverlight y WPF comparten un marco común y le ayudará a comprender las diferencias entre los dos.

Eche un vistazo a esta biblioteca silverlight y wpf y verá algunas de las cosas que se pueden hacer en un entorno wpf.

Silverlight Biblioteca: http://demos.telerik.com/silverlight/

WPF Biblioteca: http://demos.telerik.com/wpf/

1

El mayor problema con WPF es que el conjunto de herramientas es cojo y la curva de aprendizaje es enorme. Hasta ahora, la aceptación de WPF ha sido muy baja principalmente por los problemas que acabo de mencionar. Según Microsoft WPF es el futuro y han invertido mucho en él.De hecho, la próxima versión de Visual Studio está escrita en WPF (http://www.onedotnetway.com/writing-visual-studio-2010-shell-in-wpf-reflects-confidence/)

Sin embargo, todavía está por verse si WPF alguna vez se convertirá en la corriente principal. El marco es increíble y puede hacer cosas realmente geniales relacionadas principalmente con los ojos dulces. Microsoft lo llama UX, pero en inglés sencillo es llamativo. La mayoría de las aplicaciones no lo necesitan.

+3

Cualquier persona que afirme que lo mejor que puede hacer en WPF es * en su mayoría * relacionado con eye-candy es 1) alguien que * jugó * con WPF, pero no * aprendió * WPF, 2) un usuario. –

2

La principal razón para ir con WPF no es vistosidad. Las ganancias reales son en términos de confiabilidad, productividad y permitiendo que los tipos artísticos modifiquen la apariencia de su UI sin involucrar ingenieros.

4

WPF

  1. permite a un diseñador/no-programador para mejorar la apariencia de la interfaz de usuario, separado del código. Los diseñadores pueden usar herramientas como Expression Blend para modificar en gran medida el aspecto de una aplicación.
  2. el conocimiento requerido para escribir WPF es casi completamente transportable para escribir el código de Silverlight, por lo que está subiendo una curva de aprendizaje para dos tecnologías
  3. es ampliamente promocionado por Microsoft y probablemente tenga más futuro que WinForms. WinForms seguirá el camino de MFC antes que WPF.

por el contrario:

  1. la curva de aprendizaje es más pesado para WPF que Winforms
  2. apoyo diseñador que falta en comparación con Winforms, aunque esto puede cambiar con Visual Studio 2010
  3. la corriente tendencia es utilizar View-ViewModel-Modelo para construir aplicaciones: se trata de un mayor aprendizaje en la parte superior del marco de WPF, pero vale la pena el esfuerzo si se va a construir nada más allá del simple interfaz de usuario de

Si el rendimiento (velocidad y las necesidades de recursos) es su criterio para una buena plataforma de interfaz de usuario para Windows, entonces el ganador es una aplicación nativa de Win32. Adoptas otra tecnología para lo que tienen para ofrecer, y en última instancia, WPF tiene más que ofrecer que WinForms.

+1

+1. Un punto que no entiendo: mencionas usar Blend para modificar el aspecto de la aplicación, y luego dijiste que faltaba soporte de diseñador. –

+0

El Diseñador es parte de Visual Studio, mientras que Expression Blend es un producto separado de Microsoft. –

Cuestiones relacionadas