Y a-t-il un pratique moyen pour nous de faire évoluer lentement une application WinForms vers WPF sans créer un cauchemar de support pour nous-mêmes avec des scénarios d'interopérabilité étranges?WinForms to WPF - Comment y arriver à partir d'ici?
Informations générales:
Nous avons une grande application WinForms gris navire de guerre qui est fortement utilisé par un groupe interne d'environ 60-75 utilisateurs. Nous commençons à courir dans des endroits où nous pourrions voir l'avantage d'avoir l'application dans WPF, mais ce n'est pas suffisant pour justifier un grand projet de le réécrire complètement. Tous les écrans de l'application sont des contrôles utilisateur WinForms autonomes et l'application WinForms est juste un shell qui gère le menu, l'ouverture/fermeture des formulaires, fournit des méthodes d'aide partagées, etc ...
Jusqu'à présent, le meilleur Nous avons eu l'idée de convertir l'application shell en WPF, puis d'héberger les contrôles utilisateur WinForms à l'intérieur. Nous avons pensé que nous pourrions ensuite convertir les contrôles utilisateur au fil du temps, en liant ces changements aux initiatives qui ont une valeur commerciale suffisante pour soutenir le travail supplémentaire. Je suis préoccupé par le fonctionnement de l'interop et son impact sur les performances. Je suis également préoccupé par la façon dont nous passons à un nouveau look pour l'application. Il semblerait bizarre de rendre l'application shell snazzy et d'avoir de vieux contrôles utilisateur de cuirassé gris hébergés à l'intérieur et il semble aussi étrange de créer l'application shell dans WPF et de la faire ressembler à WinForms.
Si l'un des frameworks Caliburn, Prism ou autre facilitait la transition, nous serions également ouverts à l'exploration de ces options.
+1 décrit ce mes propres expériences très bien. En outre, voici une session PDC intéressante sur la façon dont Visual Studio 2010 a été implémenté à l'aide de NET Framework 4 interop: http://microsoftpdc.com/2009/CL09 –
Je ne suis pas sûr qu'il existe une "bonne" réponse à cela, mais je pense que c'est l'approche que nous sommes le plus susceptibles de finir par prendre. –
et dans tous ces efforts, payés par l'entreprise, avez-vous fourni de nouvelles fonctionnalités utiles aux utilisateurs finaux, ou avez-vous juste passé un bon moment à faire des eye-candy? – smirkingman