So, I'm very enthusiastic about the new stuff that's coming out. I've already played around with the Razor view engine that was included in WebMatrix. And now I got the first preview of ASP.NET MVC 3. Yei!
So what's nice and new in this one?
Razor view engine
This one I've played with already a bit. The razor engine is more streamlined option for HTML templates with minimalistic syntax. It just feels like coding C# inside a HTML page. E.g.
WebFormsViewEngine:
<ul>
<% foreach (var invoice in Model.Invoices) { %>
<li><%:invoice.Balance%></li>
<% } %>
</ul>
And same in Razor view engine:
<ul>
@foreach (var invoice in Model.Invoices) {
<li>@invoice.Balance</li>
}
</ul>
Or example with if and foreach statements:
@if(Model.Invoices.Count == 0)
{
No invoices open!
}
else
<ul>
@foreach (var invoice in Model.Invoices) {
<li>@invoice.Balance</li>
}
</ul>
}
So the idea here is to make things a bit easier for everyone.
ViewData dictionary improvement
Another thing that makes your life just a bit easier is the support for the dynamic ViewData dictionary.
Previously we added stuff to the ViewData dictionary like this:
ViewData["Field"] = "Field content stuff";
Now we can use dynamic properties:
ViewData.Field = "Field content stuff";
A small change that makes me happy!
Dependency injection support
To ease up the unit testing and TDD, there's also new DI and IoC related features, that I haven't yet had time to play with. The following hooks are provided:
- Creating controller factories
- Creating controllers and setting dependencies
- Setting dependencies on view pages for both the Web Form view engine and the Razor view engine
- Setting dependencies on action filters
And of course tons of more stuff, check the release notes for more!