<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Tim Scott&#039;s Blog</title>
	<atom:link href="http://lunaverse.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lunaverse.wordpress.com</link>
	<description>A Blog About .NET Software Development</description>
	<lastBuildDate>Fri, 24 May 2013 20:10:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lunaverse.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Tim Scott&#039;s Blog</title>
		<link>http://lunaverse.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lunaverse.wordpress.com/osd.xml" title="Tim Scott&#039;s Blog" />
	<atom:link rel='hub' href='http://lunaverse.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Introducing Slotted &#8211; The Ultimate Signup Tool</title>
		<link>http://lunaverse.wordpress.com/2012/06/26/introducing-slotted-the-ultimate-signup-tool/</link>
		<comments>http://lunaverse.wordpress.com/2012/06/26/introducing-slotted-the-ultimate-signup-tool/#comments</comments>
		<pubDate>Tue, 26 Jun 2012 00:09:45 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Startup]]></category>
		<category><![CDATA[ruby on rails]]></category>
		<category><![CDATA[signup sheets]]></category>
		<category><![CDATA[startup]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1325</guid>
		<description><![CDATA[For many years I have worked as a software developer for hire. More recently I have been struck with a hankering to create and market my own web applications.  After a couple of false starts (which I shall not mention further), I have created a product that I feel is worthy of announcing here. Introducing Slotted – the [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1325&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For many years I have worked as a software developer for hire. More recently I have been struck with a hankering to create and market my own web applications.  After a couple of false starts (which I shall not mention further), I have created a product that I feel is worthy of announcing here.</p>
<p>Introducing <a title="Slotted" href="http://slotted.co">Slotted</a> – <a href="http://slotted.co/features">the ultimate signup tool</a>.  </p>
<p>What is Slotted? Do you ever find yourself in charge of signing people up to do something / bring something / be somewhere / give something / etc.?  Then you should <a href="http://slotted.co/swiz/new">try</a> Slotted.  It&#8217;s designed to make the whole process as painless as possible &ndash; for you, but more importantly for the people you are asking to sign up.</p>
<p>I expect to continue contract work for the immediate future.  But there&#8217;s something else worth mentioning.  Slotted is written in <a href="http://rubyonrails.org">Ruby on Rails</a>.  Yes, I&#8217;m moving toward Rails in my contract work as well.  I think I&#8217;ll skip the obligatory &#8220;<a href="http://lucisferre.net/2012/02/08/dot-net-so-long-and-thanks-for-all-the-fish/">why</a>-<a href="http://hkarthik.me/blog/2011/11/11/my-reasons-for-leaving-net/">I</a>-<a href="http://lostechies.com/joeybeninghove/2010/06/23/from-alt-net-to-not-net/">am</a>-<a href="http://davybrion.com/blog/2010/08/first-impressions-of-the-ruby-community/">moving</a>-<a href="http://rubysource.com/why-should-a-net-developer-look-into-ruby-or-ruby-on-rails/">to</a>-<a href="http://lassala.net/2011/08/24/what-people-who-switched-to-ruby-from-net-have-to-say/">Rails</a>&#8221; post.</p>
<p>If you try Slotted, I would love to hear your feedback.  We are iterating fast on features and trying really hard to get usability right. You can always comment here, or <a href="http://slotted.co/contact">contact us</a> from the Slotted site.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1325/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1325/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1325&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2012/06/26/introducing-slotted-the-ultimate-signup-tool/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>Introducing FliptIt &#8211; A Feature Flipper For .NET</title>
		<link>http://lunaverse.wordpress.com/2012/04/26/introducing-fliptit-a-feature-flipper-for-net/</link>
		<comments>http://lunaverse.wordpress.com/2012/04/26/introducing-fliptit-a-feature-flipper-for-net/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 19:22:00 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1282</guid>
		<description><![CDATA[I&#8217;m working on an app where we recently needed to gradually roll out a feature region by region. My spider sense warned me, &#8220;Open-closed principal violation just ahead.&#8221; So I went looking for a feature flipper for .NET.  I couldn&#8217;t find one, so I created it.  I liked what I created, so I made it open source. [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1282&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m working on an app where we recently needed to gradually roll out a feature region by region. My spider sense warned me, &#8220;<a href="http://en.wikipedia.org/wiki/Open/closed_principle">Open-closed principal</a> violation just ahead.&#8221; So I went looking for a feature flipper for .NET.  I couldn&#8217;t find one, so I created it.  I liked what I created, so I made it open source.</p>
<p>Introducing <a href="https://github.com/timscott/flipit">FlipIt</a>.</p>
<p>FlipIt is a general purpose feature flipper for .NET.  It offers an easy way to deploy features and flip them off and on without touching code. In the very simplest case you flip the feature on/off for everyone all the time by changing a boolean setting. But it supports much more complex scenarios. For example, flip features:</p>
<ol>
<li>By user segment</li>
<li>Based attributes of business transaction (such as by region)</li>
<li>By time of day</li>
<li>At random (split testing anyone?)</li>
</ol>
<p>Really, you can flip features based on any condition imaginable and control those conditions over time without touching code.</p>
<p>Out of the box, FlipIt uses app settings, but it would be super easy to implement a different settings store and give the flipping power to an admin user.</p>
<p>Enjoy, and let me know what you think.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1282&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2012/04/26/introducing-fliptit-a-feature-flipper-for-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>Self-Hosting WebApi as a Windows Service with TopShelf</title>
		<link>http://lunaverse.wordpress.com/2012/03/30/self-hosting-webapi-as-a-windows-service-with-topshelf/</link>
		<comments>http://lunaverse.wordpress.com/2012/03/30/self-hosting-webapi-as-a-windows-service-with-topshelf/#comments</comments>
		<pubDate>Fri, 30 Mar 2012 17:24:16 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[WebApi]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1234</guid>
		<description><![CDATA[Are you using WebApi for your services. If not (and you&#8217;re a Microsoft shop), you should be. I&#8217;m creating a REST service. I want to host it on a machine without IIS.  No problem, WebApi supports self hosting.  But in production, it really needs to run as a Windows Service, not a console app.  How [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1234&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Are you using <a href="http://www.asp.net/web-api">WebApi</a> for your services. If not (and you&#8217;re a Microsoft shop), you should be.</p>
<p>I&#8217;m creating a REST service. I want to host it on a machine without IIS.  No problem, WebApi supports self hosting.  But in production, it really needs to run as a Windows Service, not a console app.  How to do that?  Enter <a href="http://topshelf-project.com/documentation/getting-started/">TopShelf</a>.  TopShelf makes it easy to host a service either in a console or as a Windows Service.</p>
<p>My service class.</p>
<div class="csharpcode"><!-- code formatted by http://manoli.net/csharpformat/ -->
<pre class="csharpcode"><span class="kwrd">public</span> <span class="kwrd">class</span> MyWebApiService
{
    <span class="kwrd">private</span> <span class="kwrd">readonly</span> HttpSelfHostServer server;
    <span class="kwrd">private</span> <span class="kwrd">readonly</span> HttpSelfHostConfiguration config;

    <span class="kwrd">public</span> MyWebApiService(<span class="kwrd">string</span> baseAddress, IDependencyResolver resolver)
    {
        config = <span class="kwrd">new</span> HttpSelfHostConfiguration(baseAddress);
        config.ServiceResolver.SetResolver(resolver);
        config.Filters.Add(<span class="kwrd">new</span> ExceptionFilter());
        config.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
        config.Routes.MapHttpRoute(
            name: <span class="str">"DefaultApi"</span>,
            routeTemplate: <span class="str">"api/{controller}/{id}"</span>,
            defaults: <span class="kwrd">new</span> { id = RouteParameter.Optional }
        );
        server = <span class="kwrd">new</span> HttpSelfHostServer(config);
    }

    <span class="kwrd">public</span> <span class="kwrd">void</span> Start()
    {
        server.OpenAsync();
    }

    <span class="kwrd">public</span> <span class="kwrd">void</span> Stop()
    {
        server.CloseAsync();
        server.Dispose();
    }
}</pre>
</div>
<p>And here&#8217;s how to make that service run under TopShelf.</p>
<div class="csharpcode"><!-- code formatted by http://manoli.net/csharpformat/ -->
<pre class="csharpcode"><span class="kwrd">static</span> <span class="kwrd">void</span> Main(<span class="kwrd">string</span>[] args)
{
    <span class="kwrd">var</span> container = Bootstrapper.RegisterDependencies();
    <span class="kwrd">var</span> resolver = <span class="kwrd">new</span> StructureMapDependencyResolver(container);

    HostFactory.Run(x =&gt;
    {
        x.Service&lt;MyWebApiService&gt;(s =&gt;
        {
            s.SetServiceName(<span class="str">"My Web Api Service"</span>);
            s.ConstructUsing(name =&gt; <span class="kwrd">new</span> MyWebApiService(BASE_ADDRESS, resolver));
            s.WhenStarted(svc =&gt; svc.Start());
            s.WhenStopped(svc =&gt; svc.Stop());
        });
        x.RunAsLocalSystem();
        x.SetDescription(<span class="str">"Does really cool stuff."</span>);
        x.SetDisplayName(<span class="str">"My Web Api Service"</span>);
        x.SetServiceName(<span class="str">"MyWebApiService"</span>);
    });
}</pre>
</div>
<p>To create a Windows Service, run your console app with a switch.</p>
<div class="csharpcode">
<pre class="csharpcode">
MyWebApiService.SelfHost.exe install</pre>
</div>
<p>That&#8217;s it! Enjoy.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1234/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1234/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1234&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2012/03/30/self-hosting-webapi-as-a-windows-service-with-topshelf/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>FluentHtml Gets HTML 5 Support</title>
		<link>http://lunaverse.wordpress.com/2011/08/16/fluenthtml-gets-html-5-support/</link>
		<comments>http://lunaverse.wordpress.com/2011/08/16/fluenthtml-gets-html-5-support/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 23:20:05 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[FluentHtml]]></category>
		<category><![CDATA[MS MVC]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1205</guid>
		<description><![CDATA[We have added HTML5 support to FluentHtml in the MvcContrib project.  Specifically, we added support for most of the new input types, input attributes and the new datalist element.  Now you can do like so: @this.DataList("countriesList").Options(countries) @this.TextBox(x =&#62; x.Countries).List("countriesList").Autofocus() @this.SearchBox(x =&#62; x.Term).Placeholder("Enter search terms").Novalidate(shouldValidate) @this.DatePicker(x =&#62; x.CompletedDate).Required(true).Limit(minDate, maxDate) //min, max @this.TimePicker(x =&#62; x.StartTime).Limit(TimeSpan.FromHours(10), TimeSpan.FromHours(14), 60) [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1205&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>We have added HTML5 support to FluentHtml in the <a href="http://mvccontrib.codeplex.com/">MvcContrib</a> project.  Specifically, we added support for most of the new input types, input attributes and the new datalist element.  Now you can do like so:</p>
<div class="csharpcode">
<pre class="csharpcode">@<span class="kwrd">this</span>.DataList(<span class="str">"countriesList"</span>).Options(countries)
@<span class="kwrd">this</span>.TextBox(x =&gt; x.Countries).List(<span class="str">"countriesList"</span>).Autofocus()
@<span class="kwrd">this</span>.SearchBox(x =&gt; x.Term).Placeholder(<span class="str">"Enter search terms"</span>).Novalidate(shouldValidate)
@<span class="kwrd">this</span>.DatePicker(x =&gt; x.CompletedDate).Required(<span class="kwrd">true</span>).Limit(minDate, maxDate) <span class="rem">//min, max</span>
@<span class="kwrd">this</span>.TimePicker(x =&gt; x.StartTime).Limit(TimeSpan.FromHours(10), TimeSpan.FromHours(14), 60) <span class="rem">//min, max, step</span>
@<span class="kwrd">this</span>.NumberBox(x =&gt; x.CompletedDate).Limit(0, 100, 10) <span class="rem">//min, max, step</span>
@<span class="kwrd">this</span>.EmailBox(x =&gt; x.Email).Multiple(<span class="kwrd">true</span>).Autocomplete(<span class="kwrd">false</span>)
@<span class="kwrd">this</span>.SubmitButton(<span class="str">"Submit"</span>).TargetBlank()</pre>
</div>
<p>The above is just an example.  There&#8217;s a lot more too.  You know of course that a lot of this stuff is <a href="http://en.wikipedia.org/wiki/Comparison_of_layout_engines_(HTML5)#Form_elements_and_attributes">not yet supported by many browsers</a>.  But it&#8217;s coming, and we wanted to be ready.  It might be some time before this is in the NuGet distro, but you can build the trunk and try it out now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1205&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2011/08/16/fluenthtml-gets-html-5-support/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>MvcContrib.FluentHtml on NuGet</title>
		<link>http://lunaverse.wordpress.com/2010/12/31/mvccontrib-fluenthtml-on-nuget/</link>
		<comments>http://lunaverse.wordpress.com/2010/12/31/mvccontrib-fluenthtml-on-nuget/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 14:55:14 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[FluentHtml]]></category>
		<category><![CDATA[MS MVC]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1180</guid>
		<description><![CDATA[Okay, I&#8217;m a little slow getting this out.  MvcContrib.FluentHtml is now available via NuGet.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1180&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Okay, I&#8217;m a little slow getting this out.  <a href="http://mvccontrib.codeplex.com/">MvcContrib</a>.<a href="http://lunaverse.wordpress.com/2008/12/13/mvcfluenthtml-moved-to-mvccontrib/">FluentHtml</a> is now available via <a href="http://nuget.codeplex.com/">NuGet</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1180/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1180/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1180&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2010/12/31/mvccontrib-fluenthtml-on-nuget/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>MvcContrib.FluentHtml With Razor</title>
		<link>http://lunaverse.wordpress.com/2010/12/12/mvccontrib-fluenthtml-with-razor/</link>
		<comments>http://lunaverse.wordpress.com/2010/12/12/mvccontrib-fluenthtml-with-razor/#comments</comments>
		<pubDate>Sun, 12 Dec 2010 19:44:08 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1185</guid>
		<description><![CDATA[MvcContrib.FluentHtml works with the Razor view engine.  To use it now, you have two choices.  You can build from the trunk, or copy this class into your MVC 3 web app.  Then put the following line in your markup file (with your view&#8217;s model as the generic parameter): @inherits MvcContrib.FluentHtml.ModelWebViewPage&#60;MyApp.WebUI.Models.MyModel&#62; If you decided to put [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1185&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://mvccontrib.codeplex.com/">MvcContrib</a>.<a href="http://lunaverse.wordpress.com/2008/12/13/mvcfluenthtml-moved-to-mvccontrib/">FluentHtml</a> works with the Razor view engine.  To use it now, you have two choices.  You can build from the trunk, or copy <a href="http://mvccontrib.codeplex.com/SourceControl/changeset/view/49cd9d3cb038#src%2fMvcContrib.FluentHtml%2fModelWebViewPage.cs">this class</a> into your MVC 3 web app.  Then put the following line in your markup file (with your view&#8217;s model as the generic parameter):</p>
<p><!-- code formatted by http://manoli.net/csharpformat/ --></p>
<pre class="csharpcode">@inherits MvcContrib.FluentHtml.ModelWebViewPage<span class="kwrd">&lt;</span><span class="html">MyApp.WebUI.Models.MyModel</span><span class="kwrd">&gt;</span></pre>
<p>If you decided to put the ModelWebViewPage class into your app directly, of course, adjust the namespace accordingly.  You should also remove any @model directive because the @inherits directive tells the view what the model is.</p>
<p>You probably also want to add this to the namespaces section of your Views web.config file (not the app level web.config):</p>
<p><!-- code formatted by http://manoli.net/csharpformat/ --></p>
<pre class="csharpcode"><span class="kwrd">&lt;</span><span class="html">add</span> <span class="attr">namespace</span><span class="kwrd">="MvcContrib.FluentHtml"</span><span class="kwrd">/&gt;</span></pre>
<p>Use the fluent helpers just like you would in an aspx file, except with Razor syntax of course.  For example:<br />
<!-- code formatted by http://manoli.net/csharpformat/ --></p>
<pre class="csharpcode">@<span class="kwrd">this</span>.TextBox(x =&gt; x.FirstName).Id(<span class="str">"firstName"</span>).Class(<span class="str">"someClass"</span>).AutoLabel()</pre>
<p>Enjoy!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1185/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1185/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1185&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2010/12/12/mvccontrib-fluenthtml-with-razor/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>Better Do: My Second iPhone App</title>
		<link>http://lunaverse.wordpress.com/2010/10/29/better-do-my-second-iphone-app-available/</link>
		<comments>http://lunaverse.wordpress.com/2010/10/29/better-do-my-second-iphone-app-available/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 23:45:12 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1132</guid>
		<description><![CDATA[WARNING: Shameless commercial promotion below. Last spring I revealed my alter-ego as an iPhone app developer when I announced my first iPhone app, Bill It.  Today I am proud to announce that my second iPhone app, Better Do, is for sale in the App Store.  It&#8217;s free.  There are ads, which can be turned off [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1132&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>WARNING: Shameless commercial promotion below.</p>
<p><a href="http://lunaverse.files.wordpress.com/2010/10/icon-721.png"><img class="alignnone size-full wp-image-1136" title="Icon-72" src="http://lunaverse.files.wordpress.com/2010/10/icon-721.png?w=72&#038;h=72" alt="Better Do logo" width="72" height="72" /></a></p>
<p>Last spring I revealed my alter-ego as an iPhone app developer when I announced my first iPhone app, <a href="../2010/04/23/bill-it-iphone-app-time-entry-on-the-go-quickbooks-integration">Bill It</a>.  Today I am proud to announce that my second iPhone app, Better Do, is <a href="http://itunes.apple.com/us/app/better-do/id391311116?mt=8">for sale in the App Store</a>.  It&#8217;s free.  There are ads, which can be turned off for a low price.</p>
<p>Better Do is a To Do list app.  Yeah, I know, another To Do list app?  Aren&#8217;t there hundreds of those?  Indeed there are.  But none of them work for me.  There are generally two types of To Do list apps: too-snazzy and too-simple.  The first type promises to totally manage all of your tasks as long as your enter a whole bunch of information, including a fixed due date for each.  The second type is a basic list, maybe with categories, and maybe it lets you re-order tasks.</p>
<p>Better Do assumes that tasks fall into typical time-frames.  When you think of a task, you want to write it down before you forget.  At that moment you don&#8217;t care about setting an exact due date, but you do have an idea of the time-frame:</p>
<ul>
<li>Today (Go to post office, Reply to Jim)</li>
<li>Tonight (Call mom, Take out the trash)</li>
<li>This Weekend (Fix the fence, Holiday shopping)</li>
<li>Some Day (Learn Japanese)</li>
</ul>
<p>At the start of a day you might want to review all your tasks and move certain items to Today.  But if you&#8217;re like me, as the day unfolds you realize that maybe you were a little&#8230;ambitious.  You decide to push certain things.  Now you don&#8217;t want those deferred tasks staring you in the face all day, do you?  No problem.  Move them to:</p>
<ul>
<li>Tomorrow</li>
<li>This Week</li>
<li>Next Week</li>
</ul>
<p>My favorite thing about Better Do is that it&#8217;s very easy to move, sort and generally mange your tasks with minimal taps.</p>
<p>Give it a try, and please rate it or review it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1132/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1132/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1132&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2010/10/29/better-do-my-second-iphone-app-available/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>

		<media:content url="http://lunaverse.files.wordpress.com/2010/10/icon-721.png" medium="image">
			<media:title type="html">Icon-72</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting Started With Should Assertion Library</title>
		<link>http://lunaverse.wordpress.com/2010/10/08/getting-started-with-should-assertion-library/</link>
		<comments>http://lunaverse.wordpress.com/2010/10/08/getting-started-with-should-assertion-library/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 19:04:44 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=1037</guid>
		<description><![CDATA[What Is It? Should Assertion Library (&#8220;Should&#8221; for short) is a library of test assertion methods for .NET.  It is totally independent of, and completely compatible with any testing framework.  It was created by Eric Hexter, and I subsequently added a fluent interface which I ported from ShouldIt.  ShouldIt is now deprecated. Should comes in [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1037&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h2>What Is It?</h2>
<p><a href="http://should.codeplex.com/">Should Assertion Library</a> (&#8220;Should&#8221; for short) is a library of test assertion methods for .NET.  It is totally independent of, and completely compatible with any testing framework.  It was created by <a href="http://www.lostechies.com/blogs/hex/default.aspx">Eric Hexter</a>, and I subsequently added a fluent interface which I ported from ShouldIt.  ShouldIt is <a href="http://lunaverse.wordpress.com/2010/10/08/goodbye-shouldit-hello-should-assertion-library/">now deprecated</a>.</p>
<p>Should comes in two flavors:</p>
<ul>
<li>normal (Should.dll)</li>
<li>fluent (Should.Fluent.dll).</li>
</ul>
<h2>Get It</h2>
<p>You can get the latest binaries from <a href="http://nupack.codeplex.com/">NuPack</a> or the <a href="http://should.codeplex.com/releases/view/45655">project site</a>.</p>
<p>By the way, if you haven&#8217;t tried NuPack yet, go get it right now!  You&#8217;ve got it?  Okay, open the Package Management Console and enter:</p>
<pre class="csharpcode">&gt; Install-Package Should</pre>
<p>or</p>
<pre class="csharpcode">&gt; Install-Package ShouldFluent</pre>
<p>This will install Should as a package in the current solution.  You probably want to use either the fluent API or the normal API in any given test project – but not both.  Choosing one or the other will promote a consistent practice within your team.  Obviously, <a href="http://lunaverse.wordpress.com/2009/07/17/740/">I prefer the fluent API</a>.</p>
<h2>Use It</h2>
<p>There&#8217;s not much to say about usage.  It&#8217;s really pretty intuitive and discoverable.  Just start typing &#8220;.Should&#8221; after your actual object, and you will see what&#8217;s available.  To give you a taste, here&#8217;s a simple example:</p>
<div class="csharpcode">
<pre class="csharpcode">actual.ShouldNotBeNull();
actual.ShouldBeType&lt;<span class="kwrd">Foo</span>&gt;();
actual.ShouldBeSameAs(expected);</pre>
</div>
<p>Or fluently:</p>
<div class="csharpcode">
<pre class="csharpcode">actual
    .Should().Not.Be.Null()
    .Should().Be.OfType&lt;<span class="kwrd">Foo</span>&gt;()
    .Should().Be.SameAs(expected);</pre>
</div>
<p>There are several examples of both the normal and the fluent syntax <a href="http://should.codeplex.com/">here</a>.</p>
<p>Enjoy!</p>
<p><em><strong>A Note To ShouldIt Users</strong>: If you have been using ShouldIt, just remove the ShouldIt DLLs, add Should.Fluent.dll, and change the namespaces.  Everything should just work.  Of course depending on which test framework you were using with ShouldIt, the underlying assertion behavior could change slightly.  It should be pretty easy to spot the differences and make any small corrections as needed.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/1037/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/1037/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=1037&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2010/10/08/getting-started-with-should-assertion-library/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>Goodbye ShouldIt, Hello Should Assertion Library</title>
		<link>http://lunaverse.wordpress.com/2010/10/08/goodbye-shouldit-hello-should-assertion-library/</link>
		<comments>http://lunaverse.wordpress.com/2010/10/08/goodbye-shouldit-hello-should-assertion-library/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 19:00:46 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Test Driven Development]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=983</guid>
		<description><![CDATA[First There Was ShouldIt Almost a year and a half ago I created ShouldIt.   Soon after I added a fluent API.  My goal was to create a test assertion library that would be portable across all major test frameworks.  This would allow me to move from project to project using the same nice test [&#8230;]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=983&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h2>First There Was ShouldIt</h2>
<p>Almost a year and a half ago I created <a href="http://lunaverse.wordpress.com/2009/05/31/rusable-should-extensions/">ShouldIt</a>.   Soon after I added a <a href="http://lunaverse.wordpress.com/2009/07/17/740/">fluent API</a>.  My goal was to create a test assertion library that would be portable across all major test frameworks.  This would allow me to move from project to project using the same nice test assertions without the sick feeling I was getting from copy-paste reuse.  So I created the API, sprinkled in a little <a href="http://mef.codeplex.com/">MEF</a>, stirred, and ShouldIt was born.  It felt really good.</p>
<p>My joy was dampened however by one nagging issue.  Although ShouldIt plugged nicely into any framework I might ever use, it carried with it a binary dependency to some particular version of each testing framework.  This made it really hard to distribute, and thus hard to achieve any kind of adoption.  This is probably why <a href="http://www.lostechies.com/blogs/hex/default.aspx">Eric Hexter</a> yawned when I told him about ShouldIt.  He went looking for a better way.</p>
<h2>Then Came Should</h2>
<p>Recently he found it, and created <a href="http://should.codeplex.com/">Should Assertion Library</a> (or &#8220;Should&#8221; for short) .  Whereas ShouldIt leveraged the assertion machinery of whatever test runner you might be using, Eric created a library with it&#8217;s own machinery, thus completely breaking any dependence on a testing framework.  On a side note, I had briefly considered doing this myself with ShouldIt.  I was cured of this notion by perusing the assertion source code in NUnit.  It is, uh, non-trivial.  So how did Eric pull it off?  Is he a more talented and dedicated programmer than I am?  Probably yes, but he did not create it either.  Rather, he forked the assertion machinery of <a href="http://xunit.codeplex.com/">xUnit</a> (with the blessings of the xUnit folks).  Brilliant!</p>
<h2>They Get Married</h2>
<p>When I saw Should Assertion Library I knew immediately that this was the way to go.  My only complaint was that ItUsedVeryLongPascalCaseNamedAssertionMethods.  Okay, you either love the fluent style of assertions or you hate it.  I <a href="http://lunaverse.wordpress.com/2009/07/17/740/">love it</a>, and I refuse to go back.  So I decided to see how hard it would be to port ShouldIt&#8217;s fluent API bits into Eric&#8217;s project.  It turned out to be very easy, so I suggested to Eric that Should Assertion Library might support two styles: fluent and long name.  He agreed, and very soon the Should.Fluent assembly was created.</p>
<p>More: <a href="http://lunaverse.wordpress.com/2010/10/08/getting-started-with-should-assertion-library/">Getting Started With Should Assertion Library</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/983/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/983/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=983&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2010/10/08/goodbye-shouldit-hello-should-assertion-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
		<item>
		<title>BDD With MSpec Presentation &#8211; Code and Slides Posted</title>
		<link>http://lunaverse.wordpress.com/2010/05/30/bdd-with-mspec-presentation-code-and-slides-posted/</link>
		<comments>http://lunaverse.wordpress.com/2010/05/30/bdd-with-mspec-presentation-code-and-slides-posted/#comments</comments>
		<pubDate>Sun, 30 May 2010 17:16:34 +0000</pubDate>
		<dc:creator>Tim Scott</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lunaverse.wordpress.com/?p=972</guid>
		<description><![CDATA[Jeff Lyon and I presented BDD With MSpec at Austin Code Camp earlier this month.  Finally I got around to posting the code and slides here.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=972&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Jeff Lyon and I presented <em><strong>BDD With MSpec</strong> </em>at <a href="http://codecamp.adnug.org/">Austin Code Camp</a> earlier this month.  Finally I got around to posting the code and slides <a href="http://code.google.com/p/austin-codecamp-2010/downloads/list?saved=1&amp;ts=1275239335">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lunaverse.wordpress.com/972/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lunaverse.wordpress.com/972/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lunaverse.wordpress.com&#038;blog=1049806&#038;post=972&#038;subd=lunaverse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lunaverse.wordpress.com/2010/05/30/bdd-with-mspec-presentation-code-and-slides-posted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/7bb15b284510700d32de5a68f190c6dc?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">tim</media:title>
		</media:content>
	</item>
	</channel>
</rss>
