Saltar al contenido
Conversión de WinForms a WPF: ¿Debería considerarlo?

Conversión de WinForms a WPF: ¿Debería considerarlo?

WinForms ha sido durante mucho tiempo una forma popular de desarrollar aplicaciones basadas en formularios y GUI, generalmente para dispositivos basados en Windows. Como parte de .NET Framework, y originalmente visto como un reemplazo de Microsoft Foundation Class Library (MFC), las aplicaciones WinForms están "controladas por eventos". Es decir, se sientan y esperan a que un usuario interactúe con ellos, antes de entrar en acción y reaccionar a esta entrada.

4min read

WinForms ha sido durante mucho tiempo una forma popular de desarrollar aplicaciones basadas en formularios y GUI, generalmente para dispositivos basados en Windows. Como parte de .NET Framework, y originalmente visto como un reemplazo de Microsoft Foundation Class Library (MFC), las aplicaciones WinForms están "controladas por eventos". Es decir, se sientan y esperan a que un usuario interactúe con ellos, antes de entrar en acción y reaccionar a esta entrada.

Aunque sigue siendo una tecnología útil para muchos (ofrecemos una amplia gama de controles útiles y populares), WinForms es oficialmente una tecnología en "modo de mantenimiento". Según Microsoft, el producto ya no está sujeto a desarrollo activo, no verá nuevas funciones en el futuro, pero se beneficiará de la corrección de errores.

Teniendo esto en cuenta, ¿cuál es el argumento para convertir una aplicación de WinForms en una tecnología más moderna como Windows Presentation Foundation (WPF)? En este post vamos a echar un vistazo a este tema, sopesando las distintas opciones y los pros y los contras.

convertir una aplicación de WinForms a una tecnología más moderna como Windows Presentation Foundation (WPF)

Windows Presentation Foundation

Windows Presentation Foundation es una API diferente para crear GUI. Independiente de WinForms, pero también incluido en .NET Framework, se basa en DirectX y usa un lenguaje llamado XAML para describir sus componentes y elementos. Muchos desarrolladores a menudo hacen la pregunta: "¿Puedo convertir fácilmente mi aplicación WinForms?" Veamos algunas respuestas y consejos útiles:

1. Una oportunidad para mejorar tu código

Después de decidir "convertir" la aplicación de WinForms en WPF, dé un paso atrás y decida si el mejor enfoque no es simplemente reescribir el código desde cero. Sin duda, aprenderá mucho durante el proceso, y lo más probable es que el resultado final sea un código mejor. Cambiar de WinForms a WPF implica un cambio de mentalidad, este artículo analiza cómo debería diferir su enfoque. En esencia, WPF es muy diferente a WinForms, por lo que comprender los conceptos básicos de WPF antes de empezar a migrar cualquier código es un paso vital.

2. Converting C#.NET WinForms designer code

Si busca un enfoque más "automatizado", existen utilidades que convertirán el código del diseñador de C#.NET en XAML. Este es un buen ejemplo, aunque también aconsejamos tener una buena revisión manual del código. Este proyecto de CodePlex también es capaz de manejar la conversión básica, tomar controles básicos de formularios de WinForms e incluso transferir código de manejo de eventos. Tenga en cuenta que el proyecto no se ha actualizado durante varios años. Aquí se puede encontrar una opción más actualizada, y esta herramienta viene con soporte para varios controles diferentes.

3. Hosting WinForms inside a WPF application

En lugar de convertir una aplicación completa, es posible reutilizar el código de WinForms hospedando controles dentro de una aplicación WPF. Microsoft ofreceun tutorial muy detallado sobre cómo hospedar controles compuestos de WinForms dentro de una aplicación WPF.

4. Validación de los resultados

Si no está familiarizado con WPF o con la conversión o migración de código de WinForms, es una buena idea volver a comprobar los resultados finales. Algunas herramientas útiles para hacer esto incluyen:

 

  • Actualizado por última vez hace unos años, Snoop sigue siendo, sin embargo, una forma útil de depurar visualmente las aplicaciones WPF.
  • Shazzam ayuda a probar los sombreadores de píxeles de WPF
  • Cualquier buen desarrollador de .NET conocerá Reflector
  • Microsoft Blend comenzó su vida como una herramienta de interfaz de usuario independiente, pero ahora forma parte de Visual Studio. De cualquier manera, es una forma interesante de diseñar aplicaciones de WPF y puede ser una ayuda útil para aquellos que se mudan de WinForms.
  • WPF Performance Suite ayuda a analizar el comportamiento de las aplicaciones de WPF y proporciona un medio para implementar mejoras. Útil para aquellos que comienzan con WPF o refactorización de código de aplicaciones WinForms.

Multiple options

Como sabrán los desarrolladores experimentados, .NET Framework ofrece una serie de métodos y soluciones para resolver cualquier problema dado. Cuando se trata de aplicaciones GUI, WinForms y WPF siguen siendo opciones muy válidas y, como hemos visto en esta publicación, hay medios para convertir entre los dos enfoques. Cualquiera Infragistics la ruta tomada, ofrece una variedad de componentes de interfaz de usuario prediseñados para ayudar a que los resultados finales sean aún más impresionantes.

WPF
Solicitar una demostración