Publishing by the moonlight.
A software development blog by Ben Szymanski.
Categories

Latest Post - WebForms vs MVC

A few months ago, I got a text message from a friend mulling over whether to proceed with working on and learning ASP.NET WebForms, or to go straight to ASP.NET MVC. I wrote my response out in the Notes app, copy/pasted and sent.

After flipping through old notes and clearing them out, I found it and was actually found what I wrote kind of delightful, so I'm posting it here as well.

A few months ago, I got a text message from a friend mulling over whether to proceed with working on and learning ASP.NET WebForms, or to go straight to ASP.NET MVC. I wrote my response out in the Notes app, copy/pasted and sent.

After flipping through old notes and clearing them out, I found it and was actually found what I wrote kind of delightful, so I'm posting it here as well.

ASP.NET WebForms vs ASP.NET MVC

-- Design Philosophy --

WebForms: "Lets bend the web using our will to make it work like WinForms! We are strong, web standards weak!"

MVC: "Rails is cool. Let's do that, but on .NET!"

-- Architecture --

WebForms: Component/Controls and Widgets! N-Tier for data access, business logic...

MVC: Models, Views, view models and Controllers. You can N-Tier if you wanna.

-- Future Prospects --

WebForms: Framework is still being maintained. Will stick around in system .NET, but no support in .NET Core.

MVC: Framework is evolving; MVC and WebAPI are now one/together and being ported to .NET core.

-- Job Prospects --

WebForms: Jobs that work on legacy applications and systems.

MVC: Jobs that work on modern and/or new builds.

-- Developer Enjoyment Rating --

WebForms: 4.5/10

MVC: 8/10

-- Development/Build Cycle --

WebForms: Basically recompile on every freaking change.

MVC: Less recompile's thanks to @razor view engine.

The Bottom Line: I'd choose MVC over WebForms almost every time, simply for the fact that WebForms isn't going to be supported in .NET Core. And MS has been making a BIG push on making .NET core relevant and very, very performant.