2009-03-11 13 views
79

Conozco el desarrollo de asp.net y winform. No soy el tipo de desarrollador que se lanza a una nueva tecnología solo porque es nueva. Necesita darme beneficios adicionales como una mayor productividad.Ventaja de la aplicación WPF vs Winform para aplicaciones de negocios?

¿Cuáles son las ventajas de WPF sobre las formas para las aplicaciones empresariales puras? No me interesan los dulces, las animaciones, los degradados, los efectos de visualización de imágenes, etc., que proporciona WPF. Las aplicaciones comerciales son para 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? Mejor enlace de datos más rico? WinForm es una tecnología madura comprobada y me gusta el hecho de que puedo hacer todo lo posible en Visual Studio frente a varios IDE para WPF (VS & Blend family). Además, creo que WPF no tiene controles de enlace de datos tan ricos como sus homólogos de Winform (DataGridView..etc). AFAIK, Microsoft seguirá soportando Winforms por muchos años.

Intenta convencer a alguien como yo para cambiar.

+1

Creo que hay algunas razones poderosas para cambiar a WPF. No quiero repetir [un blog que acabo de escribir] (http://www.wiseowl.co.uk/blog/s308/wpf-winforms.htm), así que pondré un enlace aquí. –

+6

Esta es una excelente pregunta. Debería ser reabierto. Soy un desarrollador de winform 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 procedural, que es más adecuado para algoritmos, pero más detallado para mostrar UI. Intente descomprimir un archivo de impresión .XPS, verá WPF xaml allí. Existen demasiadas limitaciones con Winforms. Aunque todavía funciona, pero el WPF "llamativo" 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 listview o datagrid. –

Respuesta

96

sé asp.net y WinForm desarrollo. No soy el tipo de desarrollador que se lanza a una nueva tecnología solo porque es nueva. Necesita darme 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 hábiles. Tuvimos la ventaja de contar con un experimentado desarrollador de WPF en el equipo, y muchachos inexpertos que estaban ansiosos por aprender la tecnología. Había una gran moral y la productividad era impresionante.

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

¿Se considera un codificador manual o un codificador de arrastrar y soltar? Si se considera un drag-and-dropper, entonces la cosecha actual de herramientas WPF puede no ser adecuada para usted. ¿Tal vez esperar a Visual Studio 2010? Trabajo casi exclusivamente en XAML. La mayoría de los WPF probablemente acepten 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 las Winforms para aplicaciones empresariales puras? No me interesan los dulces, las animaciones, los degradados, los efectos de visualización de imágenes, etc., que proporciona WPF.

Yo solía pensar de esta manera, pero recientemente he desarrollado una aplicación de negocios que tiene gradientes, animación básica y efectos. Estas características extravagantes se agregaron para mejorar la experiencia del usuario. ¿Por qué las aplicaciones comerciales deberían ser Battleship Gray? ¿Por qué deberían ser inutilizables? Por supuesto, no es el color, los degradados, la animación lo que hace que una aplicación comercial sea utilizable, pero el uso de estos efectos puede ayudar a la experiencia del usuario, y esto es lo que es importante para mí. Pude haber hecho todo lo que hice en la aplicación WPF en WinForms, solo me hubiera llevado mucho más tiempo.

Better richher data binding?

El soporte de enlace de datos es increíble. Es mi característica más querida en la plataforma. Consulte this wonderful Databinding Cheatsheet.

Intenta convencer a alguien como yo para cambiar.

He decidido que no voy a tratar de convencer a nadie para que cambie a WPF. Los desarrolladores que he tratado de "convencer" (todos los desarrolladores experimentados de Winforms) generalmente han tenido problemas con la plataforma. No están invertidos en la tecnología. Ellos no "entienden". Animo a las personas a verificar la tecnología para ver si es adecuada para ellos como desarrollador. La curva de aprendizaje es enorme. Si aprende por libros, consulte this SO post para algunas mini-revisiones en libros de WPF. Si aprende por videos, consulte el windowsclient.net WPF videos. Si aprende con el ejemplo, consulte this o this publicación. Olvida todo lo que sabes sobre WinForms. WPF realmente parece más cercano a ASP que WinForms. Crea algunas aplicaciones de ejemplo. Vea si funciona para usted y su equipo.

Como es multidisciplinar (asp.net/habilidades de desarrollo), puede ver la ventaja de la habilitación en WPF, ya que está estrechamente relacionada con Silverlight. Silverlight llena esa brecha entre sus aplicaciones de cliente enriquecido y aplicaciones web.

Personalmente, creo que WPF es la mejor tecnología del lado del cliente disponible para el framework .NET, y generalmente evitará desarrollar en WinForms para el trabajo futuro. YMMV

Buena suerte con su decisión.

+10

Respuesta impresionante Brad: nuestra compañía 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. Aún no hemos tomado una decisión, pero su párrafo Battleship Grey tiene mucho peso para nosotros ya que hemos visto el impacto que tiene una interfaz de usuario de gran atractivo en las ventas. Gracias por tomarse el tiempo para escribir una respuesta excelente. – gidmanma

+0

Es cierto que la respuesta es asombrosa. Estaba pensando si comenzar a aprender WPF o Windows Forms y esta respuesta me proporcionó muchas opiniones antes de tomar una decisión. – Nipuna

+3

Hay una enorme diferencia entre tener un solo desarrollador experimentado de WPF en un equipo y no tener ninguno. Si a eso le agregamos una curva de aprendizaje pronunciada, si llevas adelante un negocio no vas a lograr mucho. De manera realista, 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. –

1

No es exactamente un duplicado, pero es posible que este artículo le resulte útil sobre los beneficios de WPF, aparte de los nuevos bits de gráficos.

WPF or WinForms for internal tools?

0

Imagina si pudieras usar la misma IU (XAML) desde tu página ASP.NET/(Silverlight) con tu aplicación de escritorio. Solo lo construirías una vez pero lo vincularías a cualquiera ... esa es una de las intenciones de WPF/XAML ... ¿estamos realmente allí todavía? Todavía no, pero cada vez más cerca.

+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 horrible en ambas plataformas. –

+0

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 su desarrollo de WPF en exceso. – geofftnz

+1

Bueno, dije que todavía no hemos llegado ... pero esa es la intención final. – Webjedi

9

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

¿Por qué?

  • MUCH más flexibilidad. Si quieres hacer algo que no sea estándar en las formas de ganar, se produce dolor y sufrimiento, pero en WPF es simple.

  • Mucho mejor enlace de datos

  • más fácil desarrollar (una vez que entienda los conceptos básicos, que por desgracia se llevará un tiempo)

4

Cuando comencé a buscar en WPF, lo traté como "Winforms with Vector Graphics" y corrí directamente al costado 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 de cero.

En serio, es mucho más limpio y fácil si utiliza un patrón como Model-View-ViewModel.Obtenga más información en The Orbifold, Google Groups thread y Channel9

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

4

Gracias por el mensaje. Mi empresa tiene mucho tiempo invertido en WinForms. No me puedo imaginar obtener una aplicación de tamaño mediano en 32 días hábiles; nuestros períodos de certificación son meses y ciclos de liberación a veces anuales o más largos (a pesar de mantenerse lo más cerca posible de una filosofía de desarrollo Agile), tal es la naturaleza de las aplicaciones que desarrollamos.

Acabo de jugar con WPF por primera vez y encontré 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 usando ese cuadro de texto WPF, completo con soporte de revisión ortográfica.

Me impresiona ver que Microsoft pensó en esto (alojar WPF en WinForms y viceversa), ya que realmente no puedo ver que mi empresa se mude a WPF a menos que podamos hacer la transición durante un largo período de tiempo; hay demasiado invertido en WinForms para comenzar 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 tomará un tiempo acostumbrarse y eso parece consistente con otros comentarios.

Cuestiones relacionadas