Esiste un pratico modo per noi di evolvere lentamente un'applicazione WinForms a WPF senza creare un incubo supporto per noi stessi con gli scenari di interoperabilità strani?WinForms to WPF - Come ci arriviamo da qui?
informazioni Background:
Abbiamo una grande applicazione WinForms corazzata grigio che è fortemente utilizzato da un gruppo interno di circa 60-75 utenti. Stiamo iniziando a imbattersi in luoghi dove potremmo vedere alcuni benefici dall'avere l'app in WPF, ma non è sufficiente per giustificare un grande progetto di riscriverlo completamente. Tutte le schermate dell'app sono controlli utente WinForms autonomi e l'app WinForms è solo una shell che gestisce i menu, i moduli di apertura/chiusura, fornisce alcuni metodi di supporto condivisi, ecc ...
Finora, il migliore l'idea che abbiamo avuto è quella di convertire l'applicazione shell in WPF e quindi ospitare i controlli utente WinForms al suo interno. Abbiamo pensato che avremmo potuto convertire i controlli utente nel tempo, legando tali modifiche alle iniziative che hanno un valore commerciale sufficiente a supportare il lavoro aggiuntivo. Sono preoccupato per quanto bene funziona l'interoperabilità e come influirà sulle prestazioni. Sono anche preoccupato di come passiamo a un nuovo look per l'app. Sembrerebbe strano rendere l'app shell sgargiante e quindi avere vecchi controlli utente in grigio corazzato ospitati al suo interno e sembra anche strano creare l'app shell in WPF e farla apparire come in WinForms.
Se uno dei Caliburn, Prism, o in un altro quadro simile avrebbe facilitare la transizione, saremmo aperti a esplorare quelle opzioni pure.
+1 Questo descrive le mie esperienze molto bene. Inoltre, ecco una interessante sessione PDC su come è stato implementato Visual Studio 2010 utilizzando l'interoperabilità di NET Framework 4: http://microsoftpdc.com/2009/CL09 –
Non sono sicuro che ci sia una risposta "giusta" a questo, ma io penso che questo sia l'approccio che probabilmente finiremo per prendere. –
e in tutto questo sforzo, pagato dal business, hai fornito nuove funzionalità utili agli utenti finali, o ti sei divertito a fare gli occhi? – smirkingman