MVC e uso della classe parziale per Controller

1

Ho una pagina web e il frontend contiene pagine per la parte Cliente, Prodotto e Ordine e altre parti possono essere aggiunte.

L'implementazione effettiva è che ogni parte (modul) ha il proprio Controller e ogni parte (modul) ha circa 8 pagine.

  • CustomerController
  • ProductController
  • OrderController
  • Altre parti

Ogni pagina ha i suoi metodi nella relativa classe parziale. Ciò significa che la classe Controller è divisa in 8 file, ad esempio.

Dal punto di vista della manutenzione eliminiamo i "grassi controller" ma non sono ancora sicuro di questa pratica.

Il codice di esempio:

// Customer Index page
    public partial class CustomerController : Controller
    {
        Database database = new Database();

        [HttpGet]
        public ActionResult Index() {...}

        [HttpPost]
        public ActionResult Index(CustomerModel model) {...}

        [HttpPost]
        public ActionResult Search(CustomerModel model) {...}

    }

// Customer AddOrUpdate page 
    public partial class CustomerController
    {   
        [HttpPost]
        public ActionResult AddOrUpdateCustomer(CustomerModel model) {...}
    }

// Customer Hierarchy page
    public partial class CustomerController
    {

        [HttpGet]
        public ActionResult Hierarchy(){...}

        [HttpPost]
        public ActionResult Hierarchy(HierarchyModel model){...}

        public ActionResult ApiGetHierarchyItem(int Id){ ... }

    }

la domanda è se la modalità di prevenzione del consumo di grassi da parte delle classi parziali è una buona pratica.

    
posta Muflix 01.08.2016 - 10:44
fonte

1 risposta

0

Se stai partendo da zero dovresti avere un controller per ogni pagina e non gonfiare un singolo controller. Mentre Parziale può sembrare un'idea "buona", è ancora una singola classe gigante con molteplici responsabilità. L'aggiunta di controller aggiuntivi è molto semplice e ridurrà la complessità complessiva del progetto.

Se si eredita una soluzione in cui un controller è stato utilizzato per molte pagine e si vuole provare a iniziare a correggere i problemi, allora, come primo passo iniziale del refactoring, rompere il mostro in diversi file con classi parziali è un piano sonoro. Dopo aver infranto la gigantesca classe in file che hanno una singola responsabilità, puoi cambiare quel file in modo che sia una classe a sé stante con una sola responsabilità mentre paghi il debito tecnico.

    
risposta data 01.08.2016 - 18:56
fonte

Leggi altre domande sui tag