This document summarizes a lecture on ASP.NET MVC 3.0. It discusses the MVC pattern and architecture, including the model, view and controller components. It covers routing, controllers, views and how they interact in ASP.NET MVC. Examples of routing configurations and controller inputs/outputs are provided. The roles of partial views and view models are explained. Students are assigned a project to build a basic MVC application with models, views, controllers and unit tests.
3. Presentation Layer
 It’s what users see
 Handling complicated page flows
 Two components of the presentation layer
 User Interface - What you see & interacting with
 Presentation Model/Logic - Data flow between the
business logic and presentation layer
7. MVC - Pro and Con
 Pro
 Decoupling – GUI/CSS developers do their
job, C# developers code the Controller, model
and tests
 You can test the logical flow by a test program to
talk to the Controller directly
 Con
 Viewhas intimate knowledge of the Model (when
page refresh)
8. ASP.NET
 Uses .NET Framework
 Compiled
 Multi-language (C#, VB, C++, etc)
 Host under CLR
 Code execution (i.e. Garbage collection)
 Object-oriented
 AJAX development
9. ASP.NET - Page Class Functions
 Request - Handle request from user
 Request.QueryString.Get("pid");
 Request.Form.Get("first_name");
 HttpCookie myCookie = Request.Cookies["user_id"];
 Response - Handle response to user
 Response.Redirect("newpage.aspx");
 Response.Cookies.Add(myHttpCookie);
 Server - URL encode/decode
 Server.URLEncode(url1);
 Application - Application variables (name/value pair)
 Application["imageDir"] = "image.myserver.com";
 <img src="<%= Application["imageDir"]%>/images/1.gif">
 Session - Storage per user. It Expires/times out
 Session["first_name"] = "John";
10. ASP.NET MVC
 Powerful Routing System
 Good for search engine
 Friendly URL (copy & paste)
 Builds on ASP.NET platform
 object oriented
 multiple languages
 Easy to develop (debugging)
 Easy to deploy (going live, updates)
13. MVC Web - Directories
Directory Purpose
/Controllers Where you put Controller classes that handle URL requests
/Models Where you put classes that represent and manipulate data
/Views Where you put UI template files that are responsible for rendering output
/Scripts Where you put JavaScript library files and scripts (.js)
/Content Where you put CSS and image files, and other non-dynamic/non-JavaScript
content
/App_Data Where you store data files you want to read/write.
Site master files
(header, footer, leftnav, etc)
21. MVC Web - controller input 1
Request.QueryString NameValueCollection GET variables sent with this request
Request.Form NameValueCollection POST variables sent with this request
Request.Cookies HttpCookieCollection Cookies sent by the browser with this
request
Request.HttpMethod string The HTTP method (verb, e.g., GET or POST)
used for this request
Request.Headers NameValueCollection The full set of HTTP headers sent with this
request
Request.Url Uri The URL requested
Request.UserHostAddress string The IP address of the user making this
request
RouteData.Route RouteBase The chosen RouteTable.Routes entry for this
request
RouteData.Values RouteValueDictionary Active route parameters (either extracted
from the URL, or default values)
HttpContext.Application HttpApplicationStateBase Application state store
HttpContext.Cache Cache Application cache store
HttpContext.Items IDictionary State store for the current request
HttpContext.Session HttpSessionStateBase State store for the visitor’s session
User IPrincipal Authentication information about the
logged-in user
TempData TempDataDictionary Temporary data items stored for the current
user (more about this later)
34. MVC Web - View 8
 Partial Views
A Web Forms user control (i.e., an ASCX file)
 Compiled as a class that inherits from
ViewUserControl (which in turn inherits from
UserControl, the base class for all Web Forms
user controls)
36. Demo
 Service Layer code
 MVC tutorial
 MVC 136 solution – debugged mode
 Model (including service call)
 View (including ascx)
 Site.Master
 Controller
 Unit Test
37. Review question
 What are the 5 page class functions?
 Does the routing order matter?
 Where is the controller receiving its input value from?
 When do you use ViewData[“”]?
 What is the keyword to access the view model?
38. Your assignment
 Due next Thursday
 GUI Implementation using ASP.NET MVC 3.0
 Model, view, controller
 MVC Tests
 Write DTO between SL and PL in Presentation
Layer
 Must implement one user control (ascx) of
some kind (see 136 sample mvc3 project)
 Use simple CSS if possible
39. References
 .NET : Architecting Applications for the
Enterprise
 MVC 3.0