S.NoHTML ControlsASP.NET Standard Controls1All HTML Controls run at Client sideAll ASP.NET Controls run at Server side 2Can be made to run at Server side by adding runat=”server” attributeCan’t be made to run at Client side rather equivalent HTML code is generated on Rendering 3Rendering is NOT RequiredRendering is Required 4Execution is FASTExecution is SLOW 5Don’t contain any class for the ControlsContains Separate class for each Controls 6Don’t support Object Oriented Programming featuresSupports Object Oriented Programming Features 7Don’t provide STATE MANAGEMENTProvides STATE MANAGEMENT
S.NoResponse.RedirectServer.Transfer1Used to redirect to any webpage in any websiteUsed to redirect to any webpage in current website only 2Can be used to pass the required values from Source Page to Target Page while redirectingCan’t be used to pass the required values from Source Page to Target Page while redirecting 3Execution is SlowExecution is Fast 4Target page address appears within the address barTarget page address doesn’t appears within the address bar 5Refreshing of the page doesn’t cause any errorRefreshing of the page causes error
S.NoASP.NETASP.NET MVC1You need .NET framework to install ASP.NET.You need .NET framework & ASP.NET to Install MVC. 2Supports Code behind page coding & Inline codingSupports both Code behind page coding & Inline coding but, we should not use code behind as a practice because view should not perform any logic. 3Pages are called PagesPages are called Views 4There is a Life cycle for every page.There is tailored lifecycle of the page. By default you won't see the events when you create the Views but, you can add the Page Load event by in a script server tag. Again its not a good practice 5We use Viewstate concept extensivelyThere is no Viewstate for view. There is no state of the controls. But state of the entire page can be maintained by a feature ModelBinders 6Every Page is inherited from System.Web.UI.ViewPageEvery Page is inherited from System.Web.Mvc.ViewPage. View page is inherited from System.Web.UI.Page. 7You don't have the strongly typed pagesYou can create the Strongly typed Views using generics. It means, you can pass the object (Model) to the view page from the controller. 8Has lot of inbuilt Controls that support RAD.We cannot use the ASP.NET controls because they don't support the ViewState and Postback.
We have inbuilt methods called HTML Helper methods. These methods just create the required HTML in the response stream. You can create the user controls.
9Has the limited control over the HTML being generated by various controls.Since we have no controls and are writing HTML we have control over the markup. 10Logic is not completely modularized in pages.Logic is modularized in methods called Action methods of the controller. 11Difficult to test the UI Logic using unit tests.MVC is designed to unit test every part of the application. It strongly supports the TDD approach. 12Doesn't support clean or search engine friendly URL's . ASP.NET 4 has the routing module or else
we need to use URL rewrites.Support clean or search engine friendly URL's
You can design to support the REST based resources in application
13Code behind supports only one aspect of separation of concerns.Web request finally will reach the controller. Requests never reach Views. Web user cannot identify a specific view on the server. 14Web requests are reached directly to the intended page. Web users can identify the pages on the server.Web request finally will reach the controller. Requests never reach Views. Web user cannot identify a specific view on the server. 15If you rename the web pages the URL is changedYou don't need to change the URL, even if you change the Controller and the View. 16URLS are determined by the folder structure of the pagesYou have to define the URL formats which are called Routes. Framework will try to match the URL with all the defined routes in an order.
Framework will hand over the request to the corresponding route Handler.
17Query string are used as small inputs to the pagesURLS formats drive the inputs to the requests. You can also have querystrings 18Related Pages are separated by folderRelated Views are written under controller. And for each controller we need to create a folder for all its views. 19We have ASP.NET AJAX Framework and AJAX server side controls to support AJAX page developmentMVC has some AJAX features but internally it uses the ASP.NET AJAX script libraries. So we have to manually include the libraries in the project. No support of AJAX Server side controls. 20File extensions in IIS are mapped to ASP.NET isapi dll and in web.config they are mapped to corresponding file HTTPHandlers.There are no file extensions for MVC. If deployed in IIS7 Internally it will use the MVC UrlRoutingModule to route the request to the MVC framework. 21All the Page requests are handled by PageFactory Handler.Each Route has the option to use a default Route handler or custom handler. So all the page requests are handled by Route handles. 22It's difficult to modify the internal behavior of the core ASP.NET components.It's designed to modify or replace the internal components. It supports the Plug-in structure
Example: - ASPX Pages are used to render the HTML. You can configure to not to use ASP.NET pages and use different view engines.
There are many view engines available in market or you can create your own view engine.