¿Ventaja de la aplicación WPF frente a Winform para aplicaciones empresariales? [cerrado]

84

Conozco asp.net y el desarrollo de winform. No soy el tipo de desarrollador que se lanza a una nueva tecnología solo porque es nueva. Necesita brindarme beneficios adicionales como una mayor productividad.

¿Cuáles son las ventajas de WPF sobre Winforms para aplicaciones empresariales puras? No me interesan los atractivos visuales adicionales, la animación, los degradados, los efectos de visualización de imágenes, etc., que proporciona WPF. Las aplicaciones comerciales son para la entrada de datos, informes de datos y tal vez algunos gráficos y visualización estática de fotos.

¿Cómo ayudará WPF en estas aplicaciones? ¿Vinculación de datos más rica? WinForm es una tecnología madura probada y me gusta el hecho de que puedo hacer todo en Visual Studio frente a múltiples IDE para WPF (familia VS y Blend). Además, creo que WPF no tiene controles de enlace de datos tan ricos como sus contrapartes de Winform (DataGridView, etc.). AFAIK, Microsoft seguirá admitiendo Winforms durante muchos años.

Intenta convencer a alguien como yo de que cambie.

Abdu
fuente
1
Creo que hay algunas razones poderosas para cambiar a WPF. No quiero repetir un blog que acabo de escribir , así que pondré un enlace aquí.
Andy Brown
7
Ésta es una excelente pregunta. Debería reabrirse. Soy un desarrollador de winform que está haciendo un cambio a WPF. La curva de aprendizaje es enorme. Pero WPF es el futuro, ya que es un lenguaje declarativo por naturaleza, como HTML. Winform es principalmente de procedimiento, que es más adecuado para algoritmos, pero más detallado para mostrar la interfaz de usuario. Intente descomprimir un archivo de impresión .XPS, verá WPF xaml allí. Hay demasiadas limitaciones con Winforms. Aunque todavía funciona, el "atractivo visual" de WPF puede ayudar a reducir el nivel de estrés del usuario. Puede presentar varias filas de registro de una manera más significativa que no sea la vista de lista o la cuadrícula de datos.
Jeson Martajaya

Respuestas:

101

Conozco asp.net y el desarrollo de winform. No soy el tipo de desarrollador que se lanza a una nueva tecnología solo porque es nueva. Necesita brindarme beneficios adicionales como una mayor productividad.

Para mi equipo, WPF ha demostrado ser mucho más rápido que WinForms para desarrollar aplicaciones. Recientemente lanzamos una aplicación de tamaño medio en 32 días hombre. Tuvimos la ventaja de contar con un desarrollador de WPF experimentado en el equipo y con muchachos sin experiencia que estaban ansiosos por aprender la tecnología. Había una gran moral y la productividad era impresionante.

WinForm es una tecnología madura probada y me gusta el hecho de que puedo hacer todo en Visual Studio frente a múltiples IDE para WPF (familia VS y Blend).

¿Se considera un codificador manual o un codificador de arrastrar y soltar? Si se considera un usuario de arrastrar y soltar, es posible que la cosecha actual de herramientas de WPF no sea adecuada para usted. ¿Quizás esperar a Visual Studio 2010? Trabajo casi exclusivamente en XAML. La mayoría de los usuarios de WPF probablemente estarán de acuerdo en que esta es la forma más efectiva de crear aplicaciones WPF en este momento. Pero luego, también creo mi HTML a mano, por lo que me parece natural ...

¿Cuáles son las ventajas de WPF sobre Winforms para aplicaciones empresariales puras? No me interesan los atractivos visuales adicionales, la animación, los degradados, los efectos de visualización de imágenes, etc., que proporciona WPF.

Solía ​​pensar así, pero recientemente desarrollé una aplicación empresarial que tiene degradados, animación básica y efectos. Estas características sofisticadas se agregaron para mejorar la experiencia del usuario. ¿Por qué las aplicaciones empresariales deberían ser Battleship Grey? ¿Por qué deberían ser inutilizables? Por supuesto, no es el color, los degradados ni la animación lo que hace que una aplicación empresarial sea utilizable, pero el uso de estos efectos puede ayudar a la experiencia del usuario, y esto es lo que es importante para mí. Podría haber hecho todo lo que hice en la aplicación WPF en WinForms, simplemente me hubiera llevado mucho más tiempo.

¿Vinculación de datos más rica?

El soporte de enlace de datos es realmente asombroso. Es mi característica más querida en la plataforma. Eche un vistazo a esta maravillosa hoja de referencia de enlace de datos .

Intenta convencer a alguien como yo de que cambie.

He decidido que no voy a intentar convencer a nadie más de que se cambie a WPF. Los desarrolladores a los que he intentado "convencer" (todos los desarrolladores experimentados de Winforms) generalmente han tenido problemas con la plataforma. No están invertidos en tecnología. Ellos no "lo entienden". Animo a las personas a que comprueben la tecnología para ver si es adecuada para ellos como desarrolladores. La curva de aprendizaje es enorme. Si aprende con los libros, consulte esta publicación de SO para ver algunas mini reseñas sobre los libros de WPF. Si aprende por videos, consulte los videos de windowsclient.net WPF . Si aprende con el ejemplo, consulte esto o estoenviar. Olvídese de todo lo que sabe sobre WinForms. WPF realmente parece más cercano a ASP que WinForms. Cree algunas aplicaciones de muestra. Vea si funciona para usted y su equipo.

