2008-09-20 5 views
6

He estado desarrollando aplicaciones Winforms en C# desde hace unos años y he estado interesado en mover el desarrollo futuro hacia WPF, principalmente debido a las cosas positivas que he estado escuchando al respecto. Pero me pregunto qué clase de obstáculos han tenido que superar otros cuando migraron a WPF. ¿Hubo un golpe significativo a su productividad o algún problema en particular que encontró desafiante?¿Cuáles son los obstáculos más grandes para superar la migración de Winforms a WPF?

Respuesta

11

No estoy seguro de que pueda darle un solo obstáculo, porque es una desviación completa de WinForms. Mi sugerencia es obtener WPF Unleashed de Adam Nathan, olvidarse de todo lo que sabes sobre la construcción de UI con cualquier tecnología anterior (Winforms, MFC, Java) y comenzar de nuevo en el primer cuadro.

Si intenta y lo hace de cualquier otra manera, le causará total frustración.

ETA: la razón por la que digo que empiece de cero es porque a veces es más fácil aprender nuevos conceptos si se ingresa con un borrón y cuenta nueva. En el pasado, descubrí que puedo ser mi peor enemigo cuando se trata de aprender algo nuevo si trato de llevar el conocimiento de la tecnología a la tecnología (por ejemplo, pensar que hacer servicios web de asmx durante años me impide leer la primera pareja capítulos de un libro de WCF).

+0

Gracias Don por la información. Parece un libro que ha recibido una buena cantidad de críticas positivas. – itsmatt

+2

Don - Obtuve el libro y está muy bien escrito y ha sido útil, ¡gracias de nuevo! – itsmatt

5

En mi experiencia ciertamente limitada con WPF, los obstáculos más grandes incluyen una revisión completa de mi modelo mental sobre cómo se construyen las IU y la nueva terminología que debe aprenderse como resultado de eso. Sin embargo, es posible que a otros les resulte más fácil adaptarse al modelo. Puedo ver cómo alguien que proviene de las mejores prácticas en el mundo web encontraría la transición mucho más natural.

Definitivamente hubo un impacto significativo en mi productividad (tan significativo que aún no me siento cómodo con la idea de ir a ver a mi jefe y decir "déjenme hacer esto con WPF en lugar de Winforms"). No creo que nunca llegue allí, pero necesito desarrollar un poco de comodidad adicional con la tecnología a través de la práctica en mi tiempo personal.

No me encontré con ningún problema en particular que me pareciera más desafiante que cualquier otro. Creo que Adam Nathan's WPF Unleashed se mencionó en otra parte, y definitivamente es una lectura que vale la pena. También he escuchado cosas buenas sobre Charles Petzold'sbook, aunque personalmente no puedo responder por ello.

+0

Gracias, Greg. Aprecie su opinión sobre la productividad y también verá el libro de Petzold. Lo escuché en dotNet rocks hace un par de semanas y él fue interesante. – itsmatt

1
  1. No se puede apagar anti-alias.
  2. Sus usuarios necesitan Vista o XP SP2 con .net 3.x framework.
  3. Si desea utilizar winforms, tenga en cuenta Air Space (una solución para D3D here).

Estos son los principales problemas para mí. Aparte de eso, estoy totalmente de acuerdo, es mucho más de lo que parece.

0

Bueno, para mí fue el hecho de que los controles en WPF se comportan de manera diferente a los de WPF (por ejemplo, cuando se trata de posicionamiento en el formulario). Debe comprender la diferencia tan pronto como sea posible para usarla de manera exitosa y productiva.

1

Si la aplicación Windows Forms tiene una arquitectura modelo de objeto propio definido (más como un modelo de arquitectura MVC) Creo que no llevará mucho tiempo migrar su UI a WPF. WPF ha organizado sus elementos visuales de forma jerárquica (VisualTree) y RoutedEvents y RoutedCommands son conceptos totalmente nuevos en WPF. y, obviamente, hay más productos como DataTemplate/Controltemplate, todos en el nivel XAML. Todo esto hace una manera muy poderosa y fácil de lograr una gran experiencia de usuario. Así que mi punto principal aquí es que puede esperar que su modelo de objeto sea reutilizable (con algunas modificaciones) en WPF y que todo lo demás en el proyecto de Winforms deba descartarse. Por supuesto, no es necesario modificar todas las otras capas (capa de comunicación/DataLayer)

1

Estoy en el mismo barco. He estado programando usando winforms por tanto tiempo. Ahora sigo decidido que voy a aprender WPF y comenzar a hacer todo con él. Lo más difícil para mí es acostumbrarme a utilizar XAML principalmente para la interfaz de usuario en lugar del código C#, y muchas de las propiedades son diferentes en WPF. (IE: para cambiar el texto de una etiqueta, debe cambiar la propiedad del Contenido). Así que mi mayor problema es sacar mi cabeza de las formas de ganar y ponerme en una forma completamente nueva de pensar.

0

Incluso con más de 20 años de experiencia, encontré que WPF tiene una curva de aprendizaje empinada. Intenté hacer mi último proyecto utilizando WPF, pero la falta de controles integrados (como NumericUpDown por ejemplo) y problemas para hacer que DataBinding funcione con un objeto comercial me obligó a recurrir a Winforms para este proyecto, pero espero poder hacer proyectos en el futuro con eso. Casi todo el código que escribí (frente a lo que el diseñador generó) fue reutilizable cuando cambié entre WPF y Winforms.

Cuestiones relacionadas