MVC is just a general design pattern, which in the context of developing poor web applications allows the developer to save HTML markup at the application presentation level (presentation) separately from the methods that receive and process client requests (controllers) and data representations that are returned in the view (models). All this concerns the separation of problems, that is, the preservation of code that serves one functional purpose (for example, processing client requests) sequestered from code that performs a completely different functional purpose (for example, data presentation).
The same principle, why someone who spent more than 5 minutes creating a website can appreciate the need to keep your HTML, JavaScript, and CSS markup in separate files: if you just dump all your code into one file, you end up with spaghetti, which will subsequently be unavailable for editing.
Since you asked about possible "minuses": I do not trust the design of software architecture, but based on my experience in MVC development, I think it is also important to note that after strict -frills the MVC design template is most useful for 1 ) lightweight web applications; or 2) as the user interface layer of a larger enterprise application. I am surprised that this specification did not talk about more, because MVC does not contain explicit definitions for your business logic, domain models or really nothing at the data access level of your application. When I started developing in ASP.NET MVC (i.e., before I knew that other software architectures existed, even existed), I get very bloated controllers or even presentation models full of business logic, which if if I were working on enterprise applications, it makes it difficult for other developers who are not familiar with my code to change (i.e. more spaghetti).
Kanapolis Sep 18 '15 at 3:18 2015-09-18 03:18
source share