Struttura corretta di un progetto esistente nell'architettura MVC

0

Sto prendendo in prestito un progetto classico di legacy fino ad una tecnologia più moderna (ho lavorato con ASP.NET MVC ultimamente, quindi l'utilizzo di questo concetto è bloccato nella mia mente), ma sto cercando di pensare a come strutturare il progetto.

L'idea è che l'azienda fornisca un servizio ai clienti, ma il servizio è ospitato sul sito Web della società (anziché sul client) e presenta alcuni marchi / specifiche per il cliente. Diciamo che ci sono 4 o 5 pagine / passaggi per il servizio, ma alcune di queste pagine / passaggi possono essere personalizzate per ogni cliente. Quindi, quello che preferirei è:

*/step1

*/step2

*/step3

*/step4

*/step5

Dove * è il nome client ma i passaggi sono riutilizzabili. Questo non sembra prestarsi alla struttura MVC standard, o non riesco a vedere la foresta per gli alberi. Non vorrei un controller per ogni client e ripetere i passaggi per n client. Preferirei avere 5 passaggi in cui step2 o step3 potrebbero essere espansi per il client X, espanso su più per il client Y e lasciato solo per il client Z.

Se la società ha 100 client che desiderano i 5 passi standard (nessuna personalizzazione), non vorrai che 100 controllori servano fino a 5 passi (500 .cshtml di pagine nel progetto) ... giusto? Come si potrebbe progettarlo correttamente?

    
posta ethorn10 03.10.2013 - 15:08
fonte

1 risposta

1

Il modo in cui affronterei questo problema è usare ControllerFactory per creare il controller appropriato basato sia sul passaggio che sul client e trasferire l'ulteriore elaborazione a quel controller.

La gerarchia del controller sarà simile a questa:

BaseController
|
+-- Step1Controller
|
+-- Step2Controller
|   |
|   +-- Step2ClientXController
|   +-- Step2ClientYController
|
+-- Step3Controller
|   |
|   +-- Step3ClientXController
|   +-- Step3ClientZController
|
+-- Step4Controller
|
+-- Step5Controller
    
risposta data 03.10.2013 - 16:00
fonte

Leggi altre domande sui tag