What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

33
What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application

Transcript of What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Page 1: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

What’s new inASP.NET MVC 3

Building a NerdDinner/AppStore

Application

Page 2: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Introducing NerdDinner.com

Page 3: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Introducing NerdDinner.com

• nerddinner.codeplex.com• Free PDF walkthrough (updated to

2.0)– tinyurl.com/aspnetmvc

Page 4: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Introducing NerdDinner.com

Page 5: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Introducing NerdDinner.com

Page 6: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

What’s new in ASP.NET MVC 3

Razor View Engine Multiple View Engine Support

Validation Improvements Dynamic ViewBag

Global Filters New ActionResults Project Dialog Improvements VBHTML Support

Task-based HelpersImproved

Dependency Injection

Porting MVC Script Libraries to jQuery

Granular ValidateInput

Add View Dialog Improvements

Project Dialog Extensibility

Improvements

Improved Caching Support

JSON Binding Support

Page 7: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

What’s new in ASP.NET MVC 3

Razor View Engine Multiple View Engine Support

Validation Improvements Dynamic ViewBag

Global Filters New ActionResults Project Dialog Improvements VBHTML Support

Task-based HelpersImproved

Dependency Injection

Porting MVC Script Libraries to jQuery

Granular ValidateInput

Add View Dialog Improvements

Project Dialog Extensibility

Improvements

Improved Caching Support

JSON Binding Support

Page 8: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Upgrading

ASP.NET MVC 3 Application Upgrader

tinyurl.com/upgrademvc3

Page 9: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Multiple View Engine Support

Page 10: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Multiple View Engine Support

protected void Application_Start(){ ViewEngines.Engines.Add(new SparkViewFactory()); …}

Page 11: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Razor

• Clean & Concise• Based on Existing Languages• Intellisense• Code Colorization• Unit Testing Support

Page 12: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Syntax Comparison

Web Forms6 transitions

Razor2 transitions

<ul>@for (int i = 0; i < 10; i++){ <li>@i</li>}</ul>

<ul><% for (int i = 0; i < 10; i++) {%> <li><%=i %></li><%} %></ul>

Page 13: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Layouts

Layout View<html>

<head>

<title>Title<title></head><body>

@RenderSection("Menu")@RenderBody()

</body></html>

@{Layout="~/Views/Shared/

_Layout.cshtml";}@section Menu {

<ul id="pageMenu"><li>Item 1</li><li>Item 2</li>

</ul>}

Page 14: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Web Forms to Razor

Open Source Razor Converter

github.com/telerik/razor-converter

Page 15: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

DEMO

Views using Razor

Page 16: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Filters

• Declarative• Cross-cutting concerns• Custom filters• Supported since version 1

Page 17: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Types of Filters

• IActionFilter• IResultFilter• IExceptionFilter• IAuthorizationFilter

Page 18: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Filters Example

[HandleError]public class BlogController : Controller{

[HandleLogging]public ActionResult Index(){ return View(); }

}

Page 19: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Global Filters

• No longer need attributes• Applies to all actions on all

controllers

Page 20: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Global Filters

protected void Application_Start(){ GlobalFilters.Filters.Add(new MyActionFilterAttribute()); …}

Page 21: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

DEMO

Logging Errors with Global Filters

Page 22: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Dynamic ViewBag

• Accessible via properties• Properties map to ViewData entries• Late-bound

Page 23: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Dynamic ViewBag

<head>

<title>@ViewBag.Title<title></head>

Page 24: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

DEMO

Converting to Dynamic ViewBag

Page 25: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

New Action Results

• HttpNotFoundResult• RedirectResult• HttpStatusCodeResult

Page 26: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

DEMO

Using New Action Results

Page 27: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

JavaScript and AJAX

• JSON Binding• jQuery Validation• Unobstrusive JavaScript– Separation of Presentation and Content– No errors if AJAX isn’t supported

• RemoteAttribute

Page 28: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Unobtrusive JavaScript

HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

code

<configuration> <appSettings>

<add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings></configuration>

web.config

Page 29: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Unobtrusive JavaScript

HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

code

<configuration> <appSettings>

<add key="UnobtrusiveJavaScriptEnabled" value="true"/> </appSettings></configuration>

web.config

Page 30: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

Client Validation

HtmlHelper. ClientValidationEnabled = true;

code

<configuration> <appSettings>

<add key=“ClientValidationEnabled" value="true"/> </appSettings></configuration>

web.config

Page 31: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

DEMO

Remote Validation

Page 32: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

ResourcesSoftware Application

Developers

http://msdn.microsoft.com/

Infrastructure Professionals

http://technet.microsoft.com/

msdnindia technetindia @msdnindia @technetindia

Page 33: What’s new in ASP.NET MVC 3 Building a NerdDinner/AppStore Application.

© 2011 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.