Abbiamo un programma personalizzato che genera tutti i proc e le classi memorizzati per il livello dati. Dove metterò le classi generate?

2

Questa è più una questione architettonica riguardante MVC e accesso ai dati:

Abbiamo un programma personalizzato che genera tutti i proc e le classi memorizzati per il livello dati dal database MS SQL. È piuttosto carino perché genera una classe base con le operazioni CRUD di base che include le letture di ForeignKey. Genera anche la versione plurale della classe per restituire le raccolte di oggetti.

Per la prossima fase della nostra applicazione stiamo pianificando di utilizzare MVC, ma speravamo di continuare a utilizzare questo ottimo strumento. Dove inserirò le classi generate nella mia nuova applicazione MVC? Ho visto persone creare una cartella Infrastruttura per la loro logica di accesso ai dati.

È una buona idea continuare a utilizzare questo strumento o dovremmo essere convertiti in Entity Framework?

Inoltre, se il DAL restituisce oggetti e liste di oggetti cosa inserirò nel mio livello Modello?

    
posta user3012037 02.12.2013 - 23:28
fonte

2 risposte

0

Vive nella parte del modello di MVC.

dove mettete fisicamente quelle classi generate? Non importa molto per quanto riguarda MVC. Tuttavia ha senso raggruppare le cose in luoghi logici. Ma MVC saggio, potresti avere un'intera applicazione MVC in 1 file.

    
risposta data 02.12.2013 - 23:36
fonte
0

Lo strumento che stai utilizzando genera entità. Entity è un modello di dominio che viene mantenuto. Abbiamo uno strumento simile e risiede nel progetto del framework di entità in quanto utilizza modelli T4. Deve essere parte del progetto del framework di entità perché richiede che EDMX esegua i modelli T4.

Una volta che lo strumento genera entità, le copiamo nel progetto del livello dominio. Non metterei mai le entità nello strato DAL - non ha senso in un design basato sul dominio. Il modo in cui si collegano le cose dipende interamente da te. Se le tue entità sono accoppiate al framework di accesso ai dati (come LINQ-to-SQL nei vecchi giorni), allora hai un problema poiché all'improvviso la logica di accesso ai dati sta perdendo nel tuo dominio.

Una volta che lo strumento genera stored procedure, tabelle e componenti di supporto, li spostiamo nel progetto ADO. Siamo felici di farlo manualmente. Quando sarà necessario, potremmo automatizzarlo.

Per quanto riguarda la tua applicazione MVC, i modelli di dominio e in particolare le entità non devono essere trapelate nel livello di presentazione. MVC dovrebbe funzionare con i modelli di visualizzazione. In alcuni casi il tuo modello di vista sarà una copia identica di un modello di dominio, ma non lasciarti ingannare, potrebbe non essere sempre così.

Normalmente interrogheresti i dati tramite ADO o framework di entità. Dovresti quindi prendere il risultato e passarlo al tuo livello di presentazione. Quando lo fai, potresti voler convertire i risultati in DTO o passare direttamente al modello di dominio (normalmente evito la seconda opzione). Quindi nel livello di presentazione si prende il DTO o il modello di dominio e lo si converte nel modello di vista. Infine, M in MVC normalmente indica il modello di vista, al contrario del modello di dominio.

    
risposta data 03.12.2013 - 10:50
fonte

Leggi altre domande sui tag