¿Existe una forma práctica para que evolucionemos lentamente una aplicación WinForms a WPF sin crear una pesadilla de soporte para nosotros mismos con escenarios de interoperabilidad extraños?WinForms a WPF - ¿Cómo llegar desde aquí?
información Antecedentes:
Tenemos una aplicación de Windows Forms acorazado gris grande que está muy utilizada por un grupo interno de alrededor de 60-75 usuarios. Estamos comenzando a toparnos con lugares donde podríamos ver algún beneficio de tener la aplicación en WPF, pero no es suficiente para justificar un proyecto grande para reescribirlo por completo. Todas las pantallas de la aplicación son controles de usuario autónomos de WinForms y la aplicación WinForms es simplemente un shell que maneja el menú, abre/cierra formularios, proporciona algunos métodos de ayuda compartidos, etc ...
Hasta ahora, el mejor idea que hemos tenido es convertir la aplicación de shell a WPF y luego alojar los controles de usuario de WinForms dentro de ella. Pensamos que podríamos convertir los controles de usuario a lo largo del tiempo, vinculando esos cambios a las iniciativas que tienen suficiente valor comercial para respaldar el trabajo adicional. Me preocupa qué tan bien funciona la interoperabilidad y cómo afectará el rendimiento. También me preocupa cómo hacemos la transición a un nuevo aspecto para la aplicación. Parecería extraño hacer que la aplicación de shell se vea elegante y luego tener viejos controles de usuario grises acorazados alojados dentro de ella y también parece extraño crear la aplicación de shell en WPF y hacer que se vea como lo hizo en WinForms.
Si uno de los sistemas Caliburn, Prism u otro marco similar facilitaría la transición, estaríamos dispuestos a explorar esas opciones también.
+1 Esto describe mis propias experiencias muy bien. Además, aquí hay una sesión interesante de PDC sobre cómo se implementó Visual Studio 2010 con la interoperabilidad NET Framework 4: http://microsoftpdc.com/2009/CL09 –
No estoy seguro de que haya una respuesta "correcta" para esto, pero Creo que este es el enfoque que más probablemente terminemos tomando. –
y en todo este esfuerzo, pagado por el negocio, ¿brindó alguna nueva funcionalidad útil a los usuarios finales, o simplemente lo pasaron muy bien haciéndolo muy llamativo? – smirkingman