Presentation is loading. Please wait.

Presentation is loading. Please wait.

2 ASP.NET MVC Scott Hanselman Senior Program Manager Microsoft.

Similar presentations


Presentation on theme: "2 ASP.NET MVC Scott Hanselman Senior Program Manager Microsoft."— Presentation transcript:

1

2 2 ASP.NET MVC Scott Hanselman Senior Program Manager Microsoft

3 3 Hello Cheesy Scott Hanselman Senior Program Manager Microsoft

4 4 What’s the Point? This is not Web Forms 4.0 It’s about alternatives. Car vs. Motorcycle. Flexible Extend it. Or not. Fundamental Part of System.Web and isn’t going anywhere. Plays Well With Others Feel free to use NHibernate for Models, Brail for Views and Whatever for Controllers. Keep it simple and DRY

5 5 Goodness – Driving Goals Maintain Clean Separation of Concerns Easy Testing Red/Green TDD Highly maintainable applications by default Extensible and Pluggable Support replacing any component of the system

6 6 Goodness – Driving Goals Enable clean URLs and HTML SEO and REST friendly URL structures Great integration within ASP.NET All the same providers still work Membership, Session, Caching, etc. ASP.NET Designer Surface in VS2008

7 It’s still ASP.NET Providers still work Membership, Caching, Session, etc. Views leverage.aspx and.ascx But they don’t have to if you don’t want them to Within System.Web namespace Feature Sharing

8 8 3 Circles Model ControllerView

9 9 A Little More Detail ModelController View Browser requests /Products/ Route is determined Controller is activated Method on Controller is invoke Controller does some stuff Renders View, passing in custom ViewData URLs are rendered, pointing to other Controllers

10 What is MVC? Request ControllerController Step 1 Incoming request directed to Controller

11 What is MVC? ControllerController Model Step 2 Controller processes request and forms a data Model

12 What is MVC? ControllerController ViewView Step 3 Model is passed to View

13 What is MVC? ControllerController ViewView Step 4 View transforms Model into appropriate output format

14 What is MVC? ResponseResponse ControllerController ViewView Step 5 Response is rendered

15 15 Request Lifecycle Scott Hanselman Senior Program Manager Microsoft

16 16 Routing Scott Hanselman Senior Program Manager Microsoft

17 17 Extensibility Views Controllers Models Routes …are all Pluggable

18 18 ViewEngines View Engines render output You get WebForms by default Can implement your own MVCContrib has ones for Brail, Nvelocity NHaml is an interesting one to watch View Engines can be used to Offer new DSLs to make HTML easier Generate totally different mime/types Images, RSS, JSON, XML, OFX, VCards, whatever.

19 19 Views <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" CodeBehind="List.aspx" Inherits="MvcApplication5.Views.Products.List" Title="Products" %> ( )

20 20 NHaml – Extreme Views %h2= ViewData.CategoryName %ul - foreach (var product in ViewData.Products) %li = product.ProductName.editlink = Html.ActionLink("Edit", new { Action="Edit", ID=product.ProductID }) = Html.ActionLink("Add New Product", new { Action="New" }) - foreach (var product in ViewData.Products) %li = product.ProductName.editlink = Html.ActionLink("Edit", new { Action="Edit", ID=product.ProductID }) = Html.ActionLink("Add New Product", new { Action="New" })

21 21 Testing Controller Actions No requirement to test within ASP.NET runtime. Use Moq or RhinoMocks or TypeMock Create Test versions of the parts of the runtime you want to stub

22 22 TDD Scott Hanselman Senior Program Manager Microsoft

23 23 Complete (ish) Application Scott Hanselman Senior Program Manager Microsoft

24 24 What’s the Point? This is not Web Forms 4.0 It’s about alternatives. Car vs. Motorcycle. Flexible Extend it. Or not. Fundamental Part of System.Web and isn’t going anywhere. Plays Well With Others Feel free to use NHibernate for Models, Brail for Views and Whatever for Controllers. Keep it simple and DRY

25 Choosing Between The Two

26 You Might be an MVC if… You want full control over markup You want a framework that enforces separation of concerns TDD/Unit Testing is a priority for you Control abstractions get in your way more than they help You like writing Javascript

27 You Might be a WebForm if… You like programming against controls that encapsulate UI and logic You like the WYSWIG designer and would rather avoid angle brackets You like keeping logic on the server rather than hand writing Javascript

28 Is ASP.NET MVC Ready for Release?

29 29

30 30 Resources www.microsoft.com/teched Tech·TalksTech·Ed Bloggers Live SimulcastsVirtual Labs http://microsoft.com/technet Evaluation licenses, pre-released products, and MORE! http://microsoft.com/msdn Developer’s Kit, Licenses, and MORE!

31 31 Resources for Developers http://www.asp.net http://www.silverlight.net http://www.msdn.com http://www.microsoft.com/teched

32 32 ASP.NET Community – www.asp.net Great Learning Content 219 Videos, 83 Tutorials, Starter Kits, Webcasts, Podcasts, suggested Books Questions? Need an Answer (Forums) Over 132,000 new questions a year 72% answered within 7-days Stay up-to-date with Blogs Download the latest alphas, betas, and releases Participate, Contribute, Summit, Learn ASP.NET Wiki, Control Gallery

33 33 Please complete an evaluation

34 34 Be well, write good code, and stay in touch scottha@microsoft.com http://hanselman.com

35 35 © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "2 ASP.NET MVC Scott Hanselman Senior Program Manager Microsoft."

Similar presentations


Ads by Google