Domanda

Sto scrivendo un documento di progettazione e la gente nella mia squadra sono disposti a fare il passaggio da ASP.NET WebForm di ASP.NET MVC. Questo è grande, ma ho difficoltà a capire come MVC workswith in un 3-tier (Data Layer, Business Layer e Presentation Layer) Architettura. Possiamo dire che il Model, View Controller e fanno parte dello strato di presentazione? È la parte del modello del Business Layer?

In breve, come MVC e l'architettura 3-tier possono lavorare insieme? Grazie per l'aiuto!

È stato utile?

Soluzione

considero ASP.Net MVC per essere nel livello di presentazione. Le classi "modello" che usa sono davvero visualizzare i modelli, che descrivono le strutture di dati necessari per le vostre opinioni. Tutti della vostra logica di business e di accesso ai dati dovrebbero rimanere separati dai vostri modelli MVC e controllori.

Inoltre, il generale "Best Practice" per MVC è quello di mantenere il codice di controllo più semplice possibile, che di solito significa introdurre un po 'per il servizio di applicazione nel vostro livello di business che gestisce il sollevamento di carichi pesanti.

Altri suggerimenti

Il livello di presentazione è la sua opinione.

Il livello dei dati è il tuo modello (raccomandare a guardare il Pattern Repository).

I resti business layer di cosa si tratta.

Il controller può chiamare lo strato di business per la funzionalità quando viene caricato l'oggetto, o il modello può chiamare lo strato di business per la funzionalità quando viene richiesta una specifica ViewModel, ma per il resto rimane la stessa.

Il controller non dovrebbe avere la logica di business espansiva in esso - che mettere in proprio self-contained DLL

.

Questo è abbastanza soggettivo. Do ciò che ha senso per la tua squadra.

MVC può essere abbastanza flessibili e quasi nessun framework MVC, in tutte le lingue, fa le cose allo stesso modo. Anche nello spazio .net. FubuMVC, Spring.net, e MS MVC tutti fare le cose in modi leggermente diversi.

Prima di tutto, non c'è bisogno di cambiare per MVC solo perché ... Se hai qualcosa che sta lavorando non penso che è necessario.

Ma a te domanda, il modello nel modello MVC è alcun tipo di classe che rappresenta il problema di business, wich può essere qualsiasi tipo di calcolo, regole di business o classi di accesso ai dati. Nel framework MVC c'è una cartella come un modo per proporre una soluzione per voi, in modo da poter mettere le classi del modello in là, ma non si deve, è possibile creare diversi progetti in modo da risolvere i problemi aziendali e questo è il vostro modello. Così qui, è possibile definire qualsiasi altro picchiettio che per instante, è possibile utilizzare il Pattern Repository e implemente che l'uso di NHibernate o Entity Framework.

Le opinioni sono le pagine web solo per mostrare e ricevere le informazioni da e verso l'utente.

E il controllore è l'ingresso per l'applicazione, le classi che stanno per ricevere le richieste, chiamare i modelli e reindirizzamento necessarie per la vista specificata.

La speranza ho potuto aiutato.

N-Tier con MVC funziona bene. Basta seguire principio solido e molti altri e sarete in grado di mantenere la vostra applicazione loosely coupled e coesa.

Direi che leggono i libri sul MVC 3 e guardare video pluralsight.com sono i vostri più grandi risorse. Non si può andare con "fare ciò che funziona per il team." Se diciamo colleghi di lavoro di nome Johnny e Timmy vogliono mettere un po 'di logica in un controller, solo perché nella fretta scadenza a breve termine che "funziona" per la tua squadra che non lo rende giusto / buon / smart.

ho trovato tanti articoli cattivi su Internet che è spaventoso quante persone stanno ottenendo ha portato lungo una strada buia di miseria. Seguire il percorso felice. Usa StackOverflow per parere come l'arte, ma di controllo con articoli di MSDN, libri MVC, e pluralsight.com

Lo so che è solo un link Wikipedia, ma c'è un po 'di informazioni qui per quanto riguarda n-tier vs architettura MVC.

A "Livello" è un'unità di distribuzione, mentre uno "strato" in MVC è una separazione logica di responsabilità del codice.

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