2008-09-21 29 views
12

? Trabajo en una aplicación grande de C# (aproximadamente 450,000 líneas de código), constantemente tenemos problemas con el montón de escritorio y GDI manejan fugas. WPF resuelve estos problemas, pero no sé cuál es la mejor manera de actualizar (supongo que esto llevará mucho tiempo). La aplicación tiene solo unos pocos formularios, pero estos pueden contener muchos conjuntos diferentes de controles de usuario que se determinan programáticamente.¿Cuál es la forma más fácil de actualizar una aplicación grande de C# winforms a WPF

Se trata de una aplicación interna de la empresa, por lo que nuestros ciclos de lanzamiento son muy cortos (normalmente un ciclo de lanzamiento de 3 semanas).

¿Hay algún camino de actualización gradual o tenemos que tomar el golpe en un esfuerzo masivo?

+6

si gotea en C#, perderá otras cosas en WPF.Arregle su código antes de pensar que una nueva herramienta solucionará mágicamente todos sus problemas. – gbjbaanb

Respuesta

11

Puede comenzar creando un host WPF.

Luego puede usar el control < WindowsFormHost/> para alojar su aplicación actual. Luego, sugiero crear una biblioteca de sus nuevos controles en WPF. Uno a la vez, puede crear los controles (sugiero que sean controles personalizados, no controles de usuario). Dentro del estilo para cada control, puede comenzar utilizando el control < ElementHost/> para incluir el control de formularios de Windows "antiguo". Luego puede tomar su tiempo para refactorizar y recrear cada control como WPF completo.

Creo que todavía tomará un esfuerzo inicial crear sus contenedores de control y diseñar un host WPF para la aplicación. No estoy seguro del tamaño de la aplicación o la complejidad de los controles de usuario, por lo que no estoy seguro de cuánto esfuerzo sería para usted. Relativamente hablando, es mucho menos esfuerzo y mucho más rápido poner su aplicación en funcionamiento en WPF de esta manera.

no me acaba de hacer eso y olvidarse de él, aunque, como es posible que tenga problemas con los controles superpuestos entre sí (formularios de Windows no juega bien con WPF, especialmente con transparencias y otros elementos visuales)

favor Actualízanos sobre el estado de este proyecto, o brinde más información técnica si desea una guía más específica. Gracias :)

3

¿Utiliza muchos controles de usuario para las piezas? WPF puede alojar controles de forma de win, por lo que podría traer piezas por partes en el formulario principal.

+0

Sí, (edité controles => controles de usuario. – Chris

+0

Puede agregar los controles de usuario a un formulario WPF. Luego, tradúzcalos según sea necesario a WPF –

2

WPF le permite incrustar controles de usuario de formularios de Windows en una aplicación WPF, lo que puede ayudarlo a realizar la transición en pasos más pequeños.

Eche un vistazo a la clase WindowsFormsHost en la documentación de WPF.

1

Hay un papel blanco muy interesante sobre la migración de una aplicación WinForm .NET 2.0 hacia WPF, vea Evolving toward a .NET 3.5 application

papel resumen: En este artículo, voy a señalar algunos de los procesos de pensamiento, las decisiones y problemas que tuvimos que enfrentar al desarrollar una aplicación Microsoft .NET de 1.x/2.x a 3.x. Veré cómo ayudamos a nuestro cliente a adoptar la nueva tecnología, y aún así mantenemos un calendario de lanzamiento aceptable para la empresa.

Cuestiones relacionadas