Found a good article on comparing the main aspects of two modern ASP.NET development approaches.
This translation is not verbatim, but somewhat adapted, but it fully conveys the meaning. I hope that someone who is planning to use ASP.NET for his project will find this information useful. This particular post was taken because the author takes a fairly unbiased view of both technologies without getting hung up on the advantages of one of them. For comparison, the author offers such a marketer’s tool as SWOT analysis.
While many are beginning to use ASP.NET in their projects, and Microsoft is releasing new frameworks, the question of which model to use – the "classic ASP.NET" (called WebForms), that is, using the model offered by the default or the newly minted ASP.NET MVC. Also, many feel that Microsoft is confusing by saying that they will fully support and develop both models. And since every project can be done with both WebForms and MVC, the question often arises – "which is better for my project?" One good way to answer that question is to do a SWOT analysis of both approaches.
SWOT analysis of ASP.NET MVC
- Offers full control over the generated HTML code;
- Generates clean HTML code;
- Better separation between UI and code (application logic and presentation logic);
- Easier for unit testing;
- Supports many different view engines (View Engines);
- By default uses the REST approach for URLs – also good for SEO;
- No ViewState (this can also be a drawback in certain cases);
- The normal size of the page to be loaded is small;
- Easy integration with frameworks like JQuery.
- Not based on (server) events, so it might be a bit hard to learn for those who think in terms of ASP.NET WebForms model;
- The number of third-party control libraries and components is small;
- No ViewState (also an advantage).
- Enables the Test Driven Development(TDD) approach – the framework is built largely with an emphasis on TDD, so with MVC it’s much easier to write unit tests, create mock objects and intercept the execution of the application, controlling it at all stages;
- Allows the application model to be reused with other UI interfaces and applications.
- Requires more time to start being productive with it and more time for newcomers to web development to master.
SWOT analysis of ASP.NET WebForms
- Provides excellent capabilities for RAD (Rapid Application Development);
- Excellent "designer" support in Visual Studio;
- Easy to develop business applications that work with large amounts of data and are data-heavy;
- A huge number of third-party companies that provide ready-made control libraries and also provide support for projects on WebForms;
- Familiar to Windows Forms developers with the concept of events (server events for UI), which allows you to quickly get started with this approach.
- The UI logic is closely related to the code and thus difficult to separate;
- Difficult to do unit testing, thus difficult to use TDD approach;
- Large (and often just huge) page size due to ViewState.
- Great for quickly prototyping business applications. It works great when you need to agree on a preliminary concept with a potential client.
- It’s hard to apply different UIs to the same application, even though there are enough frameworks and technologies available (Master pages, themes, etc.).
Based on all of these arguments, one can imagine the decision-making process in favor of one approach or another as follows :
Summarizing this diagram, there are two key conclusions that determine the choice of approach :
- Test Driven Development (Test Driven Development – life will be MUCH easier if you use MVC with TDD practices.
- Data Driven Application – Life will be MUCH easier if you use WebForms while the application is working with a huge variety of data.
Of course, there is no clear "yes" or "no" here and each particular application can be written in either one or the other way. In fact, you can even use a mixed approach, writing part of the application using WebForms and part using MVC (theoretically).
What do you think?
And just as for the author’s question about how we think, I suggest that you speak up in the comments. At the same time, I suggest expanding the SWOT analysis items on both approaches.