Table of Contents
I have been a great fan of ASP.NET Webform development but for the past 2 years, ASP.NET MVC is the talk of the town. If you are new to MVC, start here and if you want to learn MVC super-fast, start here.
Note: If ASP.NET MVC and ASP.NET WebForm vocabulary is confusing, please read this before moving ahead:
When I started ASP.NET MVC development, it took a lot of time as an ASP.NET webform developer to get adjusted to and acquainted with ASP.NET MVC development thought. This article walks you through some important mindset changes you need to make when working with ASP.NET MVC.
The whole thought of MVC is to get rid of behind code. Because behind code is not reusable, not testable, so when you add a view / UI in MVC, you will find no behind code. You will find “.ASPX” but there is no “ASPX.CS”. You will find CSHTML but there is no CSHTML.CS.
Now the time we say “No Behind code”, this has a cascading effect. The remaining points are the after effects of “No code behind” concept.
ASP.NET webform Server controls was always a life savior. It was like magic where you drag and drop and you are done. Now because we do not have any behind code, server controls will not be seen in your tool box. You have to use HTML to create your MVC UI. The maximum support officially you have currently is HTML Helper classes. You can read about it from here.
You can use server controls on an ASPX view but it’s not advisable as it will generate inline code behind again defeating the purpose of MVC.
Because we do not have behind code, there is no such thing as page life cycle in ASP.NET MVC. In ASP.NET Webform, the first hit comes to the Page and then rest of the things happen. ASP.NET Webform is UI first approach while MVC is class first approach.
In MVC, the first hit comes to the controller class and then to the UI. So all the logic of page life cycle goes in the controller. So no more discussion on page life cycle and which event what code needs to be written.
There are no automated generated hidden fields like
viewstate. We have a more robust and finetuned way of session management viewdata, tempdata, viewbag and session variables. You can read more about them by clicking here.
Want to Learn MVC in 2 days, start from this video.