Transición de Windows Forms a WPF
Durante mucho tiempo, he estado estancado con el desarrollo de Windows Forms (comencé con VB6 y continuó hasta C# .NET 4.5), y prácticamente he alcanzado el límite de lo que Windows Forms puede hacer, tanto usando .NET puro como y efectos especiales con Native Code.
Intenté aprender WPF y XAML, pero me quedo atascado en el nuevo diseñador de WPF. Realmente parece muy difícil de usar en comparación con el diseñador de Windows Forms.
Quiero saber si existen alternativas al diseñador WPF de .NET que sean más adecuadas para los desarrolladores de Windows Forms.
Me gusta escribir blogs sobre artículos para principiantes sobre WPF y hay algunos en particular que pueden ayudarte:
- Comprender el cambio de mentalidad al cambiar de WinForms a WPF
- ¿Qué es este "DataContext" del que hablas?
- Un ejemplo sencillo de MVVM
Para resumir, la mayor diferencia entre Winforms y WPF es que en WPF su capa de datos (la DataContext
) es su aplicación, mientras que en Winforms su capa de UI es su aplicación.
Para verlo de otra manera, con WPF su aplicación consta de los objetos que usted crea y usa plantillas y otros objetos de la interfaz de usuario para indicarle a WPF cómo dibujar los componentes de su aplicación.
Eso es lo opuesto a WinForms, donde construyes tu aplicación a partir de objetos de la interfaz de usuario y luego les proporcionas los datos necesarios.
Debido a esto, el diseñador en realidad no se usa mucho ya que los componentes de su aplicación están diseñados en código, y el diseñador solo es necesario para dibujar una interfaz fácil de usar que refleje sus clases de datos (generalmente Models
y ViewModels
)
Y personalmente, prefiero escribir todo mi XAML a mano, ya que es más rápido y no crea tanto desorden como lo hace el diseñador WPF de arrastrar y soltar, aunque en ocasiones uso el Diseñador para obtener una vista previa de cómo se verá mi interfaz de usuario. como.
Entonces, para responder a su pregunta sobre si hay otros diseñadores de WPF adecuados para los desarrolladores de WinForms, le sugeriría que, en lugar de buscar otro diseñador, busque aprender a usar WPF de la forma en que debe usarse. Usar WPF como si fuera WinForms significa que te pierdes gran parte de lo que lo hace tan genial :)
Bueno, aunque algunas personas no están de acuerdo, también recomendaría no usar el diseñador VS. Al menos no para crear una interfaz. Si desea obtener una primera impresión de su implementación sin iniciar la aplicación, es un buen visor al menos siempre que no se utilicen elementos sofisticados como Styles
y . Templates
Pero, en mi humilde opinión, su resultado de arrastrar y soltar solo debe usarse como prototipo y, por lo tanto, debe descartarse cuando ya no sea necesario.
Aquí hay algunas razones que son importantes para mí para no usarlo.
El diseñador de VS está trabajando con márgenes y alineaciones fijos (lo que generalmente no es necesario si está utilizando los controles de diseño), lo que significa que debe tocar muchos controles si se cambian los requisitos. Si está familiarizado con XAML y la mecánica de WPF, puede crear aplicaciones que se pueden modificar con poco esfuerzo en cuanto a apariencia.
Dado que el diseñador genera el xaml, la composición no es óptima y la interfaz de usuario puede funcionar mal. No lo medí, es sólo un sentimiento.
Una alternativa mucho mejor es MS Blend , aunque el comienzo es todo menos fácil. Su resultado de arrastrar y soltar es mucho mejor que el resultado del diseñador VS.
Pero es una herramienta bastante poderosa, que te ayuda a utilizar elementos bastante poderosos para crear una interfaz de usuario de última generación. Recomiendo visitar al menos un taller breve para tener una idea de sus oportunidades.
Volviendo a tu pregunta, en mi humilde opinión, y creo que mucha gente está de acuerdo, consíguete un buen libro, por ejemplo, WPF Unleashed y más adelante, si quieres saber más sobre los detalles, WPF Pro . Hay muchas características que son diferentes a Winforms
. No podrás conocerlos utilizando ningún diseñador. Creo que ese es el mejor enfoque.
Tenga en cuenta también que existen muchos marcos y bibliotecas (por ejemplo, MVVM light , WPFToolkit ) que ya están resolviendo algunos problemas comunes. Por tanto, no es necesario reinventar la rueda.