Ciao,
Sono rimasto piuttosto interdetto dal fatto che attualmente siano la tecnologia predefinita in Visual Studio per creare applicazioni con ASP.NET Core
Scegli tu liberamente se usare MVC o Razor Pages. Puoi anche usare un mix di entrambi all'interno della stessa applicazione. Non sono tecnologie contrapposte, anzi, si basano esattamente sullo stesso stack tecnologico.
Io le reputo quasi identiche come soluzioni, quindi non mi dispiace usare né l'una né l'altra.
Infatti, entrambe usano le view Razor e possono contare sullo stesso meccanismo di model binding nel momento in cui devi inviare un form o fare una ricerca.
L'unica differenza è nel modo in cui sono organizzati i file:
- Con MVC hai i controller in /Controllers, le view in /Views e i modelli ovunque tu voglia (ad esempio in /Models). Quindi i vari file di codice sono separati per "responsabilità".
- Con Razor Pages, hai ancora una volta delle view (es. dentro /Pages) e un codefile associato alla view che si trova nella stessa directory. Quindi i file sono organizzati per "scopo" (es. realizzare un form di contatto). Alcuni preferiscono questa organizzazione perché così hanno fianco a fianco sia la logica di ottenimento dei dati che quella di presentazione.
Sia usando MVC che Razor Pages, non bisognerebbe mettere logica applicativa nei controller o nei codefile, perché quello è codice che merita di stare in servizi applicativi e servizi infrastrutturali, cioè in altre classi separate. A questo punto, dato che il grosso del codice si trova in altre classi, usare MVC o Razor Pages fa veramente poca differenza. Io credo che siamo nel reame della pura preferenza personale.
le indichino come le eredi delle vecchie WebForms
No, assolutamente. Razor Pages è sempre MVC presentato in un altro modo. Però se hai un link in cui si parla di questo vorrei dargli un'occhiata per capire in che termini ne parlano.
Forse se citano WebForms è solo perché l'organizzazione dei file somigliava a quella di Razor Pages, cioè view + codefile. Ma la somiglianza finisce qui, perché in Razor Pages non esiste il concetto di Postback e di ViewState per il mantenimento dello stato di richiesta in richiesta. E per fortuna non esistono neanche controlli server che generano HTML al di fuori del nostro controllo.
ciao,
Moreno
Modificato da BrightSoul il 23 maggio 2019 00:04 -