visual tutorial studio ejemplos curso c# wpf winforms mvvm

c# - tutorial - ¿Cuáles son las mejores lecturas para comenzar a usar WPF en lugar de WinForms?



wpf vs windows forms (5)

Habiendo ingresado a WPF este año, lo más importante para mí fue aprender a usar el patrón Model View View-Model para separar la vista de la lógica de la aplicación. Como regla general, si encuentra que está colocando una gran cantidad de código en el código para su vista, entonces está "haciendo las cosas mal".

Descubrí que, viniendo de un fondo de WinForms, estaba implementando muchos controladores de eventos y haciendo cosas en mi código. A medida que me familiaricé con las funciones de MVVM y WPF, descubrí que podía eliminar la mayor parte de mi código y reemplazarlo por vistas vinculantes para los modelos de visualización.

Fueron artículos como este de Josh Smith los que me ayudaron a comenzar en la ruta de MVVM:

http://www.codeproject.com/KB/WPF/TreeViewWithViewModel.aspx

Una vez que haya comenzado a familiarizarse con la visualización de los enlaces de visualización de MVVM, eche un vistazo a los comandos y específicamente a la interfaz de ICommand. Son el mecanismo principal por el cual las acciones del usuario activan las operaciones para su ejecución. Por lo tanto, en lugar de tener un controlador OnClick para botones, vincula la propiedad Comando del botón en XAML a una propiedad en su modelo de vista que expone una implementación de ICommand.

Mi 2c - Donovan

Teniendo en cuenta lo que CannibalSmith dijo una vez: "Todas las respuestas dicen que WPF es diferente". Es una gran subestimación. No solo tiene que aprender muchas cosas nuevas, debe olvidar todo lo que ha aprendido de las Formas. Es completamente nueva forma de hacer UI ".

... y teniendo muchos años de experiencia con el desarrollo visual de aplicaciones de escritorio de Windows (VB6, Borland C ++ Builder VCL, WinForms) (que es difícil de olvidar), ¿cómo paso rápidamente al desarrollo para decir aplicaciones WPF bien formadas con Visual Studio?

No necesito gráficos boozy-woozy para dar a mi aplicación un aspecto y sensación de una superproducción de Hollywood o un pijama de un millón de dólares. Siempre me gustó el orden de los controles comunes de Windows y las pautas de diseño de la interfaz de usuario, y aún más los disfruté con la salsa Vista Glass Aero Graphite.

Estoy perfectamente satisfecho con WinForms, pero quiero que mis aplicaciones se construyan con las tecnologías estándar más eficientes y actualizadas, y que estén diseñadas según los patrones más eficientes y flexibles de hoy y de mañana, aprovechando la integración basada en interfaces y la reutilización de funcionalidades. y aprovechar todas las ventajas del hardware y API modernos para maximizar el rendimiento, la usabilidad, la fiabilidad, la capacidad de mantenimiento, la extensibilidad, etc.

Me gusta mucho la idea de separar la vista, la lógica y los datos, dejando que una vista tome todas las ventajas de la plataforma (puede ejecutarse como un applet de navegador web en un thin client o como una aplicación de escritorio en una PC con una GPU más reciente) , permitiendo que la lógica se reutilice, paralelice y evolucione a la perfección, almacenando los datos en un formato bien estructurado en el lugar correcto.

Pero ... al pasar de VB6 a Borland C ++ Builder fue muy fácil (no se necesitaban libros / tutoriales para encenderlo y comenzar a trabajar) (asumiendo que ya conocía C ++), pasar de BCB a WinForms era el mismo sin problemas, no lo hace Me parece obvio cómo hacerlo con WPF.

Entonces, ¿cómo me convierto mejor de un desarrollador de WinForms en un creador de WPF y en una forma correcta de pensar?




Tenga en cuenta que MVVM parece adecuado solo para aplicaciones de una sola ventana. Me sumergí en WPF en base a la inexperiencia y las recomendaciones generales de que encajaría mejor en un proyecto de quiosco, especialmente uno en el que el cliente me haya dado imágenes de Photoshop de todas las pantallas de la aplicación. Tener gráficos geniales era un requisito para este proyecto y me gustó el parecido vago de WPF con el desarrollo web.

Descubrí algunas desventajas

1) no existe tal cosa como un juego de herramientas MVVM oficial. Hay muchos de ellos, todos respaldados por un individuo. Un tiro en una caja de herramientas de Microsoft ha sido puesto a un segundo plano hace un año y no hay soporte VS2010.

2) la programación de una aplicación de múltiples ventanas, una especie de asistente simple con avance y retroceso, es una simple pesadilla. Salí de esto con un diseño limpio que define a un delegado para cada acción de IU y un comando para cada acción de negocio, pero aún así creo que es demasiado compromiso con un marco para justificarlo, y no puede mostrar el resultado de sus pruebas a este cliente espera emoción.

3) Usted abandona el hábito de hacer doble clic en un botón y agregar algún código. Esto deja una sensación persistente de usar el IDE en contra de su naturaleza. Básicamente, utilizas Visual Studio como editor de texto y diseñador de interfaz, aún con la gran ayuda de la herramienta.

Las ventajas, hasta ahora son:

1) definir los componentes visuales es muy flexible, rápido y fácil, y puede elegir entre VS y Expression Blend. Las animaciones son simples de crear.

2) el enlace de datos simplifica la aplicación. Define un DataContext y enlaces y no tiene que mover datos de la lógica de negocios a la interfaz usted mismo, siempre que tenga una propiedad para todo lo que se debe mostrar.

3) Puede reducir la cantidad de lógica comercial en la interfaz a cero. Es fácil separar el comportamiento de la aplicación de su aspecto, por lo que puede proteger su interfaz de diez maneras diferentes con poco esfuerzo y probar toda su lógica sin abrir una ventana.

4) dejas una puerta abierta para ir con Silverlight si te preguntan.

Mi conclusión es que si tiene una aplicación MDI en mente, puede encontrarse en un gran problema. Debe tener en cuenta que, si elige WPF, está arando terreno para las generaciones futuras en lugar de subirse a un tren que lo llevará rápido y fácil. No hay una forma establecida de hacer las cosas, especialmente aquellas que no están cubiertas por demos.

Los kits de herramientas, considerados todos los aspectos, no son tan importantes y cada uno de ellos le servirá bien. De hecho, un par de clases de apoyo son suficientes para comenzar y no hay magos de lujo, depende de usted seguir las convenciones.

Incluso puede hacer las suyas propias en unas pocas horas, una vez que comprenda lo que está involucrado en la lógica. El inconveniente es que tendrás que entenderlo bien para doblar la aplicación a tu manera.

Como dije antes, tuve que aprender mucho solo para mostrar una nueva vista cuando hacen clic en un botón para mantener limpio el código. Tómese el tiempo para ver los videos citados en otro lugar en , le ahorrará tiempo.