Dove dovrebbero essere posizionati i modelli di vista all'interno del progetto Web di applicazione a più livelli?

1

Supponiamo di avere un'applicazione Web ASP.NET MVC con i seguenti livelli:

  • Logica aziendale
  • Entità (dominio aziendale e database POCO)
  • Comune (risorse, risorse)
  • Accesso ai dati (query EF database, modelli EF EDMX e così via)
  • Applicazione Web (applicazione Web MVC)

Utilizziamo l'approccio dei modelli di vista. Attualmente i modelli di vista sono posizionati nel livello Entità. Le query di accesso ai dati restituiscono i modelli di visualizzazione (a causa di problemi di efficienza, quindi evitiamo di utilizzare il mapper).

Il livello Web fa riferimento a tutti gli altri livelli. Riferimenti di accesso ai dati Livelli comuni e di entità. Riferimenti di logica aziendale Entità e livelli comuni, in futuro anche Livello di accesso ai dati.

C'è un'idea per spostare i modelli di visualizzazione sul livello Web. Perché? Perché sono infatti legati a una particolare tecnologia (MVC) e all'implementazione dell'interfaccia utente. Ma stiamo affrontando un problema qui, perché in questo scenario il livello di accesso ai dati deve fare riferimento ai riferimenti Web e Web. Accesso ai dati, quindi abbiamo un problema di dipendenza circolare.

Inoltre abbiamo uno scenario in cui alcune convalide del modello di vista richiedono un riferimento al livello di accesso ai dati. Manterremo il metodo di convalida all'interno dei modelli di visualizzazione. Attualmente vogliamo implementarlo iniettando la classe di contesto del database (che si trova nel livello di accesso ai dati) per visualizzare il modello per costruttore.

Hai idea di come possiamo evitarlo? È una buona idea mantenere i modelli di visualizzazione all'interno del nostro livello Web?

    
posta Landeeyo 03.04.2015 - 13:41
fonte

1 risposta

1

Continuo a visualizzare i modelli nel progetto web, per la ragione che hai affermato, di solito è utile solo per la vista pertinente.

Non sono sicuro del motivo per cui il livello di accesso ai dati farà riferimento al progetto Web?

    
risposta data 03.04.2015 - 14:33
fonte

Leggi altre domande sui tag