<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.aspdotnetmvc.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" version="2.0">
  <channel>
    <title>AspDotNetMVC.com - Latest ASP.NET MVC Blog Posts</title>
    <description>The 25 most recent blog posts about ASP.NET MVC indexed by AspDotNetMVC.com.</description>
    <link>http://aspdotnetmvc.com/blogs/</link>
    <language>en-us</language>
    <copyright>Copyright © 2012 AspDotNetMVC.com. All Rights Reserved</copyright>
    <lastBuildDate>Wed, 18 Aug 2010 12:11:00 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Community Server v2.0 (http://www.communityserver.org)</generator>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.aspdotnetmvc.com/aspdotnetmvc-blogs" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="aspdotnetmvc-blogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
      <title>Spark Bindings – are you tired of eating “Tag Soup” yet?</title>
      <description>Since giving my talk at mvcconf, I’ve received numerous requests to talk a little more about the mysterious Bindings feature in Spark. To be clear, it’s only mysterious because it’s the newest feature in the framework and because of lack of documentation – that is until now. Louis Dejardin has outdo &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://blog.robertgreyling.com/2010/08/spark-bindings-are-you-tired-of-eating.html</link>
      <source url="http://blog.robertgreyling.com/">Robert The Grey</source>
      <author> (Robert Greyling)</author>
      <dc:creator> (Robert Greyling)</dc:creator>
      <guid isPermaLink="False">9dad776da35e510d88f3c633fa33d3b5</guid>
      <pubDate>Wed, 18 Aug 2010 12:11:00 GMT</pubDate>
    </item>
    <item>
      <title>If I ran DevDiv</title>
      <description>I read this post by Ayende today and started thinking about this myself. So, what is it all about: “What would you do if you were running the developer division of Microsoft (or… what would you do if you were the Gu )?”. If I would run DevDiv I would: embrace successful open source project instead o &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://koenwillemse.wordpress.com/2010/08/19/if-i-ran-devdiv/</link>
      <source url="http://koenwillemse.wordpress.com/">Koen about .Net</source>
      <author>koenwillemse</author>
      <dc:creator>koenwillemse</dc:creator>
      <guid isPermaLink="False">4744680a94a311c3e971f85347554e14</guid>
      <pubDate>Wed, 18 Aug 2010 10:16:00 GMT</pubDate>
    </item>
    <item>
      <title>ModelBinding &lt;b&gt;ASP.NET MVC&lt;/b&gt; and Multiple Field Validation « this &lt;b&gt;...&lt;/b&gt;</title>
      <description>ModelBinding &lt;b&gt;ASP.NET MVC&lt;/b&gt; and Multiple Field Validation. This tip comes to you from my blog,  but the hat-tip goes to Andres Nelson whom I work with at my current client who actually showed me how to do this. ...&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://blog.donnfelker.com/2010/08/17/modelbinding-asp-net-mvc-and-multiple-field-validation/</link>
      <author>Donn</author>
      <dc:creator>Donn</dc:creator>
      <guid isPermaLink="False">http://blog.donnfelker.com/2010/08/17/modelbinding-asp-net-mvc-and-multiple-field-validation/</guid>
      <pubDate>Tue, 17 Aug 2010 13:03:42 GMT</pubDate>
    </item>
    <item>
      <title>Implementing the Store Locator Application Using ASP.NET MVC (Part 1)</title>
      <description>Back in May 2010 I wrote a three-part article series titled Building a Store Locator ASP.NET Application Using Google Maps API, which showed how to build a simple store locator application using ASP.NET and the Google Maps API. The application consisted of two ASP.NET pages. In the first page, the u &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://www.4guysfromrolla.com/articles/081810-1.aspx</link>
      <source url="http://www.4guysfromrolla.com/">4GuysFromRolla.com Headlines</source>
      <guid isPermaLink="False">c93af3a6853001bffea06e1030a84699</guid>
      <pubDate>Tue, 17 Aug 2010 12:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Trail Hacker: Configuring &lt;b&gt;ASP.NET MVC&lt;/b&gt; on Window Server 2003 x64 &lt;b&gt;...&lt;/b&gt;</title>
      <description>At work today, I was trying to install our &lt;b&gt;ASP.NET MVC&lt;/b&gt; web application on a Windows Server 2003 box that was running a 64 bit version of IIS 6.0. I had set everything up just as I have for every other test server that we were using, ...&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://blog.hardbarger.com/2010/08/configuring-aspnet-mvc-on-window-server.html</link>
      <author>Luc</author>
      <dc:creator>Luc</dc:creator>
      <guid isPermaLink="False">http://blog.hardbarger.com/2010/08/configuring-aspnet-mvc-on-window-server.html</guid>
      <pubDate>Tue, 17 Aug 2010 10:46:00 GMT</pubDate>
    </item>
    <item>
      <title>Inversion of Control, Two Ways</title>
      <description>One of the reasons I like to play with other languages from time to time is to find new ways of solving problems. This is why, while learning Ruby on Rails, I am making a conscious effort to do things the Ruby way, as opposed to writing C# style code in Ruby. While working on my new blog page, I enc &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://blog.trevorpower.com/index.php/inversion-of-control-two-ways/</link>
      <source url="http://blog.trevorpower.com/">Trevor Power</source>
      <author>trevorpower</author>
      <dc:creator>trevorpower</dc:creator>
      <guid isPermaLink="False">f57850195cb25e064810240c3c2a2259</guid>
      <pubDate>Mon, 16 Aug 2010 09:11:00 GMT</pubDate>
    </item>
    <item>
      <title>Html.ActionLink Displaying The Word Length In The URL - What?</title>
      <description>Don't you just love crazy weirdness when you create urls? I sure do....NOT! Sometimes the smallest things can provide you with the biggest pain - especially when you are pressed for time. I ran across a crazy little problem in ASP.NET MVC 2 with an url I created using Html.Actionlink. I wanted an ur &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://iamdotnetcrazy.blogspot.com/2010/08/htmlactionlink-displaying-word-length.html</link>
      <source url="http://iamdotnetcrazy.blogspot.com/">Ramblings Of A Crazy DotNet Woman</source>
      <author> (Kila Morton)</author>
      <dc:creator> (Kila Morton)</dc:creator>
      <guid isPermaLink="False">94a63c6d4aa7ac2a576bae2c03b29248</guid>
      <pubDate>Mon, 16 Aug 2010 09:04:00 GMT</pubDate>
    </item>
    <item>
      <title>Mapping sub-domains to ASP.NET MVC Areas</title>
      <description>I'm currently working on an app that has several different sub-sections. i.e. a public facing section and a private admin section. Since this is an ASP.NET MVC 2 app, Areas are an obvoious solution to dividing up and organizing the code for the different parts of the project. However, one of the req &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://www.jonathanmhammond.com/2010/08/mapping-sub-domains-to-aspnet-mvc-areas.html</link>
      <source url="http://www.jonathanmhammond.com/">Jonathan.Thoughts.Export()</source>
      <author>Jonathan M. Hammond </author>
      <dc:creator>Jonathan M. Hammond </dc:creator>
      <guid isPermaLink="False">f27406b1cda98831d66b3499525c00d0</guid>
      <pubDate>Mon, 16 Aug 2010 05:00:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC meets HTML5</title>
      <description>&lt;p&gt;Today I tried out &lt;a href="http://mvchtml5.codeplex.com/"&gt;ASP.NET MVC HTML5 Helpers Toolkit&lt;/a&gt; by &lt;a href="http://www.deanhume.com/"&gt;Dean Hume&lt;/a&gt;. Although browsers today support &lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;HTML5&lt;/a&gt; partially it is time to start playing with it. As soon as HTML5 gets common standard in web you should be able to react fast. In this posting I will introduce you HTML5 Helpers Toolkit and some HTML5 field types.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.deanhume.com/Home/BlogPost/asp-net-mvc-html5-toolkit/29"&gt;HTML5 Helpers Toolkit is easy to install&lt;/a&gt;. Just download the package, unpack it and reference the DLL you found from package. That’s all. You don’t have to do anything more. If your browser doesn’t support HTML5 then HTML5 fields are rendered as usual textboxes and you can extend them using &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/tags/jQuery/default.aspx"&gt;jQuery&lt;/a&gt; by example.&lt;/p&gt;  &lt;h3&gt;E-mail field&lt;/h3&gt;  &lt;p&gt;HTML5 defines many types for input boxes. One of the types is e-mail. Here is the demo of e-mail field with placeholder value. Yes, in HTML5 textboxes support placeholders and we don’t have to mess with JavaScript anymore. This is how e-mail box is defined.&lt;/p&gt;  &lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="background: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.Html5TextBox(&lt;span style="color: #a31515"&gt;&amp;quot;userEmal&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;InputTypes&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;InputType&lt;/span&gt;.Email,&lt;br /&gt;                          &lt;span style="color: #a31515"&gt;&amp;quot;plah@plah.com&amp;quot;&lt;/span&gt;) &lt;span style="background: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;And here is the result on &lt;a href="http://www.mozilla.com/en-US/firefox/beta/"&gt;Firefox 4 Beta&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="HTML5 e-mail box with placeholder value" border="0" alt="HTML5 e-mail box with placeholder value" src="http://weblogs.asp.net/blogs/gunnarpeipman/html5emailplaceholder_30ECCEE4.png" width="156" height="29" /&gt;&lt;/p&gt;

&lt;p&gt;Nice, isn’t it? I discovered one cool thing when I tested HTML5 Helpers Toolkit with &lt;a href="http://www.opera.com/"&gt;Opera&lt;/a&gt;. I tried to submit form where e-mail address is not valid. And this is what happened:&lt;/p&gt;

&lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="HTML5 date box with validation on Opera" border="0" alt="HTML5 date box with validation on Opera" src="http://weblogs.asp.net/blogs/gunnarpeipman/html5emailinvalid_0F8D2948.png" width="204" height="78" /&gt;&lt;/p&gt;

&lt;p&gt;Form was not submitted and all I got was this error message in red box. Cool!&lt;/p&gt;

&lt;h3&gt;Slider&lt;/h3&gt;

&lt;p&gt;As a next thing let’s see how to get numeric slider on page without any JavaScript. Numbers in slider box definition have the following meaning: minimum is 1 and maximum is 50, step is 2 and default value is 25.&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="background: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.Html5Range(1, 50, 2, 25, &lt;span style="color: blue"&gt;null&lt;/span&gt;) &lt;span style="background: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;And here is the result on Chrome.&lt;/p&gt;

&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="HTML5 numeric slider on Chrome" border="0" alt="HTML5 numeric slider on Chrome" src="http://weblogs.asp.net/blogs/gunnarpeipman/html5sliderchrome_6DC150B6.png" width="139" height="27" /&gt;&lt;/p&gt;

&lt;p&gt;If we want we can use usual HTML to decorate slider with numbers mentioned above. But I like the result – simple, calm and clean.&lt;/p&gt;

&lt;h3&gt;Date picker&lt;/h3&gt;

&lt;p&gt;Now let’s do something that only Opera seems to support right now – let’s create HTML5 date picker. Definition is here.&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;&lt;span style="color: blue"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: maroon"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="background: yellow"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt; Html.Html5TextBox(&lt;span style="color: #a31515"&gt;&amp;quot;deliveryDate&amp;quot;&lt;/span&gt;, &lt;span style="color: #2b91af"&gt;InputTypes&lt;/span&gt;.&lt;span style="color: #2b91af"&gt;InputType&lt;/span&gt;.Date) &lt;span style="background: yellow"&gt;%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: maroon"&gt;form&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;And here is the result on Opera. &lt;/p&gt;

&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="HTML5 date picker on Opera" border="0" alt="HTML5 date picker on Opera" src="http://weblogs.asp.net/blogs/gunnarpeipman/html5datepickeropera_2CB2D152.png" width="214" height="193" /&gt;&lt;/p&gt;

&lt;p&gt;Seems good to me. And again – no additional &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/tags/JavaScript/default.aspx"&gt;JavaScript&lt;/a&gt; is needed. Until other browsers also start supporting this kind on input box you can use &lt;a href="http://jqueryui.com/demos/datepicker/"&gt;jQueryUI Datepicker&lt;/a&gt; component.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Although HTML5 is not here yet it is coming very soon and seems like &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/tags/MVC/default.aspx"&gt;ASP.NET MVC&lt;/a&gt; will be soon ready for it. Although HTML5 Helpers Toolkit doesn’t provide all HTML5 controls yet it is still great start and I think this project is worth keeping eye on it. It is very easy to install and very easy to use and I suggest you to try it out as soon as possible.&lt;/p&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://weblogs.asp.net/gunnarpeipman/archive/2010/08/16/asp-net-mvc-meets-html5.aspx</link>
      <author>DigiMortal</author>
      <dc:creator>DigiMortal</dc:creator>
      <guid isPermaLink="False">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7595097</guid>
      <pubDate>Sun, 15 Aug 2010 21:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Performance tuning tricks for ASP.NET and IIS 7 – part 2</title>
      <description>In part 1 of this series, we looked at some tricks to optimize the performance of any website running in IIS 7 by only modifying the web.config. In this part we will focus on handling browser caching issues and optimize the number of JavaScript and CSS files loaded from an ASP.NET website. NB! All t &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://madskristensen.net/post.aspx?id=56100d33-7dd2-4599-9b35-4349a244eeff</link>
      <source url="http://madskristensen.net/">.NET slave</source>
      <author>Mads Kristensen</author>
      <dc:creator>Mads Kristensen</dc:creator>
      <guid isPermaLink="False">27df280f4af3412b867ceeebdb3bd868</guid>
      <pubDate>Sun, 15 Aug 2010 06:28:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC 3: Using HttpNotFoundResult in controller tests</title>
      <description>&lt;p&gt;Lately I blogged about &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/07/27/asp-net-mvc-3-using-httpnotfoundresult-action-result.aspx"&gt;HttpNotFoundResult&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/07/28/asp-net-mvc-3-using-httpstatuscoderesult.aspx"&gt;HttpStatusCodeResult&lt;/a&gt; action results that come with ASP.NET MVC 3. These results are ideal for controller &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/tags/Testing/default.aspx"&gt;tests&lt;/a&gt; as we don’t have to mess with HttpContext and Response objects anymore. In this posting I will show you how to use HttpNotFoundResult in controller tests to check if errors are given correctly to user.&lt;/p&gt;  &lt;p&gt;Let’s suppose we have controller method that displays product details.&lt;/p&gt;  &lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;ActionResult&lt;/span&gt; Details(&lt;span style="color: blue"&gt;int&lt;/span&gt; productId)&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; product = _repository.GetProductById(productId);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;if&lt;/span&gt; (product == &lt;span style="color: blue"&gt;null&lt;/span&gt;)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; result = &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;HttpNotFoundResult&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;Product not found&amp;quot;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;return&lt;/span&gt; result;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: green"&gt;// ...&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;return&lt;/span&gt; View();&lt;br /&gt;}&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;If product is not found (whatever the reason is) then Details() returns HttpNotFoundResult to let user know that requested product doesn’t exist. If product is there then Details() makes some processing and returns regular view that displays product information.&lt;/p&gt;

&lt;p&gt;Now let’s write test to make sure that in the case of missing product error 404 will be returned.&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;[&lt;span style="color: #2b91af"&gt;TestMethod&lt;/span&gt;]&lt;br /&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;void&lt;/span&gt; ProductPageShouldReturn404IfProductNotFound()&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; productId = 1;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Product&lt;/span&gt; product = &lt;span style="color: blue"&gt;null&lt;/span&gt;;&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; repositoryMock = &lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;Mock&lt;/span&gt;&amp;lt;&lt;span style="color: #2b91af"&gt;IProductRepository&lt;/span&gt;&amp;gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; repositoryMock.Setup(c =&amp;gt; c.GetProductById(productId))&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Returns(product)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Verifiable();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; result = _controller.Details(productId);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; repositoryMock.Verify();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.IsNotNull(result);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Assert&lt;/span&gt;.IsInstanceOfType(result, &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;HttpNotFoundResult&lt;/span&gt;));&lt;br /&gt;}&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;This test makes sure that GetProductById() method is called from product repository mock and also it makes sure that this method returns null. After calling Details() method from controller we check three things:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;is GetProductById() method called? &lt;/li&gt;

  &lt;li&gt;is return value not null? &lt;/li&gt;

  &lt;li&gt;is return value of type HttpNotFoundResult? &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If all these conditions are met then test succeeds. Our tests as you can see, is pretty short and all it does is checking returned type. We don’t have here any dealing with HttpContext and Response and that saves us a lot of trouble. At least in more complex tests.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;HttpNotFoundResult and HttpStatusCodeResult are very good choices if we want our ASP.NET MVC applications to be more easily testable. This way we can avoid HttpContext and other related objects. If you want to customize HttpStatusCodeResult then please read my blog posting &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/07/28/asp-net-mvc-3-creating-httpstatuscoderesult-with-view-based-body.aspx"&gt;ASP.NET MVC 3: Creating HttpStatusCodeResult with view based body&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://weblogs.asp.net/gunnarpeipman/archive/2010/08/15/asp-net-mvc-3-using-httpnotfoundresult-in-controller-tests.aspx</link>
      <author>DigiMortal</author>
      <dc:creator>DigiMortal</dc:creator>
      <guid isPermaLink="False">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7595025</guid>
      <pubDate>Sat, 14 Aug 2010 21:00:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC 3: Introducing Razor view engine</title>
      <description>&lt;p&gt;ASP.NET MVC 3 brings us new view engine called Razor. Razor view engine was made available with &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/07/09/webmatrix-beta-in-pictures.aspx"&gt;WebMatrix&lt;/a&gt; first beta. Razor brings us new and very short syntax for writing views. In this posting I will introduce you shortly ASP.NET MVC Razor view engine.&lt;/p&gt;  &lt;h3&gt;New ASP.NET MVC project type&lt;/h3&gt;  &lt;p&gt;There is new ASP.NET MVC project type for Razor projects so you can start new application with Razor support already there.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://weblogs.asp.net/blogs/gunnarpeipman/razorshoutboxselectrazorproject_676217EB.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" class="wlDisabledImage" title="ASP.NET MVC 3 projects" border="0" alt="ASP.NET MVC 3 projects" src="http://weblogs.asp.net/blogs/gunnarpeipman/razorshoutboxselectrazorproject_thumb_0BF2E3C9.png" width="540" height="349" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The other options are project with ASPX based views and empty ASP.NET MVC project. As I am going to write sample application that uses Razor then it is not hard to guess which option I chose. &lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://weblogs.asp.net/blogs/gunnarpeipman/wlEmoticonsmile_482B82E6.png" /&gt;&lt;/p&gt;  &lt;h3&gt;Razor files&lt;/h3&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px 5px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="ASP.NET MVC Razor Application" border="0" alt="ASP.NET MVC Razor Application" align="right" src="http://weblogs.asp.net/blogs/gunnarpeipman/razorshoutboxviewfiles_7BF37937.png" width="213" height="480" /&gt;New ASP.NET MVC Razor application is created like default ASP.NET MVC web application. The difference is that views are using Razor view engine. Project structure at file system level is same as before as you can see if you take a look at image on right.&lt;/p&gt;  &lt;p&gt;There are some things you should know at this point:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Extension of Razor based views is .cshtml for view that use C# and .vbhtml for views that use VB.NET. &lt;/li&gt;    &lt;li&gt;Files that cannot be shown by direct requests (master pages, partial views etc) have underscore (_) in the beginning of their names. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So if you try to make the request to _Layout.cshtml (this is master page) you will get error from server.&lt;/p&gt;  &lt;p&gt;You can also see that there are controllers and models folders – things you don’t see in WebMatrix projects.&lt;/p&gt;  &lt;h3&gt;Razor syntax&lt;/h3&gt;  &lt;p&gt;Razor syntax is different from what we have seen this far. Razor provides us with way shorter and cleaner syntax and this is the reason why we should consider using it in our ASP.NET MVC projects. After playing with WebMatrix and Razor based pages I was pretty happy with Razor because my views looked cleaner than before. &lt;/p&gt;  &lt;p&gt;Here is the example of Razor based view. This is the same Account/LogOn view that comes also with usual ASP.NET MVC default application. Although there is no syntax highlight yet you get the point.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://weblogs.asp.net/blogs/gunnarpeipman/aspnetmvc3razor_1F5FF7D0.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="Example of Razor based view" border="0" alt="Example of Razor based view" src="http://weblogs.asp.net/blogs/gunnarpeipman/aspnetmvc3razor_thumb_20E113E4.png" width="542" height="399" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;em&gt;Click on image to see it at original size.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Basically the rules are simple: everything that starts with @ is server-side code. If it is some known language structure that has body then it must be followed by { and }. Between them you can write whatever you want. Okay, there are more rules but all this is documented in WebMatrix tutorial &lt;a href="http://www.asp.net/webmatrix/tutorials/2-introduction-to-asp-net-web-programming-using-the-razor-syntax"&gt;Introduction to ASP.NET Web Programming Using the Razor Syntax&lt;/a&gt;.&lt;/p&gt;  &lt;h3&gt;Should I try it?&lt;/h3&gt;  &lt;p&gt;Well… Razor was a little bit weird for me when I started playing with it. For smaller views it does not give any strong effect. But when you try it out on more complex views you will see that views are much readable than before. Current preview of ASP.NET MVC 3 doesn’t support syntax highlight for Razor views but syntax highlight is coming with next releases. I still suggest you to try out Razor to find out if it makes anything better for you. &lt;/p&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://weblogs.asp.net/gunnarpeipman/archive/2010/08/15/asp-net-mvc-3-introducing-razor-view-engine.aspx</link>
      <author>DigiMortal</author>
      <dc:creator>DigiMortal</dc:creator>
      <guid isPermaLink="False">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7594325</guid>
      <pubDate>Sat, 14 Aug 2010 21:00:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC 3: Global action filters</title>
      <description>&lt;p&gt;ASP.NET MVC 3 supports global action filters. Global action filters are applied to all actions in web application. By example, you can use global action filters for common security checks. In this posting I will show you how to write dummy action filter, register it as global and test it.&lt;/p&gt;  &lt;h3&gt;Creating action filter&lt;/h3&gt;  &lt;p&gt;Let’s start with our primitive action filter that is able in some cases ruin page layout for IE. Am I evil? Yes, I am! But I want this example to work on IIS and Cassini both so let’s make something trivial.&lt;/p&gt;  &lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;class&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;MyActionFilterAttribute&lt;/span&gt; : &lt;span style="color: #2b91af"&gt;ActionFilterAttribute&lt;/span&gt;&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;override&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;void&lt;/span&gt; OnResultExecuting(&lt;span style="color: #2b91af"&gt;ResultExecutingContext&lt;/span&gt; context)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;base&lt;/span&gt;.OnResultExecuting(filterContext);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; context.RequestContext.HttpContext.Response.Write(&lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;!-- Buuu! --&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;All this evil filter does is it writes string &amp;lt;!—Buuu! –&amp;gt; to response stream, so it is the first line of output. &lt;/p&gt;

&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="Global action filters: no filters yet" border="0" alt="Global action filters: no filters yet" align="right" src="http://weblogs.asp.net/blogs/gunnarpeipman/globalactionfiltercleanoutput_1A1E6092.png" width="364" height="151" /&gt;Now open one of your ASP.NET MVC projects and run it. It does not matter if you run it on IIS or Cassini (ASP.NET development web server). If you look at page source you should see usual HTML there. Something like you see on image on right.&lt;/p&gt;

&lt;h3&gt;Registering global action filter&lt;/h3&gt;

&lt;p&gt;Now, without touching any controller let’s put our evil Buuu! in place. Open global. asax and modify Application_Start event so it looks like follows.&lt;/p&gt;

&lt;pre style="font-family: consolas"&gt;&lt;hr size="1" /&gt;&lt;span style="color: blue"&gt;protected&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;void&lt;/span&gt; Application_Start()&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;AreaRegistration&lt;/span&gt;.RegisterAllAreas();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: green"&gt;// Register global filter&lt;/span&gt;&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;GlobalFilters&lt;/span&gt;.Filters.Add(&lt;span style="color: blue"&gt;new&lt;/span&gt;&amp;#160;&lt;span style="color: #2b91af"&gt;MyActionFilterAttribute&lt;/span&gt;());&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RegisterGlobalFilters(&lt;span style="color: #2b91af"&gt;GlobalFilters&lt;/span&gt;.Filters);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RegisterRoutes(&lt;span style="color: #2b91af"&gt;RouteTable&lt;/span&gt;.Routes);&lt;br /&gt;}&lt;hr size="1" /&gt;&lt;/pre&gt;

&lt;p&gt;Compile your project and run application again. Now you should see output like this.&lt;/p&gt;

&lt;p align="center"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" class="wlDisabledImage" title="Global action filters: evil filter is registered" border="0" alt="Global action filters: evil filter is registered" src="http://weblogs.asp.net/blogs/gunnarpeipman/globalactionfilterbuuu_29058FAC.png" width="358" height="111" /&gt;&lt;/p&gt;

&lt;p&gt;Without any additional modification to controllers and their methods we got our action filter work for all controllers. You can surf around your site and for every request you should see now my evil message.&lt;/p&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Global application filters are powerful and easy to use features. You can use global filters for different purposes like establishing global security policies and controlling output. Of course, you may find many other uses for global action filters. ASP.NET MVC makes is very easy to register filters at global level and I think it is another great addition to MVC framework.&lt;/p&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://weblogs.asp.net/gunnarpeipman/archive/2010/08/15/asp-net-mvc-3-global-action-filters.aspx</link>
      <author>DigiMortal</author>
      <dc:creator>DigiMortal</dc:creator>
      <guid isPermaLink="False">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7594046</guid>
      <pubDate>Sat, 14 Aug 2010 21:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Dean Hume - &lt;b&gt;ASP.net MVC&lt;/b&gt; HTML5 Toolkit</title>
      <description>I try and play around with &lt;b&gt;ASP.net MVC&lt;/b&gt; as much as possible and this site is also written in MVC 2. One of the things that I thought about adding to MVC is the ability to have all the textboxes and controls updated to use HTML5. ...&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://www.deanhume.com/Home/BlogPost/asp-net-mvc-html5-toolkit/29</link>
      <author>unknown</author>
      <dc:creator>unknown</dc:creator>
      <guid isPermaLink="False">http://www.deanhume.com/Home/BlogPost/asp-net-mvc-html5-toolkit/29</guid>
      <pubDate>Fri, 13 Aug 2010 23:18:30 GMT</pubDate>
    </item>
    <item>
      <title>Using the GeneratedImage Control in ASP.NET MVC</title>
      <description>One of the free, open-source controls on the ASP.NET team’s CodePlex page is the GeneratedImage control. In a nutshell, the GeneratedImage control is a combination of an ASP.NET Web Control and a set of classes that facilitate programmatically creating, serving, caching, and transforming images. If  &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://scottonwriting.net/sowblog/archive/2010/08/14/using-the-generatedimage-control-in-asp-net-mvc.aspx</link>
      <source url="http://scottonwriting.net/sowblog/default.aspx">Scott On Writing.NET</source>
      <author>Scott Mitchell</author>
      <dc:creator>Scott Mitchell</dc:creator>
      <guid isPermaLink="False">110b78cbb5d0b82fc1ac39a0491b95c0</guid>
      <pubDate>Fri, 13 Aug 2010 11:44:00 GMT</pubDate>
    </item>
    <item>
      <title>Expose your Existing ASP.NET MVC Actions as JSON/XML API Endpoints</title>
      <description>Why write separate actions to provide a JSON/XML API in ASP.NET MVC? If you are already using view models, MVC API Action Filter makes reusing your existing actions quick and clean.&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://www.nickriggs.com/posts/expose-your-existing-asp-net-mvc-actions-as-jsonxml-api-endpoints/</link>
      <source url="http://www.nickriggs.com/">Nick Riggs, Web Developer</source>
      <author>Nick Riggs</author>
      <dc:creator>Nick Riggs</dc:creator>
      <guid isPermaLink="False">b31033260799556ba35a6f030ccbb5c8</guid>
      <pubDate>Fri, 13 Aug 2010 06:44:00 GMT</pubDate>
    </item>
    <item>
      <title>I'm Taking a Break -- StoryTeller and StructureMap users please read</title>
      <description>&lt;p&gt;All,&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve come to realize this week that I&amp;#39;m in need of an extended mental holiday from the absurd level of side project work that I&amp;#39;ve been doing for the past several years.&amp;nbsp; I have some work on FubuMVC coming up as part of a Dovetail project, but otherwise I think I&amp;#39;ll try to recharge the batteries for a while and shut down the computer at night for awhile.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;StoryTeller&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;As of this moment, I&amp;#39;m shelving StoryTeller altogether.&amp;nbsp; The 1.0 release was admittedly rushed for an early adopter and has been problematic to get up and running out in the wild. &amp;nbsp; I know that StoryTeller needs some project automated &amp;quot;warmup&amp;quot; infrastructure and a *lot* more documentation and blogging to make it more approachable, but I&amp;#39;m stretched too thin to do that work right now and there frankly isn&amp;#39;t enough interest to justify the effort.&amp;nbsp; The code is up on GitHub if anybody wants to play with it -- but frankly, don&amp;#39;t use it unless you&amp;#39;re willing to get into the code and contribute pull requests back in.&amp;nbsp; At this juncture, I&amp;#39;m recommending that folks look at other alternatives like Cucumber and its .Net clones.&amp;nbsp; I&amp;#39;m still saying that FitNesse is nothing but a high friction tool that you&amp;#39;re better off without.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;StructureMap&lt;/h3&gt;
&lt;p&gt;StructureMap is a different story because people actually use it and depend on it.&amp;nbsp; StructureMap has some known weaknesses with its nested container support, the obsolete method noise to remove, people wanting more and more convention support, and better lifecycle support that I&amp;#39;d like to address with the 3.0 version I&amp;#39;ve had on hold for 3 months while I concentrated on Storyteller -- plus there&amp;#39;s the endless whining on Twitter about the documentation being out of date.&amp;nbsp; It&amp;#39;s been on my TODO list for 6 months to convert the documentation over to the &lt;a href="http://spreecommerce.com/documentation/index.html"&gt;Spree guides&lt;/a&gt; like the ones for FubuMVC for easier maintenance, but haven&amp;#39;t had the bandwidth.&amp;nbsp; If you have too much time on your hands, I would dearly love to have a volunteer or two to help me refresh the docs infrastructure and get more examples in place, especially for the technologies that I don&amp;#39;t use regularly like ASP.Net MVC, WCF, EF, Linq to Sql, and WPF.&amp;nbsp; I will get back to StructureMap work before summer is over, but I&amp;#39;m prioritizing my own mental health for awhile first.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Oh, and I&amp;#39;m swearing off Twitter again.&amp;nbsp; Nothing but snark, pessimism, and negativity there, especially from the .Net side of the fence.&amp;nbsp; Should improve with me in a timeout anyway;)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll see y&amp;#39;all later when things seem like fun again,&lt;/p&gt;
&lt;p&gt;Jeremy&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://codebetter.com/blogs/jeremy.miller/archive/2010/08/12/i-m-taking-a-break-storyteller-and-structuremap-users-please-read.aspx</link>
      <author>jmiller</author>
      <dc:creator>jmiller</dc:creator>
      <guid isPermaLink="False">d21fbbc9-c112-4f32-ad14-95939a2c53d4:1077843</guid>
      <pubDate>Thu, 12 Aug 2010 17:54:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC 2 Controller - Use Custom Attribute to intercept call to Action</title>
      <description>I was thinking that it would be good to have certain MVC Actions run some common code every time they are called. Naturally we could just call a common method within our Action methods, but that would not be MVC sexeh. After all, we use special Attributes such as [Authorize] and [HttpPost] to interc &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://zootfroot.blogspot.com/2010/08/aspnet-mvc-2-controller-use-custom.html</link>
      <source url="http://zootfroot.blogspot.com/">DaddyCode Team Blog</source>
      <author>James McCormack </author>
      <dc:creator>James McCormack </dc:creator>
      <guid isPermaLink="False">350634163c0d7113aceff058aeaf9279</guid>
      <pubDate>Tue, 10 Aug 2010 21:38:00 GMT</pubDate>
    </item>
    <item>
      <title>Minify HTML with .NET MVC ActionFilter</title>
      <description>To make our site a tight as possible, I thought we’d explore the idea of removing the white space in our generated HTML. I’ve had this idea for a long time, but after reading @hugoware post about removing white space, I decided to implement it in my own projects. As with any good code, let’s stand o &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://arranmaclean.wordpress.com/2010/08/10/minify-html-with-net-mvc-actionfilter/</link>
      <source url="http://arranmaclean.wordpress.com/">Arran Maclean</source>
      <author>ArranM</author>
      <dc:creator>ArranM</dc:creator>
      <guid isPermaLink="False">4699962070ba752398c8a276a79b0e60</guid>
      <pubDate>Mon, 09 Aug 2010 21:55:00 GMT</pubDate>
    </item>
    <item>
      <title>Google and Yahoo Add to Calendar Html Helpers for &lt;b&gt;Asp.net MVC&lt;/b&gt; &lt;b&gt;...&lt;/b&gt;</title>
      <description>I've been working on implementing some iCal functionality for the my gig guide website – Gigpig so users could easily add concert dates to their calendars.&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://lukencode.com/2010/08/09/google-and-yahoo-add-to-calendar-html-helpers-for-asp-net-mvc/</link>
      <author>Luke Lowrey</author>
      <dc:creator>Luke Lowrey</dc:creator>
      <guid isPermaLink="False">http://lukencode.com/2010/08/09/google-and-yahoo-add-to-calendar-html-helpers-for-asp-net-mvc/</guid>
      <pubDate>Mon, 09 Aug 2010 04:11:42 GMT</pubDate>
    </item>
    <item>
      <title>With Each Step Forward, Microsoft Takes Two Back</title>
      <description>Today I was browsing a Microsoft published document on creating ASP.NET Web Pages using the Razor Syntax and to my surprise I found this gem on page 65. @{ var db = Database.OpenFile("SmallBakery.sdf"); var selectQueryString = "SELECT * FROM Products ORDER BY Name"; }    &lt; &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://coderjournal.com/2010/08/with-each-step-forward-microsoft-takes-two-back/</link>
      <source url="http://coderjournal.com/">Nick Berardi's Coder Journal</source>
      <author>Nick Berardi</author>
      <dc:creator>Nick Berardi</dc:creator>
      <guid isPermaLink="False">5232276dcd8324bf122c3ef3ea4a7320</guid>
      <pubDate>Mon, 09 Aug 2010 02:09:00 GMT</pubDate>
    </item>
    <item>
      <title>Using WebMatrix to Create a Consistent Layout w/Razor Content Blocks &amp; Layout Pages</title>
      <description>One of the first things we need to do when creating the UI for a website or web application is setup the look, feel and layout of the site. Classic ASP and PHP developers recognize include files as a way to do this, while ASP.NET Web Forms &amp; MVC developers use Master Pages. Razor however, allows you &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://rachelappel.com/webmatrix/using-webmatrix-to-create-a-consistent-layout-w-razor-content-blocks-amp-layout-pages/</link>
      <source url="http://rachelappel.com/">Rachel Appel</source>
      <author>rachel</author>
      <dc:creator>rachel</dc:creator>
      <guid isPermaLink="False">d89fbff0b67cbdc61cde07f40c3e9a10</guid>
      <pubDate>Mon, 09 Aug 2010 00:50:00 GMT</pubDate>
    </item>
    <item>
      <title>ServiceLocator in &lt;b&gt;ASP.NET MVC&lt;/b&gt; 3 Preview 3 – Part 1 - Coding N Design</title>
      <description>For past couple of days I was checking out features of the new &lt;b&gt;ASP.NET MVC&lt;/b&gt; Preview 3.There are couple of interesting new additions like integration with the new Razor viewengine,improvements in Model Validation,AJAX support and ...&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://codingndesign.com/blog/?p=164</link>
      <author>sankarsan</author>
      <dc:creator>sankarsan</dc:creator>
      <guid isPermaLink="False">http://codingndesign.com/blog/?p=164</guid>
      <pubDate>Sun, 08 Aug 2010 04:31:26 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC 3 and Custom Extensions</title>
      <description>&lt;p&gt;When playing with the latest &lt;a href="http://aspnet.codeplex.com/wikipage?title=Road%20Map&amp;amp;referringTitle=MVC" target="_blank"&gt;ASP.NET MVC 3 Preview 1&lt;/a&gt; bits, some people have mentioned their dislike of the .&lt;font size="2" face="Courier New"&gt;cshtml&lt;/font&gt; extension used for the “razor” view engine that comes with &lt;a href="http://aspnet.codeplex.com/wikipage?title=Road%20Map&amp;amp;referringTitle=MVC" target="_blank"&gt;ASP.NET MVC 3&lt;/a&gt; and also &lt;a href="http://www.asp.net/webmatrix" target="_blank"&gt;WebMatrix&lt;/a&gt;. Well there are a number of ways you can change this. For the purposes of learning and tinkering, I decided to try and register a new view engine using the new Dependency Injection support within ASP.NET MVC 3.&lt;/p&gt;  &lt;p&gt;So, in the &lt;font size="2" face="Courier New"&gt;Global.asax.cs&lt;/font&gt; file I did this:&lt;/p&gt;  &lt;pre&gt;protected void Application_Start()&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; AreaRegistration.RegisterAllAreas();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; IUnityContainer container = new UnityContainer();&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; container.RegisterInstance&amp;lt;IControllerFactory&amp;gt;(new UnityControllerFactory(container));&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; container.RegisterType&amp;lt;IViewEngine, TestViewEngine&amp;gt;();&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; UnityMvcServiceLocator svcLocator = new UnityMvcServiceLocator(container);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; MvcServiceLocator.SetCurrent(svcLocator);&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RegisterGlobalFilters(GlobalFilters.Filters);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RegisterRoutes(RouteTable.Routes);&lt;br /&gt;}&lt;/pre&gt;

