Sono del parere che le applicazioni siano così diverse l'una dall'altra e la nostra comprensione di come devono essere scritte le applicazioni è ancora molto limitata. Le applicazioni Windows Form precedenti su cui ho lavorato sono state così diverse l'una dall'altra. Alcune delle differenze di progettazione che ho visto sono (tra cui la maggior parte delle combinazioni):
- Direttamente parlare al database (2 livello)
- Utilizzare un back-end che è stato scritto per una data applicazione (3 livelli)
- Utilizzare un set di servizi Web che sono stati scritti per essere utilizzati da molte applicazioni e non possono essere modificati per l'applicazione. (Service-Oriented Architecture)
- Aggiornamenti stato fatto da CRUD operazioni
- Aggiornamenti stato fatto con i (l'invio di comandi al server back-end) command pattern
- sacco di usi di data binding/no usi di associazione dati
- maggior parte dei dati essere "simili a tabelle" (ad es. fatture) che funzionano bene nei controlli griglia standard/richiedono controlli personalizzati per la maggior parte dei dati dell'interfaccia utente.
- Uno sviluppatore/gruppi di 10 o 20 sviluppatori (solo sull'interfaccia utente)
- Un sacco di test di unità utilizzando deride etc/nessuna unità mette alla prova
Quindi non credo che sia possibile creare un'implementazione di MVC (o MVP) che si adatta sempre bene.
I migliori post che ho visto davvero spiegando MVC e perché un sistema MVC è costruito così com'è, è la "Build Your Own CAB" series by Jeremy D Miller. Dopo aver lavorato, dovresti essere in grado di capire le tue opzioni molto meglio. Microsoft's Smart Client Guidance (CAB/Microsoft Composite Application Block) dovrebbe anche essere considerato. È un po 'complesso, ma può funzionare bene per le applicazioni che si adattano bene.
La selezione di un MVC/MVP Implementation for a Winforms Project fornisce una panoramica che vale la pena di leggere. Un sacco di persone come PureMVC. Non l'ho mai usato, ma lo guarderei la prossima volta che ho bisogno di un framework MVC.
"Presenter First" è un approccio di sviluppo software che combina le idee del modello di progettazione Model View Presenter (MVP) e test-driven development. Ti consente di iniziare scrivendo i test nella lingua del cliente. Per esempio:
"Quando si fa clic sul pulsante 'salva' quindi il file deve essere salvato e l'avvertimento file non salvato dovrebbe sparire“.
non ho alcuna esperienza con "Presenter First ", ma darò una prova quando ho la possibilità, come sembra molto promettente.
Altre domande overflow dello stack si potrebbe potrebbe desiderare di guardare sono here e here.
Se state pensando di usare WPF in qualsiasi momento date un'occhiata al modello Model-View ViewModel (MVVM). Ecco un ottimo video che dovresti dare un'occhiata a: Jason Dolinger on Model-View-ViewModel.
MVVM (Model View View Model) Design Pattern for Winforms fornire un'altra opzione che potrebbe rendere più semplice la conversione in WPF, se necessario. Magical.Trevor è un altro esempio MVVM per Windows Form che include anche l'associazione automatica basata sui nomi di proprietà.
Anche chiedere se stessi perché si utilizza MVC.
- Desiderate essere in grado di testare più codice possibile?
- Stai cercando di consentire il maggior numero possibile di codice da riutilizzare?
- Stai cercando di rendere facile la comprensione del codice?
- 101 altri motivi che possono essere validi per un determinato progetto.
volta che sono chiare sul mira, diventa più facile scegliere un'implementazione o l'altro.
possibile duplicato di [? Come si implementa MVC in un'applicazione WindowsForms] (http://stackoverflow.com/questions/ 122388/how-would-you-implement-mvc-in-a-windowsforms-application) – nawfal
vedere anche [Come rendere sicuro il tipo di Databinding e supportare il refactoring] (http://stackoverflow.com/questions/1329138/how-to -make-databinding-type-safe-and-support-refactoring) –