Date post: | 12-Apr-2017 |
Category: |
Software |
Upload: | taranjeet-singh |
View: | 185 times |
Download: | 0 times |
ASP.NET MVCASP.NET MVC
[M[Model odel VView iew CController (MVC) ontroller (MVC) applications by using the applications by using the
ASP.NET frameworkASP.NET framework]
Taranjeet Singh
www.ptlsolution.com
What is ASP.NET MVC?
Saying simply, ASP.NET MVC is a new framework from Microsoft that sites over standard ASP.NET engine.
ASP.NET
ASP.NET MVC
ASP.NET MVC Features
What new does ASP.NET MVC bring in terms of web architecture?
1. Clear separation of logic: Model, View, Controller
2. Test-Driven Development
3. Full control over HTML and JavaScript
4. Friendly URLs
Model + View + Controller = MVC
ASP.NET MVC provides an alternative to the ASP.NET “Web Forms” pattern for creating MVC-based Web applications.
Model
ControllerView
Model objects implement the logic for the application's data domain. Often, model objects retrieve and store the app state in a database.
Controllers handle user interaction, work with the model, and select a view to render that displays UI
Views display the application's user interface (UI). Typically, this UI is created from the model data.
Request
ControllerController
ControllerController
Model
ControllerController
ViewView
ControllerController
ViewView
Response
ControllerController
ViewView
Full control over HTML & JS
In ASP.NET MVC, designed HTML & JS pages are not more messed up with “postbacks” and “ViewStates”, which is specific for “Web-forms” pattern.
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPaA8FDzhjYjBhZjA0ODYyMTM2NBgGBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUhY3RsMDAkaGVhZGVyJHVjTWFpbk1lbnUkc2VhcmNoQnRuBTdjdGwwMCRNYWluQ29udGVudCRycHRWaWRlbyRjdGwwMyRwcmVzZW50YXRpb25DYXJkJG11bHRp" />
<script type="text/javascript">//<![CDATA[var theForm = document.forms['aspnetForm'];function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); }}//]]></script>
Friendly URLs
MVC binds web paths to the logical URLs rather than to the physical files.
C:\Inetpub\wwwroot\WebSite\Products.aspx
http://www.website.com/Products.aspx?name=Meat
http://www.website.com/Products/Meat
Physical location:
ASP.NET style:
MVC style:
RoutingR => the hidden characterMVC + R
1. Maps incoming URLs to the application and routes them to the right Controller’s Action method to execute them
2. Happens in RegisterRoutes function in the global.asax file
Routing
Don’t settle for…
/ProductsDetails.aspx?CategoryID=123
When you can easily have…
/Product/Details/123/
Or whatever else makes sense…
Routing
To customize routing rules
How does ASP.NET MVC looks like?
ASP.NET MVC installs a new type of web project into VS2013.
How does ASP.NET MVC looks like?
A newly created project has an ASP.NET MVC specific directory structure.
App_Data folder is the physical store for data.
Content folder keeps files such as scripts, CSS, images, and so on.
Controllers folder is the location for controllers. The MVC framework requires the names of all controllers to end with "Controller"—for example, HomeController, LoginController, or ProductController.
Models stores classes that handle application business logic.
Scripts folder is for script files that support the application. By default, this folder contains AJAX script files and the JQuery library.
Views is the recommended location for views. Views use .aspx, .ascx, and .master files, in addition to any other files that are related to rendering views.
Logic UI
Test-Driven Development
Since the UI is completely separated from the business logic, it’s now easy to write Unit Tests for the ASP.NET MVC application.
Controller
Unit Tests that cover User Actions and Data Model
User Interface Data Objects
Conclusion
ASP.NET MVC supports pure MVC pattern, the same development pattern Rails are based on. The advantages of ASP.NET MVC applications:
1. It makes it easier to manage complexity by dividing an application into the model, the view, and the controller.
2. It does not use view state or server-based forms. 3. It uses a Front Controller pattern that processes Web application
requests through a single controller. This enables you to design an application that supports a rich routing infrastructure with friendly URLs.
4. It provides better support for test-driven development (TDD).5. It works well for Web applications that are supported by large teams of
developers and Web designers who need a high degree of control over the application behavior.
Web Links to Additional Resources
• http://www.asp.net/mvc - official site
• http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx - development basics on ASP.NET MVC
• http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx - URL routing used in ASP.NET MVC
• http://weblogs.asp.net/scottgu/archive/2007/12/06/asp-net-mvc-framework-part-3-passing-viewdata-from-controllers-to-views.aspx - interaction between Controllers and Views
• http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx - managing form input data