Come creare un progetto WinForms che sia "pronto per WPF"

3

Sono uno sviluppatore C # che non ha ancora avuto il privilegio di apprendere WPF. Tuttavia, di recente ho avviato la fase di architettura di un nuovo progetto che, a mio avviso, utilizzerà eventualmente WPF (probabilmente, sebbene ASP.Net sia ancora un'opzione), ma lo sviluppo della GUI non inizierà per diversi mesi. (Dobbiamo ottenere un buy-in su un proof-of-concept basato su WinForm prima di procedere con lo sviluppo full-grade.) Quando siamo pronti per iniziare a implementare la GUI, imparerò WPF da solo o assumerò qualcuno con esperienza (preferibilmente entrambi).

Quindi la mia domanda è: quali sono i fondamenti chiave (schemi di progettazione, elementi essenziali della lingua, ecc.) che potrei impiegare fin da subito per facilitare una migrazione più fluida lungo la strada? Ad esempio, il mio codice è un modello di simulazione che conterrà un numero molto grande di entità che alla fine dovranno essere "visualizzate", con controlli utente interattivi. Esistono alcune tecniche che, se implementate da zero, renderebbero cablati questi oggetti con WPF meno doloroso in seguito? (Come le proprietà di dipendenza, o quant'altro.) Allo stesso modo, se mi fido dell'approccio MVC che conosco per ora, sarà immediato trasformarlo in una strategia MVVM in seguito? Ci sono alcuni concetti semplici che potrei applicare ora che renderebbero la migrazione più facile, ma non ci vorranno due settimane dal mio attuale ciclo di sviluppo per padroneggiare?

In sostanza, sto cercando di seguire consiglio dello zio Bob per rimandare le decisioni architettoniche (in questo caso, il livello della GUI) fino a quando non devo assolutamente realizzarle. Ma voglio sapere se ci sono costi di migrazione inutili che potrei evitare se li anticipo in anticipo.

    
posta kmote 25.02.2014 - 20:42
fonte

1 risposta

4

Sono contento che stiate già pensando a un pattern MVVM. MVVM è molto popolare nelle app WPF. È molto probabile che se sei disciplinato puoi persino implementare la tua app WinForms con un approccio MVVM. Se lo farai sarà probabilmente semplice come implementare le Views e forse pochi nuovi ViewModels se i disegni dell'interfaccia utente sono simili.

Fondamentalmente l'incapsulamento sarà tuo amico. Nessuna logica di business nel progetto WinForms. Proprio nessuno. Restituisci i modelli di base dalla tua libreria Core e prova a mantenere WinForms con la stessa semplicità dei modelli vincolanti e quindi chiamando le azioni nella tua classe principale.

    
risposta data 26.02.2014 - 00:43
fonte

Leggi altre domande sui tag