Como tiene múltiples habilidades (habilidades asp.net/winform), puede ver la ventaja de mejorar en WPF, ya que está muy relacionado con Silverlight. Silverlight llena ese vacío entre sus aplicaciones de cliente enriquecidas y las aplicaciones web.

Personalmente, creo que WPF es la mejor tecnología del lado del cliente disponible para .NET framework y, en general, evitará el desarrollo en WinForms para trabajos futuros. YMMV

Buena suerte con tu decisión.

Brad Leach
fuente
10
Respuesta impresionante Brad: nuestra empresa está luchando con esta decisión en este momento. Sus observaciones están bien pensadas y son muy consistentes con lo que hemos visto hasta ahora. Todavía no hemos tomado una decisión, pero su párrafo de Battleship Grey nos recuerda mucho, ya que hemos visto el impacto que tiene una interfaz de usuario de gran apariencia en las ventas. Gracias por tomarse el tiempo para escribir una excelente respuesta.
gidmanma
3
Existe una enorme diferencia entre tener un solo desarrollador de WPF experimentado en un equipo y no tener uno en absoluto. Combine eso con una curva de aprendizaje empinada y si está dirigiendo un negocio, no logrará mucho en absoluto. Siendo realistas, WPF es genial si tienes a alguien que te guíe y no tanto si estás aprendiendo sobre la marcha. Y si lo hace, prepárese para una refactorización importante.
Sergey Akopov
3
+1 - "¿Por qué las aplicaciones comerciales deberían ser Battleship Grey?" - ¡Completamente de acuerdo!
Samuel Slade
5
-1 Si la única razón para pasar a WPF se basa en la capacidad de crear gradientes y cambiar los diálogos de la aplicación de "gris acorazado", entonces necesita aprender a usar WinForms.
deegee
1
+1, respuesta completa. El enlace windowsclient.net WPF videos está caído, ¿alguien sabe dónde encontrarlos?
Damien
11

Tengo bastante experiencia en winforms y solo he jugado un poco con WPF, pero estoy vendido.

¿Por qué?

  • MUCHA más flexibilidad. Si desea hacer algo no estándar en formas de viento, se produce dolor y sufrimiento, pero en WPF es simple.

  • Enlace de datos mucho mejor

  • Más fácil de desarrollar (una vez que comprenda los conceptos básicos, que lamentablemente llevará un tiempo)

Orion Edwards
fuente
4

Cuando comencé a mirar WPF, lo traté como "Winforms con gráficos vectoriales" y corrí directamente hacia el lado del acantilado de aprendizaje. La forma correcta de hacer la transición de WinForms a WPF es tomar una dosis heroica de cualquier narcótico que pueda poner en sus manos para olvidar todo lo que sabe y luego comenzar desde cero.

En serio, es mucho más limpio y fácil si usa un patrón como Model-View-ViewModel. Lea más en The Orbifold , este hilo de Google Groups y Channel9

Luego, en algún momento, tendrás una epifanía y comenzarás a vincular todo. Su código subyacente no será mucho más que una llamada a InitializeComponent ().

geofftnz
fuente
4

Gracias por la publicacion. Mi empresa ha invertido mucho tiempo en WinForms. No puedo imaginarme sacar una aplicación de tamaño mediano en 32 días hombre; Nuestros períodos de certificación son meses y ciclos de lanzamiento a veces anuales o más largos (a pesar de apegarnos lo más cerca posible a una filosofía de desarrollo ágil), tal es la naturaleza de las aplicaciones que desarrollamos.

Acabo de jugar con WPF por primera vez y descubrí que puedo obtener algunos beneficios de WPF en WinForms usando ElementHost. Extendí un WPF TextBox, luego envolví mi clase extendida en un Win Forms UserControl y ahora tengo una aplicación WinForms que usa ese cuadro de texto WPF, completo con soporte de revisión ortográfica.

Me impresiona ver que Microsoft pensó en esto (hospedar WPF en WinForms y viceversa), ya que realmente no veo que mi empresa se mude a WPF a menos que podamos realizar la transición durante un largo período de tiempo; simplemente se ha invertido demasiado en WinForms para empezar de nuevo. Con mi experiencia reciente, puedo comenzar a hablar con otros desarrolladores sobre mi experiencia reciente y ver cuáles son sus pensamientos. Creo que a WPF le llevará algún tiempo acostumbrarse y eso parece coherente con otros comentarios.

Wayne H
fuente
0

Imagínese si pudiera usar la misma interfaz de usuario (XAML) de su página ASP.NET/(Silverlight) con su aplicación de escritorio. Solo lo compilaría una vez, pero lo conectaría a cualquiera de los dos ... ese es uno de los propósitos de WPF / XAML ... ¿ya lo hemos logrado? Todavía no, pero cada vez más cerca.

Webjedi
fuente
4
Intentar usar la misma interfaz de usuario en Silverlight y una aplicación de escritorio es una de esas cosas que suena bien en teoría, pero en la práctica creo que solo conducirá a una interfaz de usuario de mierda en ambas plataformas.
Orion Edwards
Sí, la superposición entre WPF y Silverlight2 es grande, pero no lo suficiente como para hacer que su código sea portátil. Las diferencias en las capacidades de enlace restringirán excesivamente el desarrollo de WPF.
geofftnz
1
Bueno, dije que aún no estamos allí ... pero esa es la intención final.
Webjedi
geofftnz: ¿quiso decir restringir el desarrollo de Silverlight ?
Abdu