News:
  • ScottDatabases.com new website release Read more
  • ScottDatabases.com Project Manager coming soon read more

ASP.NET Applications

ASP.NET Web Forms and ASP.NET MVC are web frameworks developed by Microsoft - they are both good choices but each has some unique benefits. Neither of the web frameworks are to be replaced by the other nor are there plans to have them 'merged' into a single framework. It is our recommendation that you let the development team determine which is best based on the project definition you provide. Generally ASP.NET Web forms is less complicated to develop and is subsequently less costly to develop and is typically the default choice until project planning determines that there is ample merits for selecting the ASP.NET MVC method for your development project.

Each of these web frameworks offers advantages/disadvantages - some of which need to be considered when developing a web application. A web application can be developed using either technology - it might make development for a particular application easier selecting one technology versus the other and vice versa. In our experience it is best to choose web forms unless you can define a specific reason to use MVC as the cost and time required to initially develop and QA in MVC is more.

ASP.NET Web Forms:
  • Development supports state • Gives the illusion that a web application is aware of what the user has been doing, similar to Windows applications. I.e. Makes 'wizard' functionality a little bit easier to implement.

  • Rapid Application Development (RAD)

  • Larger control toolbox • ASP.NET Web Forms offers a much greater and more robust toolbox (web controls) whereas MVC offers a more primitive control set relying more on rich client-side controls via jQuery (JavaScript).

  • Mature • It's been around since 2002 and there is an abundance of information with regards to questions, problems, etc. Offers more third-party control - need to consider your existing toolkits.

ASP.NET MVC:
  • More complex front end The MVC model is more front end (Client side) reliant making testing and the ever changing browser versions adding planning and support.

  • Separation of concerns (SoC) • From a technical standpoint, the organization of code within MVC is very clean, organized and granular, making it easier (hopefully) for a web application to scale in terms of functionality. Promotes great design from a development standpoint.

  • Easier integration with client side tools (rich user interface tools) • More than ever, web applications are increasingly becoming as rich as the applications you see on your desktops. With MVC, it gives you the ability to integrate with such toolkits (such as jQuery) with greater ease and more seamless than in Web Forms.

  • Search Engine Optimization (SEO) Friendly / Stateless • URL's are more friendly to search engines (i.e. mywebapplication.com/users/ 1 - retrieve user with an ID of 1 vs mywebapplication/users/getuser.aspx (id passed in session)). Similarly, since MVC is stateless, this removes the headache of users who spawn multiple web browsers from the same window (session collisions). Along those same lines, MVC adheres to the stateless web protocol rather than 'battling' against it.

  • Works well with developers who need high degree of control • Many controls in ASP.NET web forms automatically generate much of the raw HTML you see when an page is rendered. This can cause headaches for developers. With MVC, it lends itself better towards having complete control with what is rendered and there are no surprises. Even more important, is that the HTML forms typically are much smaller than the Web forms which can equate to a performance boost - something to seriously consider.

  • Test Driven Development (TDD) • With MVC, you can more easily create tests for the web side of things. An additional layer of testing will provide yet another layer of defense against unexpected behavior.

  • Authentication, authorization, configuration, compilation and deployment are all features that are shared between the two web frameworks.