Note that there are some explanatory texts on larger screens.

plurals
  1. POThe Model-Repository-Service-Validator-View-ViewModel-Controller design pattern (?)
    primarykey
    data
    text
    <p>When I first heard about ASP.NET MVC, I was thinking that would mean applications with three parts: model, view, and controller.</p> <p>Then I read <a href="http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf" rel="noreferrer">NerdDinner</a> and learned the ways of repositories and view-models. Next, I read <a href="http://www.asp.net/learn/mvc/tutorial-38-cs.aspx" rel="noreferrer">this tutorial</a> and soon became sold on the virtues of a service layer. Finally, I read the <a href="http://fluentvalidation.codeplex.com/wikipage?title=CreatingAValidator&amp;referringTitle=Documentation" rel="noreferrer">Fluent Validation documentation</a>, and I'll be darned if I didn't end up writing a bunch of validators.</p> <p>Tonight, I took a step back and thought about what had become of my project. It seems to have become the victim of the design pattern equivalent of "feature creep". Somehow I'd gone from Model-View-Controller to Model-Repository-Service-Validator-View-ViewModel-Controller. You want loosely coupled and DRY? We got your loosely coupled and DRY right here! But I'm wondering if this could be a case of too much of a good thing.</p> <p>Am I right to be concerned? Or is this actually not as crazy as it sounds? On one hand, it seems crazy to have so many layers. On the other hand, every layer has a clearly defined purpose that makes sense to me. Have your MVC applications turned into MRSVVVMC apps too? If not, what do they look like? Where's that right balance?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload