Dove dovrebbe andare la logica dei dati CMS

3

Abbiamo un sito Web di grandi dimensioni scritto in WebForms e abbiamo iniziato a implementare alcuni nuovi moduli in MVC. Abbiamo un CMS personalizzato sul posto. Inserisco la struttura dati per contenere i dati CMS in una classe BaseModel . Ora mi chiedo dove sarebbe il miglior modo per mettere la logica che chiama il gestore dati CMS per ottenere dati rilevanti per la pagina.

Da un lato, posso creare un BaseModel , che nel suo costruttore riceve un ID pagina e chiama il gestore CMS. Quindi crea tutti i modelli su quel modello.

D'altra parte, posso fare lo stesso in BaseController .

Non riesco a decidere quale sia più corretto, dal momento che non riesco a pensare a nessun vantaggio sull'altro. La maggior parte della mia esperienza è in WebForms , quindi mi chiedo quale sarebbe il modo più ASP.NET MVC di posizionare questa logica.

    
posta Elad Lachmi 20.03.2014 - 14:44
fonte

1 risposta

2

Come con molte opzioni, entrambi funzionerebbero. Tra questi due penso che il controller di base sia l'opzione più corretta. I "modelli" che tendi a vedere nei progetti MVC in questi giorni sono più snelli con solo proprietà e pochi o nessun metodo.

Se vuoi un'alternativa più corretta, considera di mettere questa logica in una classe separata "repository". In questo modo è possibile mantenere anche il codice del controller snello. Scarica questa soluzione campione MV.Net MVC di medie dimensioni che è un buon tutorial su come implementare il modello di repository. Guarda come viene popolato il modello Studente usando il contenitore degli studenti.

Esempio di soluzione per pattern di repository MVC di ASP.NET

    
risposta data 20.03.2014 - 23:00
fonte

Leggi altre domande sui tag