what’s new in asp.net mvc 3 building a nerddinner/appstore application

Post on 24-Dec-2015

217 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

What’s new inASP.NET MVC 3

Building a NerdDinner/AppStore

Application

Introducing NerdDinner.com

Introducing NerdDinner.com

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

2.0)– tinyurl.com/aspnetmvc

Introducing NerdDinner.com

Introducing NerdDinner.com

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

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

Upgrading

ASP.NET MVC 3 Application Upgrader

tinyurl.com/upgrademvc3

Multiple View Engine Support

Multiple View Engine Support

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

Razor

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

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>

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>}

Web Forms to Razor

Open Source Razor Converter

github.com/telerik/razor-converter

DEMO

Views using Razor

Filters

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

Types of Filters

• IActionFilter• IResultFilter• IExceptionFilter• IAuthorizationFilter

Filters Example

[HandleError]public class BlogController : Controller{

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

}

Global Filters

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

controllers

Global Filters

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

DEMO

Logging Errors with Global Filters

Dynamic ViewBag

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

Dynamic ViewBag

<head>

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

DEMO

Converting to Dynamic ViewBag

New Action Results

• HttpNotFoundResult• RedirectResult• HttpStatusCodeResult

DEMO

Using New Action Results

JavaScript and AJAX

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

• RemoteAttribute

Unobtrusive JavaScript

HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

code

<configuration> <appSettings>

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

web.config

Unobtrusive JavaScript

HtmlHelper.UnobtrusiveJavaScriptEnabled = true;

code

<configuration> <appSettings>

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

web.config

Client Validation

HtmlHelper. ClientValidationEnabled = true;

code

<configuration> <appSettings>

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

web.config

DEMO

Remote Validation

ResourcesSoftware Application

Developers

http://msdn.microsoft.com/

Infrastructure Professionals

http://technet.microsoft.com/

msdnindia technetindia @msdnindia @technetindia

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

top related