Web Forms e MVC nello stesso progetto web

8

Sto lavorando a un progetto legacy di grandi dimensioni che è stato compilato con Web Form di ASP.NET e l'idea di aggiungere nelle librerie MVC allo stesso progetto è stata sballottata. So che questo è possibile (ci sono molti articoli disponibili), ma mi chiedo se / perché questo è / non è raccomandato da chiunque abbia fatto qualcosa di simile.

L'idea è che potremmo creare nuove aree dell'applicazione con il nuovo pattern MVC e mantenere le pagine legacy in esecuzione come sempre.

EDIT: per chiarire, non stiamo considerando il pattern MVP come quello che è già in uso in alcune parti di questo progetto, ma facendo qualcosa di simile a quanto descritto in questo articolo: link

    
posta quaz579 06.11.2014 - 21:37
fonte

1 risposta

5

Questo non è un brutto modo per riscrivere un'applicazione. Ciò sarebbe particolarmente utile per una riscrittura a lungo termine che si verifica in fasi:

  1. Aggiungi un "progetto di test" che utilizza i test CodedUI (o Watin o Selenium) per testare l'applicazione WebForms tramite il browser. È anche possibile utilizzare SpecFlow per definire i casi di test. L'ho usato con grande effetto su un'applicazione WebForms.

  2. Dopo aver ottenuto una buona copertura di test dell'applicazione WebForms, puoi iniziare la fase successiva del refactoring: Spostare i componenti comuni in una libreria di classi separata. Qui è possibile creare i modelli e il livello di accesso ai dati. È possibile aggiungere un riferimento a questa libreria alle applicazioni WebForms. I test che hai scritto nella fase 1 assicurano di non violare le regole aziendali esistenti

  3. Porta la funzionalità all'applicazione MVC, modificando i test per utilizzare l'app MVC e non l'app WebForms.

I passaggi 1 e 2 potrebbero essere affrontati contemporaneamente. È anche possibile iniziare dal passaggio 3 dopo aver testato un'intera funzionalità e i suoi componenti comuni vengono disaccoppiati dall'applicazione WebForms.

Dividi il lavoro in funzioni principali. Una volta che una funzionalità è supportata nell'applicazione MVC, chiuderla nell'applicazione WebForms. Alla fine diventerà un guscio svuotato del suo sé precedente fino a quando non è possibile rimuovere il codice tutti insieme.

    
risposta data 07.11.2014 - 19:30
fonte

Leggi altre domande sui tag