220 likes | 379 Views
National University of Computer and Emerging Sciences . Lecture # 5 Microsoft MVC3 Architecture for ASP.NET. CS 415 N-Tier Application Development . By Umair Ashraf June 28 ,2013. Agenda/Contents for Today’s Lecture. Design Patterns Review Class Activity
E N D
National University of Computer and Emerging Sciences Lecture # 5 Microsoft MVC3 Architecture for ASP.NET CS 415 N-Tier Application Development By Umair Ashraf June 28 ,2013
Agenda/Contents for Today’s Lecture • Design Patterns Review • Class Activity • Introduction to Microsoft MVC framework • History • Advantages • Practical Demonstration • Quiz Announcement
Introduction to MVC framework ASP.NET MVC is a framework for building web applications that applies the general Model View Controller pattern to the ASP.NET framework.
Components of ASP.NET MVC • Models These are the classes that represent the domain you are interested in. With ASP.NET MVC, this is most likely a Data Access Layer of some kind using a tool like Entity Framework or NHibernate combined with custom code containing domain-specific logic • View This is a template to dynamically generate HTML • Controller This is a special class that manages the relationship between the View and Model.
History • ASP.NET MVC1 Feb 2007 by Scott Guthrie Presented in a conference on the East Coast of the United States. • ASP.NET MVC2 March 2010 More Features like UIHelpers, Attribute validations etc • ASP.NET MVC3 January 2011 New Razor View Engine,Rich Javascript support etc. • ASP.NET MVC4 October 2012 • Mobile development support , enhancements etc
Controllers • Controllers within the MVC pattern are responsible for responding to user input, often making changes to the model in response to user input. In this way, controllers in the MVC pattern are concerned with the flow of the application, working with data coming in, and providing data going out to the relevant view.
Home Controller Class using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MvcMusicStore.Controllers { Public class HomeController : Controller { public ActionResult Index() { ViewBag.Message = “I like cake!”; return View(); } public ActionResult About() { return View(); } } }
Action Methods • public class StoreController : Controller • { • // • // GET: /Store/ • public string Index() • { • return “Hello from Store.Index()”; • } • // • // GET: /Store/Browse • public string Browse() • { • return “Hello from Store.Browse()”; • } • // • // GET: /Store/Details • public string Details() • { • return “Hello from Store.Details()”; • } • } • }
Parameters in Controller Actions • // • // GET: /Store/Browse?genre=?Disco • public string Browse(string genre) • { • string message = • HttpUtility.HtmlEncode(“Store.Browse, Genre = “ + genre); • return message; • }
Razor View Engine • Razor is the first major update to rendering HTML since ASP.NET 1.0 shipped almost a decade ago. The default view engine used in MVC 1 and 2 was commonly called the Web Forms View Engine, because it uses the same ASPX/ASCX/MASTER files and syntax used in Web Forms
What is Razor? • Razor is the response to one of the most requested suggestions received by the ASP.NET MVC feature team — to provide a clean, lightweight simple view engine that didn’t contain the “syntactic cruft” contained in the existing Web Forms View Engine. • Many developers felt that all that syntactic noise required to write a view created friction when trying to read that view.
View Example • @{ • Layout = null; • } • <!DOCTYPE html> • <html> • <head><title>Sample View</title></head> • <body> • <h1>@ViewBag.Message</h1> • <p> • This is a sample view. It’s not much to look at, • but it gets the job done. • </p> • </body> • </html>
Announcements Quiz 1 (Design Patterns) Tomorrow Saturday 29th July 2013 in class Assignment 1 Due Saturday 29th July 2013 in class
Reference Material Text Book :Professional ASP.NET MVC3 By WROX (EBook uploaded on website ) Other References : http://www.w3schools.com/aspnet/mvc_intro.asp http://www.asp.net/mvc/tutorials