What's new in asp.net mvc 4
-
Upload
simone-chiaretta -
Category
Technology
-
view
23.233 -
download
0
description
Transcript of What's new in asp.net mvc 4
What’s new in ASP.NET MVC 4
Simone ChiarettaArchitect, Council of the EUhttp://codeclimber.net.nzTwitter: @simonech
Who am I?
► Simone Chiaretta► Microsoft MVP ASP.NET► ASP Insider► Blogger – http://codeclimber.net.nz ► Moved to Belgium► Contributor to various OpenSource projects
► Runner/Climber/Triathlete
Disclaimer:"The views expressed are purely those of the speaker and may not in any circumstances be regarded as stating an official position of the Council"
ASP.NET MVC 4 Goals
► Enhance development and deployment► Bring together all MS Web Stack► Better HTML5 / Mobile support► Cloud ready
ASP.NET MVC 4
► New and refreshed Project Template► Enhanced support for mobile sites► Recipes for custom code generation► Improved support for async controllers► Cloud-ready
ASP.NET MVC 4 – Developer Preview
► Released September 2011 @ Build► Both for .NET 4 and .NET 4.5 preview► Downloadable with Web Platform Installer 4
New Project Template
► New look closer to ASP.NET website► HTML5 by default► Responsive Design (via media queries)► Uses jQueryUI for the login► Includes KnockOutJS
Support for Mobile Sites
► New Mobile Project Template for mobile-only sites
► Display modes– Views/index.cshtml– Views/index.mobile.cshtml
► Inclusion of jQuery Mobile► View Switcher and Browser Overriding
Recipes
► Custom code-generation plugins► Downloadable via NuGet► Still a bit undocumented► Heavily rely on VS Extensibility
Recipes How-To
► Class library► Reference Microsoft.VisualStudio.Mvc.Extensibility.1.0.dll
► Implement IRecipe or IFolderRecipe► Build your own custom UI Dialog► Package and deploy with NuGet
Or
Install Package AspNetMvc4.RecipeSdk
Task based Async Controllers
► Single Method Async Contollers► No more manual handling of requests► Returns Task<ActionResult>
MVC3public void SyncAllAsync(){
AsyncManager.OutstandingOperations.Increment();StuffService stuff = new StuffService();stuff.StuffCompleted += (sender, e) =>
{ AsyncManager.Parameters["model"] = e.Result; AsyncManager.OutstandingOperations.Decrement();
};stuff.DoStuffAsync("Some other stuff");
}
public ActionResult SyncAllCompleted(SyncViewModel model){
return View(model);}
MVC4
public Task<ActionResult> SyncAllAsync(){
StuffService stuff = new StuffService();return stuff.DoStuffAsync()
.ContinueWith(t => {return View(t.Result)});
}
MVC4 + C#5 (or Async CTP)
public async Task<ActionResult> SyncAllAsync(){
StuffService stuff = new StuffService();return View(await stuff.DoStuffAsync());
}
Looking at the future
► Better integration with other “products”– Web Pages 2– ASP.NET 4.5– Web API
Minification & Bundling
View<script src=“/Scripts/js”></scripts>
Global.asaxBundleTable.Bundles.EnableDefaultBundles();
WCF WebAPI Preview 6
► Uses WCF syntax for web API► Returns JSON or XML► Extensible
Summary
► MVC4 introduced new mobile features, better aync, enhanced tooling
► Current release is a Developer Preview from BUILD (4 months ago)
► Beta coming in the next few months
► Final release in sync with next release of Visual Studio vNext (Dev11)
References
► MVC 4 Main Page and Dev Previewhttp://www.asp.net/mvc/mvc4
► Release Noteshttp://www.asp.net/whitepapers/mvc4-release-notes
► Roadmaphttp://aspnet.codeplex.com/wikipage?title=ASP.NET%20MVC%204%20RoadMap
► Phil Haack’s Mobility Talk, BUILD Sep 2011http://channel9.msdn.com/events/BUILD/BUILD2011/TOOL-803T
► Create an MVC4 Recipehttp://haacked.com/archive/2011/09/22/writing-a-recipe-for-asp-net-mvc-4-developer-preview.aspx
► The evolution of Async controllers in ASP.NET MVChttp://codeclimber.net.nz/archive/2012/01/09/evolution-of-async-controller-asp-net-mvc.aspx
Contacts – Simone Chiaretta
► Blog: http://codeclimber.net.nz/► Twitter: @simonech
16
© 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.