&lt;p&gt;&lt;em&gt;Note: Previously (and this options is still available), you would register your custom view engine by adding it to the existing Engines collections like so:&lt;/em&gt;&lt;/p&gt;

&lt;pre&gt;&lt;em&gt;ViewEngines.Engines.Add(new TestViewEngine());&lt;br /&gt;&lt;/em&gt;&lt;/pre&gt;

&lt;p&gt;My Custom view engine looked like this:&lt;/p&gt;

&lt;pre&gt;public class TestViewEngine : VirtualPathProviderViewEngine&lt;br /&gt;{&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; public TestViewEngine()&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.AreaViewLocationFormats = new string[] { &amp;quot;~/Areas/{2}/Views/{1}/{0}.glav&amp;quot;, &amp;quot;~/Areas/{2}/Views/Shared/{0}.glav&amp;quot; };&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.AreaMasterLocationFormats = new string[] { &amp;quot;~/Areas/{2}/Views/{1}/{0}.glav&amp;quot;, &amp;quot;~/Areas/{2}/Views/Shared/{0}.glav&amp;quot; };&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.AreaPartialViewLocationFormats = new string[] { &amp;quot;~/Areas/{2}/Views/{1}/{0}.glav&amp;quot;, &amp;quot;~/Areas/{2}/Views/Shared/{0}.glav&amp;quot; };&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.ViewLocationFormats = new string[] { &amp;quot;~/Views/{1}/{0}.glav&amp;quot;, &amp;quot;~/Views/Shared/{0}.glav&amp;quot; };&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.MasterLocationFormats = new string[] { &amp;quot;~/Views/{1}/{0}.glav&amp;quot;, &amp;quot;~/Views/Shared/{0}.glav&amp;quot; };&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; base.PartialViewLocationFormats = new string[] { &amp;quot;~/Views/{1}/{0}.glav&amp;quot;, &amp;quot;~/Views/Shared/{0}.glav&amp;quot; };&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected override IView CreatePartialView(ControllerContext controllerContext, string partialPath)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new CshtmlView(partialPath, &amp;quot;&amp;quot;);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; protected override IView CreateView(ControllerContext controllerContext, string viewPath, string masterPath)&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return new CshtmlView(viewPath, masterPath);&lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;This view engine implementation looked for a view extension of ‘&lt;font size="2" face="Courier New"&gt;.glav&lt;/font&gt;’ and invokes the “razor” view to parse the document/page (&lt;em&gt;CshtmlView&lt;/em&gt;)&lt;/p&gt;

&lt;p&gt;ASP.NET MVC 3 will use the &lt;font size="2" face="Courier New"&gt;MvcServiceLocator&lt;/font&gt; that we have supplied, and call the ‘&lt;font size="2" face="Courier New"&gt;GetAllInstances’ &lt;/font&gt;method when determining what classes implement &lt;font size="2" face="Courier New"&gt;IViewEngine&lt;/font&gt; so that it can invoke the correct view engine.&lt;/p&gt;

&lt;p&gt;By default, ASP.NET MVC 3 has the &lt;font size="2" face="Courier New"&gt;System.Web.Mvc.WebFormViewEngine&lt;/font&gt; and the &lt;font size="2" face="Courier New"&gt;System.Web.Mvc.CshtmlViewEngine&lt;/font&gt; registered. We are adding a new custom view engine to the mix by registering it with the service locator that ASP.NET MVC uses ( &lt;font size="2" face="Courier New"&gt;MvcServiceLocator&lt;/font&gt; ). When ASP.NET MVC goes looking for a view engine it will use the &lt;font size="2" face="Courier New"&gt;MvcServiceLocator&lt;/font&gt; to get all instances of &lt;font size="2" face="Courier New"&gt;IViewEngine&lt;/font&gt; (via a call to ‘&lt;font size="2" face="Courier New"&gt;GetAllInstances’ &lt;/font&gt;) in order to try and satisfy the request to process/render a particular view.&lt;/p&gt;

&lt;p&gt;Now all this theory is good and well, and I thought it would work however it didn’t. One of the issues with Unity (and thats what I was basing my testing on since that was the example provided with ASP.NET MVC 3) is the the ' &lt;font size="2" face="Courier New"&gt;MvcServiceLocator.GetAllInstances&lt;/font&gt; ‘ method, calls the &lt;font size="2" face="Courier New"&gt;ResolveAll&lt;/font&gt; method of the &lt;font size="2" face="Courier New"&gt;UnityContainer&lt;/font&gt;. Now this *only* returns all instances if they have been registered by name, so I had to change one line of my code in the &lt;font size="2" face="Courier New"&gt;Global.asax.cs&lt;/font&gt; from:&lt;/p&gt;

&lt;pre&gt;container.RegisterType&amp;lt;IViewEngine, TestViewEngine&amp;gt;();&lt;/pre&gt;

&lt;p&gt;to&lt;/p&gt;

&lt;pre&gt;container.RegisterType&amp;lt;IViewEngine, TestViewEngine&amp;gt;(&amp;quot;test&amp;quot;);&lt;br /&gt;&lt;/pre&gt;

&lt;p&gt;and it all worked and my new engine was invoked. Apparently this is known behaviour with Unity and may be changed in future versions, but for now, this is how it works.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: There are a few other ways of registering custom view engines and also associating file extensions with a particular view engine. This is just one way of doing it.&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://weblogs.asp.net/pglavich/archive/2010/08/08/asp-net-mvc-3-and-custom-extensions.aspx</link>
      <author>Glav</author>
      <dc:creator>Glav</dc:creator>
      <guid isPermaLink="False">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7581595</guid>
      <pubDate>Sat, 07 Aug 2010 21:00:00 GMT</pubDate>
    </item>
    <item>
      <title>ASP.NET MVC 2 &amp; StructureMap Error - ASP.NET MVC 2 - GetControllerInstance(System.Type)': no suitable method found to override - OH NO!</title>
      <description>Don't you just wish that when you port your applications from ASP.NET MVC 1 to ASP.NET MVC 2 and beyond that things just worked? If it did, I guess it would put some of us out of work. It is always nice to know that thanks to these updates and the technologies we employ to make our lives easier, we  &lt;b&gt;...&lt;/b&gt;&lt;br /&gt;&lt;div id="postfooter"&gt;&lt;hr /&gt;Thanks for subscribing to AspDotNetMVC.com.&lt;br /&gt;Make sure you checkout the newly added &lt;a href="http://aspdotnetmvc.com/books/" title="ASP.NET MVC Books Page"&gt;ASP.NET MVC Books page&lt;/a&gt;.&lt;/div&gt;</description>
      <link>http://iamdotnetcrazy.blogspot.com/2010/08/aspnet-mvc-2-structuremap-error-aspnet.html</link>
      <source url="http://iamdotnetcrazy.blogspot.com/">Ramblings Of A Crazy DotNet Woman</source>
      <author> (Kila Morton)</author>
      <dc:creator> (Kila Morton)</dc:creator>
      <guid isPermaLink="False">ee0bdd20e785db3fe007bb043c9a1133</guid>
      <pubDate>Sat, 07 Aug 2010 20:48:00 GMT</pubDate>
    </item>
  </channel>
</rss>

