Come adattare i requisiti in MVC

-1

Supponiamo di avere un requisito del sito Web per consentire la funzionalità Utente. Semplice!

Creiamo UserModel, UserController e UserView. Funziona perfettamente.

Tuttavia, supponiamo che l'utente abbia una tabella relazionale many-to-one ad essa associata denominata Child che ha anche le proprie componenti MVC: ChildModel, ChildController, ChildView. Ora, se avessimo l'obbligo di creare un file CSV per il download contenente alcuni dettagli da User e alcuni dettagli dal suo Child , come dovremmo progettare questo requisito?

"DownloadCSV" potrebbe essenzialmente avere i propri metodi CRUD, il proprio Controller, la propria Vista ma il suo Modello si basa sui dettagli di altre tabelle, quindi dovrebbe avere il proprio Controller, Visualizza, Modello (/ Vista DB) o dovrebbe essere solo un altro metodo oltre a CRUD in User o Child controller?

    
posta ThreaT 22.01.2014 - 16:00
fonte

2 risposte

0

In termini di un'applicazione web (non sono sicuro che sia così, ma il concetto è lo stesso, credo) Su ChildController c'è tipicamente un metodo "indice" che viene usato per rendere una pagina che elenca tutti i bambini.

Considero questa funzionalità "DownloadCSV" molto simile a questa, tranne che il server sta inviando un file CSV come risposta HTTP piuttosto che una pagina HTML. Pertanto, mi sembra che questo sia appropriato come un altro metodo di ChildController.

    
risposta data 22.01.2014 - 16:09
fonte
0

Forse non dovresti provare a forzarlo per adattarlo a MVC. Molte volte, le attività di reporting e di dump dei dati non si adattano al framework utilizzato per creare applicazioni interattive che creano e manipolano i dati. E questa non è una brutta cosa È possibile che sia possibile generare questo download di dati utilizzando una classe / attività separata che potrebbe utilizzare internamente le stesse stored procedure per coerenza, ma è guidata dalle esigenze di reporting che sono diverse dalle esigenze di presentazione / controllo dei dati nell'applicazione .

    
risposta data 22.01.2014 - 19:15
fonte

Leggi altre domande sui tag