Domanda

Saluti,

Mi scuso in anticipo di non aver studiato abbastanza duramente per rispondere da solo alla domanda, ma immagino che mi occorrerebbe del tempo e preferirei sapere ora prima di investire più tempo nell'apprendimento. Non sono riuscito a trovare nulla nella mia ricerca iniziale ..

Perché utilizzare ASP.Net MVC se si utilizza già un'architettura multilivello (Livello dati, Livello logico, Livello presentazione)? A parte il fatto che il controller ha più potenza del livello logico.

Ho ragione nel pensare di poter usare nHibernate e tutte le mie classi, entità e mappature di accesso ai dati nella parte Model di MVC?

Quando si usano i controller, è meglio separare molta della logica in una classe separata in modo da poterla chiamare da più controller? Oppure posso chiamarli dai controller stessi, considerando il fatto che non vorrei che tutti fossero Azioni, solo metodi normali.

Grazie

È stato utile?

Soluzione

MVC non sostituisce il livello N, è un modo per organizzare il livello di presentazione.

Non direi che il controller è più potente del livello logico. Al contrario, il controller (come parte del livello di presentazione) dovrebbe comunque chiamare il livello logico.

I controller dovrebbero preparare i dati solo per le viste e gestire le azioni dalle viste. Dovresti comunque usare il tuo BLL.

Altri suggerimenti

  

Sì, le entità NHibernate possono (e dovrebbero essere) passare alle viste.

Questo ti metterà nei guai. È necessario utilizzare DTO appiattiti e null-safe a.k.a. visualizzare i modelli.

N-tier è un modello architettonico , per consentire il riutilizzo, la separazione delle preoccupazioni e la scalabilità delle aree chiave dell'applicazione. I livelli non dell'interfaccia utente (Business, Dati, Facciata, ecc.) Devono essere testati in unità e agnostici dell'interfaccia utente.

Il livello dell'interfaccia utente è solo uno di questi livelli che possono essere Silverlight, ASP.NET MVC, moduli Web ecc.

MVC, come MVP, è un modello di progettazione che consente una migliore testabilità del livello dell'interfaccia utente. ASP.Net MVC è un framework predefinito che supporta e applica questo modello. Lo schema era già in uso molto prima di questo framework.

Ma questa è semplicemente una scelta a livello di interfaccia utente, non dovrebbero esserci interazioni con database, servizi ecc. nei controller, controllano lo stato della vista usando il modello, non dovrebbero controllare la logica aziendale, la peresistenza, le transazioni ecc.

Per rispondere alla tua domanda sul perché utilizzare se stai già passando a più livelli è che crea URL più organizzati e compatibili con i motori di ricerca. Inoltre, è più un modello standard che gli altri modelli tendono ad essere in ASP.Net. Ciò lo rende più adatto agli sviluppatori per coloro che stanno già utilizzando MVC su altre piattaforme.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top