Tallan's Technology Blog

Tallan's Top Technologists Share Their Thoughts on Today's Technology Challenges

What’s New in ASP.NET MVC 3

I did a tech talk (an internal presentation for Tallan) on 11/30 with the intent to do a quick demonstration of the new features of ASP.NET MVC3.  Unfortunately (or fortunately, depending on how you look at it), there’s are just too many new features to cover in a 45 minute presentation.

I’m writing a series of blog posts to get a bit more in-depth on the new features of MVC 3.  I’m going to divide this topic into a number of posts to allow you to pick and choose what to learn about, and to attempt to keep your attention.  All of this in one blog post would be very lengthy and could get boring rather quickly.

In this post, I’ll keep it to a quick summary of the new features and a quick description of each.  We’ll get into more depth in future posts.

Overview of MVC 3

ASP.NET MVC is a wildly popular framework for web application development on the .NET platform, and MVC 3 is the latest iteration (currently in Release Candidate status as of the publication of this article.)

For those of you unfamiliar with the framework, I encourage you to visit the Official Microsoft ASP.NET MVC site and take a look.  Anyone who’s been frustrated with web development on the .NET platform up until now will likely find MVC to be a refreshing and exciting change to web development.  ASP.NET MVC truly feels like how web development should have been all along.  (For those new to MVC or interested in learning MVC in depth, watch this blog for a 10-part screencast series on ASP.NET MVC development, to be completed no later than 12/31/2010).

Some notes on MVC3:

  • MVC 3 can be installed via the Web Platform Installer or via the Following Link: http://go.microsoft.com/fwlink/?LinkID=191797
  • MVC3 is compatible with MVC2
    • There should be little to no upgrade path for MVC2 apps to work on the framework
    • Any MVC2 skills and knowledge can be applied to MVC3 development
  • MVC3 can be installed side-by-side with MVC2
  • Important Note: Unlike previous version the framework, MVC3 requires Visual Studio 2010 and .NET 4.0

What’s New: Feature List

Below is a categorized list of new features in the MVC3 Framework.  Stay tuned to the Tallan Enterprise Blog for a 4-part screencast series covering all of the enhancements listed here.

Framework and Tools

  • Multiple View Engine Support
  • “Razor” View Engine
    • New Default View Engine
    • Cleaner/More Concise than Web Forms
    • Less “ASP” Feel
  • NuGet Package Management
    • Unix-Like package and dependency management
  • Common Service Locator library
    • Simplifies Dependency Injection
    • Adds flexibility to DI and Dependency Resolution

View Enhancements

  • New Web Helpers
    • Chart Helper
    • WebGrid Helper
  • Unobtrusive Javascript and HTML 5
    • jQuery based client-side validation
    • jQuery based AJAX form and input

Controller Enhancements

  • Global Action Filters
  • Dynamic ViewModel object
  • New Action Results
    • HttpNotFoundResult
    • HttpStatusCodeResult
  • New Permanent Redirects (HTTP Status Code 301)
    • RedirectPermanent
    • RedirectToRoutePermanent
    • RedirectToActionPermanent
  • Built in JSON Binding Support
    • Action methods support full model-binding from JSON based AJAX requests.

Model Validation Enhancements

  • New .NET 4 Data Annotations
  • Improvements to validation attributes
    • Allows for validation based on dependent properties
  • IValidatableObject interface
    • Model-Level validation
    • Error-messages related to overall Model State

 

As each screencast is completed, I will update this post with links to each section.

Stay Tuned!

1 Comment. Leave new

MVC3 promises to save us developers a lot of work. I loved this article thoroughly. Keep up the good work.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

\\\