<?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>Howard van Rooijen&#039;s Blog</title>
	<atom:link href="http://howard.vanrooijen.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://howard.vanrooijen.co.uk</link>
	<description>Work Smarter, Not Harder</description>
	<lastBuildDate>Tue, 12 Jul 2011 15:00:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='howard.vanrooijen.co.uk' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Howard van Rooijen&#039;s Blog</title>
		<link>http://howard.vanrooijen.co.uk</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://howard.vanrooijen.co.uk/osd.xml" title="Howard van Rooijen&#039;s Blog" />
	<atom:link rel='hub' href='http://howard.vanrooijen.co.uk/?pushpress=hub'/>
		<item>
		<title>On .NET Rocks! Talking about Sharp Architecture, Templify and StyleCop</title>
		<link>http://howard.vanrooijen.co.uk/2011/07/12/on-net-rocks-talking-about-sharp-architecture-templify-and-stylecop/</link>
		<comments>http://howard.vanrooijen.co.uk/2011/07/12/on-net-rocks-talking-about-sharp-architecture-templify-and-stylecop/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 15:00:26 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[StyleCop for ReSharper]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/?p=293</guid>
		<description><![CDATA[A few weeks ago Geoffrey Smith, the Sharp Architecture Development Lead and I were invited onto .NET Rocks! to be interviewed about the Sharp Architecture project. After we talked about Sharp Architecture &#8211; the conversation lead on to other open source projects I&#8217;ve been involved with such as Templify and StyleCop for ReSharper. You can listen to the show here.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=293&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago <a title="Geoffrey Smith" href="http://blog.sharparchitecture.net/author/GeoffreySmith.aspx" target="_blank">Geoffrey Smith</a>, the Sharp Architecture Development Lead and I were invited onto <a title=".NET Rocks!" href="http://www.dotnetrocks.com/" target="_blank">.NET Rocks!</a> to be interviewed about the <a href="http://www.sharparchitecture.net/" target="_blank">Sharp Architecture</a> project. After we talked about Sharp Architecture &#8211; the conversation lead on to other open source projects I&#8217;ve been involved with such as <a href="http://opensource.endjin.com/templify/" target="_blank">Templify</a> and <a href="http://stylecop.codeplex.com/" target="_blank">StyleCop for ReSharper</a>.</p>
<p>You can <a href="http://www.dotnetrocks.com/default.aspx?showNum=679" target="_blank">listen to the show here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/293/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/293/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/293/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=293&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2011/07/12/on-net-rocks-talking-about-sharp-architecture-templify-and-stylecop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>
	</item>
		<item>
		<title>StyleCop and StyleCop for ReSharper have merged</title>
		<link>http://howard.vanrooijen.co.uk/2011/04/06/stylecop-and-stylecop-for-resharper-have-merged/</link>
		<comments>http://howard.vanrooijen.co.uk/2011/04/06/stylecop-and-stylecop-for-resharper-have-merged/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 20:52:17 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/?p=290</guid>
		<description><![CDATA[See: http://blog.endjin.com/2011/04/stylecop-and-stylecop-for-resharper-have-merged/ for more info!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=290&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>See: <a href="http://blog.endjin.com/2011/04/stylecop-and-stylecop-for-resharper-have-merged/">http://blog.endjin.com/2011/04/stylecop-and-stylecop-for-resharper-have-merged/</a> for more info!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/290/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/290/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/290/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=290&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2011/04/06/stylecop-and-stylecop-for-resharper-have-merged/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>
	</item>
		<item>
		<title>StyleCop for ReSharper 5.1.14986.0000 Available</title>
		<link>http://howard.vanrooijen.co.uk/2011/01/12/stylecop-for-resharper-5-1-14986-0000-available/</link>
		<comments>http://howard.vanrooijen.co.uk/2011/01/12/stylecop-for-resharper-5-1-14986-0000-available/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 11:09:14 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[StyleCop for ReSharper]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/?p=282</guid>
		<description><![CDATA[There have been a few new releases of StyleCop for ReSharper in the last 2 weeks &#8211; I have been trying to track down and fix some of the more gnarly long standing bugs that have haunted this product &#8211; the two big ones are performance and memory usage. I&#8217;ve managed to make significant improvements [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=282&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There have been a few new releases of StyleCop for ReSharper in the last 2 weeks &#8211; I have been trying to track down and fix some of the more gnarly long standing bugs that have haunted this product &#8211; the two big ones are performance and memory usage. I&#8217;ve managed to make significant improvements in both areas by implementing some caching around intensive and repetitive operations, such as finding, loading and parsing stylecop settings files and also caching instances of internal objects that are expensive to create (both in terms of CPU cycles and I/O hits).</p>
<p>When approaching bits of performance tuning, I work like this:  the general approach I take is to put input / output trace-logging on all methods &#8211; this gives you a true picture of the application&#8217;s execution stack &#8211; the amount of calls it has to make to do something. Next I perform an operation in the application that will cause the code being monitored to execute, and then copy and paste the tracelog generated into Notepad++ and use the nesting of the log entries to see which methods are doing the most work and which methods are called the most times. These are the first two indicators of where your effort should go. Next apply caching, re-perform the operation, paste debug output into a new window and count how many less lines of output have been generated. It&#8217;s a very crude method &#8211; but work very well.</p>
<p>Before I started this exercise, StyleCop for ReSharper would generate something like 220 lines of debug output per keystroke within Visual Studio, this included 10s of I/O operations and expensive object creation. After doing the performance tuning spike this went down to less than 30 lines of debug output with no I/O and no expensive object creation.</p>
<p>The upside is that the feeling of &#8220;lag&#8221; you get while typing has gone and also the amount of managed memory used inside ReSharper does not balloon as it always has before. You should now be able to do a whole days coding without noticing any significant performance degradation.</p>
<p>As always you can find the latest release at: <a href="http://stylecopforresharper.codeplex.com/">http://stylecopforresharper.codeplex.com/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/282/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/282/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/282/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=282&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2011/01/12/stylecop-for-resharper-5-1-14986-0000-available/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>
	</item>
		<item>
		<title>Preview of StyleCop for ReSharper 5.1.14872.000 Available</title>
		<link>http://howard.vanrooijen.co.uk/2010/10/01/preview-of-stylecop-for-resharper-5-1-14872-000-available/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/10/01/preview-of-stylecop-for-resharper-5-1-14872-000-available/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 21:02:08 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[StyleCop for ReSharper]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/?p=275</guid>
		<description><![CDATA[This is a quite big release as it contains a feature that the development team have been craving since the plugin&#8217;s inception. When the StyleCop API was made public &#8211; to allow the community to build extensions and plugins &#8211; the first thing I did was to figure out how I could get StyleCop to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=275&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This is a quite big release as it contains a feature that the development team have been craving since the plugin&#8217;s inception.</p>
<p>When the StyleCop API was made public &#8211; to allow the community to build extensions and plugins &#8211; the first thing I did was to figure out how I could get StyleCop to run with every keystroke and translate this into ReSharper Highlighting info which would automatically display the location of any StyleCop violation &#8211; as my vision was to create a plugin that would give developers a MS Word Grammar / Spell Checker experience for Coding Standards violations.</p>
<p>StyleCop works by analysing a physical code file. If you run StyleCop from the Visual Studio context menu &#8211; it will save your current file and then read the contents and analyse it. In order for StyleCop for ReSharper to work on every keystroke &#8211; I had to add the ability for ReSharper to create a clone of the current file, in a temporary location and then get StyleCop to analyze it.</p>
<p>The main problem has been that with every keystroke in Visual Studio there is a small IO performance hit as this temporary file is written and then StyleCop performs another IO hit to read the file before analysis.</p>
<p>It was always our dream to be able to pass StyleCop a string representation of the the current file &#8211; to remove the IO performance hits. It&#8217;s taken several months and lots of hard work by Andy Reeves to implement an in memory analyzer feature for the now Open Source StyleCop project &#8211; which then allows StyleCop for ReSharper to pass in a string representation of the current document.</p>
<p>The performance improvement is quite staggering &#8211; violation highlighting is instant and any sense of lag is totally removed.</p>
<p>I really hope you enjoy this release &#8211; after almost 2 years we&#8217;re finally at the place I envisaged when I first set out to create this product.</p>
<p>The new release of StyleCop for ReSharper is <a title="Download StyleCop for ReSharper " href="http://stylecopforresharper.codeplex.com/releases/view/53169" target="_blank">available on CodePlex</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/275/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/275/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/275/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=275&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/10/01/preview-of-stylecop-for-resharper-5-1-14872-000-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>
	</item>
		<item>
		<title>StyleCop for ReSharper 5.0.14796.004 available</title>
		<link>http://howard.vanrooijen.co.uk/2010/07/06/stylecop-for-resharper-5-0-14796-004-available/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/07/06/stylecop-for-resharper-5-0-14796-004-available/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 11:35:13 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[StyleCop for ReSharper]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/?p=267</guid>
		<description><![CDATA[I&#8217;ve just released a beta of StyleCop for ReSharper 5.0.14796.004 which adds support for StyleCop 4.4.0.12 RC. This is an interim update as the RTM version of StyleCop 4.4.0.12 and ReSharper 5.1 will be available soon. Once they are I&#8217;ll release a further update. Work Smarter, Not Harder.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=267&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just<a href="http://stylecopforresharper.codeplex.com/releases/view/48392"> released a beta of StyleCop for ReSharper 5.0.14796.004</a> which adds support for <a href="http://stylecop.codeplex.com/releases/view/44839">StyleCop 4.4.0.12 RC</a>.</p>
<p>This is an interim update as the RTM version of StyleCop 4.4.0.12 and ReSharper 5.1 will be available soon. Once they are I&#8217;ll release a further update.</p>
<p>Work Smarter, Not Harder.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/267/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/267/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/267/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=267&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/07/06/stylecop-for-resharper-5-0-14796-004-available/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>
	</item>
		<item>
		<title>My exposure to Document Databases</title>
		<link>http://howard.vanrooijen.co.uk/2010/05/19/my-exposure-to-document-databases/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/05/19/my-exposure-to-document-databases/#comments</comments>
		<pubDate>Wed, 19 May 2010 12:12:08 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[Musings]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/blog/?p=218</guid>
		<description><![CDATA[Document Databases seem to be the current hot topic &#8211; or rather how to scale your data horizontally and cheaply. RavenDB looked like it could bring the .NET platform to the forefront until the commercial model was announced. Oren deserves to be paid for this product &#8211; but I can&#8217;t see the current strategy working. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=218&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Document Databases seem to be the current hot topic &#8211; or rather how to scale your data horizontally and cheaply. RavenDB looked like it could bring the .NET platform to the forefront until the commercial model was announced. Oren deserves to be paid for this product &#8211; but I can&#8217;t see the current strategy working. Most of the other popular DocDBs are free (or at least more proven) &#8211; but the pricing model is more akin to SQL Server than to MongoDB.</p>
<p>I thought the best way to represent my interest / exposure to document databases was via a graph. So here it is (click to enbiggen):</p>
<p><a href="http://howardvanrooijen.files.wordpress.com/2010/05/docdbs.png"><img class="aligncenter size-medium wp-image-236" title="docdbs" src="http://howardvanrooijen.files.wordpress.com/2010/05/docdbs.png?w=300&#038;h=148" alt="" width="300" height="148" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=218&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/05/19/my-exposure-to-document-databases/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>

		<media:content url="http://howardvanrooijen.files.wordpress.com/2010/05/docdbs.png?w=300" medium="image">
			<media:title type="html">docdbs</media:title>
		</media:content>
	</item>
		<item>
		<title>Pretty Check boxes and Radio buttons with jQuery</title>
		<link>http://howard.vanrooijen.co.uk/2010/05/12/pretty-check-boxes-and-radio-buttons-with-jquery/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/05/12/pretty-check-boxes-and-radio-buttons-with-jquery/#comments</comments>
		<pubDate>Wed, 12 May 2010 13:40:26 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[Musings]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/blog/?p=210</guid>
		<description><![CDATA[Sometimes you want to spice up HTML forms and present users with a nicer UI than plain old radio buttons and checkboxes. Aaron Weyenberg created a very nice bit of jQuery code which transforms check boxes into selectable blocks. Sean Foushee improved upon Aaron&#8217;s original pretty checkboxes adding support for radio buttons &#8211; and presented his [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=210&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes you want to spice up HTML forms and present users with a nicer UI than plain old radio buttons and checkboxes. <a href="http://aaronweyenberg.com/">Aaron Weyenberg</a> created a very nice bit of jQuery code which transforms check boxes into selectable blocks.</p>
<p><a href="mailto:smfoushee@gmail.com">Sean Foushee</a> improved upon Aaron&#8217;s <a href="http://aaronweyenberg.com/90/pretty-checkboxes-with-jquery">original pretty checkboxes</a> adding support for radio buttons &#8211; and presented his results in a <a href="http://combinedartsmedia.com/sean/check-boxes_and_radio-buttons/" target="_blank">very good step by step tutorial</a> -</p>
<p><a href="http://howardvanrooijen.files.wordpress.com/2010/05/pretty-checkboxes-and-radio-buttons.png"><img class="aligncenter size-full wp-image-248" title="pretty-checkboxes-and-radio-buttons" src="http://howardvanrooijen.files.wordpress.com/2010/05/pretty-checkboxes-and-radio-buttons.png?w=600" alt=""   /></a></p>
<p>To save you some time I&#8217;ve pulled out the instructions into a simple demo which you can <a href="http://howardvanrooijen.files.wordpress.com/2010/05/pretty-checkboxes-and-radio-buttons-rename-jpg-to-zip.jpg">download here</a> (you will need to rename it to a zip file)</p>
<p>All credits to <a href="http://aaronweyenberg.com/">Aaron Weyenberg</a> &amp; <a href="mailto:smfoushee@gmail.com">Sean Foushee</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/210/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=210&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/05/12/pretty-check-boxes-and-radio-buttons-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>

		<media:content url="http://howardvanrooijen.files.wordpress.com/2010/05/pretty-checkboxes-and-radio-buttons.png" medium="image">
			<media:title type="html">pretty-checkboxes-and-radio-buttons</media:title>
		</media:content>
	</item>
		<item>
		<title>Ordnance Survey&#8217;s GB Postcode to Longitude / Latitude Dataset</title>
		<link>http://howard.vanrooijen.co.uk/2010/05/05/ordnance-surveys-gb-postcode-to-longitude-latitude-dataset/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/05/05/ordnance-surveys-gb-postcode-to-longitude-latitude-dataset/#comments</comments>
		<pubDate>Wed, 05 May 2010 11:33:59 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoRM]]></category>
		<category><![CDATA[OS OpenData]]></category>
		<category><![CDATA[SQL Server 2008 Spatial]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/blog/?p=202</guid>
		<description><![CDATA[Apart from the crippling UK debt, another legacy Gordon Brown&#8217;s government has left the British people is the rather wonderful data.gov.uk &#8211; credit where credit is due, the PM realises that the UK &#8211; the country that had the first industrial revolution, created the Royal Society, discovered &#38; refined penicillin, created RADAR and the first modern [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=202&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Apart from the crippling UK debt, another legacy Gordon Brown&#8217;s government has left the British people is the rather wonderful <a href="http://data.gov.u" target="_blank">data.gov.uk</a> &#8211; credit where credit is due, the PM realises that the UK &#8211; the country that had the first industrial revolution, created the Royal Society, discovered &amp; refined penicillin, created RADAR and the first modern computer, has of late been lacking on the innovation front; so he decided to have a chat with Sir Tim Berners-Lee and asked him how the Government could utilise the Web.</p>
<p>Berners-Lee has for the last few years been working on his vision of the future direction of the web &#8211; the Semantic Web &#8211; or more rather Semantic Data &#8211; so of course the first thing he asked the PM to do was liberate all the silos of data the Government has to allow the tax payers to have access and start to innovate. One of the biggest surprises was that the PM announced that he would be opening up the Ordnance Survey&#8217;s data sets (which generates several million pounds in revenue for the Government).</p>
<p>Ordnance Survey have the richest GIS data of the UK &#8211; the detail fair exceeds anything like Google or Bing Maps. While I&#8217;m sure the announcement sent shock waves through companies like Experian and many other who have built their businesses around supplying UK GIS data especially the converted Postcode / address information &#8211; the mother-load &#8211; has yet to be released &#8211; although in the first wave the <a href="http://data.gov.uk/dataset/os-code-point-open" target="_self">Code-Point Open</a> dataset has been published. Code-Point Open contains over 1.6 million GB postcodes (Isle of Man, The Channel Islands and Northern Ireland are not yet included) and their Longitude &amp; Latitude. The data is available to <a href="https://www.ordnancesurvey.co.uk/opendatadownload/products.html">download in CSV format</a>.</p>
<p>This is a wonderful move and will benefit any UK developer who is interested in building in spatial services to their applications &#8211; but there is a massive difference between <em>raw data</em> and <em>usable data</em>. The Code-Point Open dataset comes in 120 separate CSV files, the data hasn&#8217;t been cleansed so some postcodes appear with &#8221; and others don&#8217;t (which would affect searching) and there are many fields which wouldn&#8217;t be strictly relevant for developers doing spatial work.</p>
<p>So I set about the task of importing the data SSIS to deal with the bulk load &#8211; using some <a href="http://consultingblogs.emc.com/jamiethomson/archive/2005/05/30/SSIS_3A00_-Enumerating-files-in-a-Foreach-loop.aspx" target="_blank">wonderful code supplied</a> by SSIS MVP (and ex-colleague) <a href="http://sqlblog.com/blogs/jamie_thomson/" target="_blank">Jamie Thompson</a>. Once the data was in SQL Server it&#8217;s was much easier to convert it into various other formats:</p>
<ul>
<li>SQL Server 2005* &#8211; with separate longitude / latitude columns.</li>
<li>SQL Server 2008* &#8211; utilising the Geography type for longitude / latitude.</li>
<li>MongoDB &#8211; in a format that works with <a href="http://www.mongodb.org/display/DOCS/Geospatial+Indexing" target="_blank">MongoDB&#8217;s geospatial functions</a>.</li>
</ul>
<p>These datasets, the SSIS package and the console app for importing into MongoDB are <a href="http://github.com/HowardvanRooijen/Ordnance-Survey-OpenData" target="_blank">available on my GitHub Repository</a>.</p>
<p>Work smart, not hard.</p>
<p>* These are large SQL Files &#8211; I would advice using the SQL Command Line to import the data &#8211; as the files are large enough to crash Management Studio, should you try to use it to open the files.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/202/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/202/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/202/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=202&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/05/05/ordnance-surveys-gb-postcode-to-longitude-latitude-dataset/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>
	</item>
		<item>
		<title>StyleCop for ReSharper 5.0.14714.1 now available for download</title>
		<link>http://howard.vanrooijen.co.uk/2010/04/15/stylecop-for-resharper-5-0-14714-1-now-available-for-download/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/04/15/stylecop-for-resharper-5-0-14714-1-now-available-for-download/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 21:18:38 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[StyleCop for ReSharper]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/blog/?p=195</guid>
		<description><![CDATA[It&#8217;s been a long time coming, but it&#8217;s finally here. You can now download StyleCop for ReSharper 5.0.14714.1 which works with both Visual Studio 2008 and Visual Studio 2010. Prerequisites: Visual Studio 2008 / Visual Studio 2010 ReSharper 5.0.1659.36 StyleCop 4.3.3.0 Installation: We are working on upgrading the WiX installer to give users a more seamless [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=195&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time coming, but it&#8217;s finally here. You can now<a title="Download StyleCop for ReSharper" href="http://stylecop.forresharper.org/download.htm" target="_blank"> download StyleCop for ReSharper 5.0.14714.1</a> which works with both Visual Studio 2008 and Visual Studio 2010.</p>
<h3>Prerequisites:</h3>
<div id="_mcePaste">
<ul>
<li>Visual Studio 2008 / Visual Studio 2010</li>
<li><a title="ReSharper" href="http://www.jetbrains.com/resharper/download/index.html" target="_blank">ReSharper 5.0.1659.36</a></li>
<li><a title="StyleCop" href="http://code.msdn.microsoft.com/sourceanalysis" target="_blank">StyleCop 4.3.3.0</a></li>
</ul>
</div>
<h3>Installation:</h3>
<p>We are working on upgrading the WiX installer to give users a more seamless installation and upgrade experience, but at the current time we are providing a .CMD file to install the plugin into the correct location. Please pick the appropriate .CMD file for your version of Visual Studio and also remember that <strong>YOU MUST UNBLOCK</strong> the <em>StyleCop.For.ReSharper.dll</em> (right click &gt; Properties &gt; Unblock) before you run the .CMD file. Windows automatically blocks any executable or dll that is downloaded from the internet and the plugin will not register with ReSharper until it is unblocked.</p>
<p><img class="alignnone size-full wp-image-196" title="unblock-scfr-dll" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/unblock-scfr-dll.png" alt="" width="377" height="515" /></p>
<p>Also please ensure that you import the StyleCop for ReSharper Code Style Settings file (&#8220;Import-StyleCop-for-ReSharper-Code-Style-Settings.xml&#8221;). Failure to import this file into ReSharper<em> (ReSharper &gt; Options &gt; Languages &gt; Common &gt; Code Style Settings &gt; Import</em>) will result in Quick Fixes and Code Clean Up Modules not working as expected.</p>
<p><img class="alignnone size-full wp-image-197" title="import-code-style-settings" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/import-code-style-settings.png" alt="" width="605" height="598" /></p>
<p>There are essentially no new features in this release &#8211; updating the codebase to use the ReSharper 5.0 API was a pretty monumental undertaking. The size and scope of the API changes for ReSharper 5.0 were huge &#8211; hats off to the ReSharper team for delivering another great iteration of a great product.</p>
<p>I have taken advantage of some of the new features of the ReSharper 5.0 API &#8211; my favourite being the ability to have custom icons for custom Quick Fixes &#8211; I took the opportunity to make use of the excellent <a title="Silk Icons" href="http://famfamfam.com/lab/icons/silk/" target="_blank">Silk Icons</a> add a bit of UI polish to StyleCop for ReSharper, for the options dialog:</p>
<p><img class="alignnone size-full wp-image-198" title="scfr-options" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/scfr-options.png" alt="" width="605" height="646" /></p>
<p>and Quick Fix Bulb Items:</p>
<p><img class="alignnone size-full wp-image-199" title="scfr-qf" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/scfr-qf.png" alt="" width="558" height="101" /></p>
<p>I think they make StyleCop for ReSharper integrate rather seamlessly into ReSharper.</p>
<p>Work Smart, Not Hard.</p>
<p>@<a title="Follow Howard van Rooijen on Twitter" href="http://twitter.com/howardvrooijen" target="_blank">HowardvRooijen</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=195&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/04/15/stylecop-for-resharper-5-0-14714-1-now-available-for-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/unblock-scfr-dll.png" medium="image">
			<media:title type="html">unblock-scfr-dll</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/import-code-style-settings.png" medium="image">
			<media:title type="html">import-code-style-settings</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/scfr-options.png" medium="image">
			<media:title type="html">scfr-options</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/scfr-qf.png" medium="image">
			<media:title type="html">scfr-qf</media:title>
		</media:content>
	</item>
		<item>
		<title>A .NET Developer Guide to: MongoDB and NoRM</title>
		<link>http://howard.vanrooijen.co.uk/2010/04/04/a-dotnet-developer-guide-to-mongodb-and-norm/</link>
		<comments>http://howard.vanrooijen.co.uk/2010/04/04/a-dotnet-developer-guide-to-mongodb-and-norm/#comments</comments>
		<pubDate>Sun, 04 Apr 2010 16:04:17 +0000</pubDate>
		<dc:creator>howardvanrooijen</dc:creator>
				<category><![CDATA[How To]]></category>
		<category><![CDATA[Musings]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Tinkerings]]></category>
		<category><![CDATA[Cassandra]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[HyperTable]]></category>
		<category><![CDATA[LINQ to XML]]></category>
		<category><![CDATA[Lucene]]></category>
		<category><![CDATA[MemcacheDB]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[NoRM]]></category>
		<category><![CDATA[Redis]]></category>
		<category><![CDATA[Solr]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Voldemort]]></category>

		<guid isPermaLink="false">http://howard.vanrooijen.co.uk/blog/?p=156</guid>
		<description><![CDATA[An updated version of this article is available at: A Step by Step Guide to MongoDB for .NET Developers During DDD8 I attended Neil Robbins &#8220;Hello Document Database&#8221; talk, where he demo&#8217;d how to get started with CouchDB. Although I have heard a lot about the NoSQL movement &#8211; this was the first time I [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=156&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>An updated version of this article is available at: <a href="http://blog.endjin.com/2010/12/a-step-by-step-guide-to-mongodb-for-net-developers/">A Step by Step Guide to MongoDB for .NET Developers</a></strong></p>
<p>During <a href="http://www.developerdeveloperdeveloper.com/ddd8/" target="_blank">DDD8</a> I attended <a href="http://neildoesdotnet.blogspot.com/" target="_blank">Neil Robbins</a> &#8220;<a href="http://www.developerdeveloperdeveloper.com/ddd8/ViewSession.aspx?SessionID=378" target="_blank">Hello Document Database</a>&#8221; talk, where he demo&#8217;d how to get started with <a href="http://couchdb.apache.org/" target="_blank">CouchDB</a>. Although I have heard a lot about the <a href="http://en.wikipedia.org/wiki/NoSQL" target="_blank">NoSQL movement</a> &#8211; this was the first time I had seen a document database in action. In the last 12 months I&#8217;ve been spending a lot of time with search technologies such as <a href="http://lucene.apache.org/" target="_blank">Lucene</a> and <a href="http://lucene.apache.org/solr/" target="_blank">Solr</a> (which have recently merged into one project), so the idea of storing data in a repository other than a relational database has been in the forefront of my mind for a while.</p>
<h3>2009 &#8211; the year ORM&#8217;s went mainstream</h3>
<p>For .NET Developers 2009 was the year that many made the leap from working with relational data via SQL &amp; Stored Procedures to using an Object Relational Mapper (ORM) Framework such as <a href="http://nhforge.org/" target="_blank">NHibernate</a> or Entity Framework. This is a great leap to make as it can massively reduce the development, deployment and maintenance burden &#8211; because using an ORM means you have essentially excised a whole layer of your application architecture. This generally throws DBA&#8217;s into cataleptic fits because by using an ORM you are eroding away their speciality and they will generally throw performance, security &amp; reliability arguments into the mix, but realistically for 99.99% of standard CRUD operations an ORM is a much better solution to hand cranked SQL.</p>
<p>The problem with ORM’s is the fundamental impedance mismatch between Object Orientation and Relational Databases – not only do you have to design each model adhering to the optimal rules of both domains but then you have deal the fundamental differences between deep object graphs and relational data; the best manifestation of this is the pain of mapping files &#8211; the bane of any NHibernate user&#8217;s life. This is one area where the &#8220;<em>convention over configuration</em>&#8221; mantra comes into its own and products like <a href="http://fluentnhibernate.org/" target="_blank">Fluent NHibernate</a> makes this process easier &#8211; although not entirely pain free.</p>
<h3>2010 &#8211; the year of NoSQL and Document Databases?</h3>
<p>This is where the <a href="http://nosql.mypopescu.com/" target="_blank">NoSQL movement</a> and in particular document databases hit the sweet spot. If you&#8217;ve been following the latest trend of conversations about scaling web applications for a global audience &#8211; you generally wont hear relational databases being mentioned because relational databases don&#8217;t scale well (there&#8217;s a reason why SQL Server Azure allows a max db size of 10 Gb). When companies like Twitter &amp; Digg talk about their future plans you hear far more exotic names that &#8220;<em>Microsoft SQL Server 2008 R2</em>&#8221; &#8211; you hear product names such as <a href="http://" target="_blank">Cassandra</a>, <a href="http://project-voldemort.com/" target="_blank">Voldemort</a>, <a href="http://memcachedb.org/" target="_blank">MemcacheDB</a>, <a href="http://code.google.com/p/redis/" target="_blank">Redis</a>, <a href="http://hypertable.org/" target="_blank">HyperTable</a> and the aforementioned <a href="http://couchdb.apache.org/" target="_blank">CouchDB</a>.</p>
<p>One of the major pain points of using a standard relational database is not just the schema design, but all the problems associated with updating and versioning of the schema. Making schema changes on systems that have brittle architectures is the bane of the lives of the developers working on those systems. Because these document databases are schemaless (or rather they provide dynamic-schemas) - you do not face the same problems. You are free to modify the documents you store, they can be irregular and have different properties &#8211; the problem might be moved up a level where you convert the documents into your domain objects. If you are using dynamic languages you may have to ensure that the properties you access actually exist and add extra error handling to deal with this edge case. In any case this is much less of a burden than standard schema versioning hell.</p>
<p>One niche that document databases fit into exceedingly well is the <a href="http://elegantcode.com/2009/11/11/cqrs-la-greg-young/" target="_blank">CQRS pattern</a> that is growing in popularity. If to provide scale and speed for your web architecture you decided to create View Model repositories so that you can quickly and easily populate your UI with data using an efficient <em>Select *</em> rather than performing traditionally expensive and slow relational queries with multiple joins, then document databases offer a very compelling solution. They are high performance, efficiently store data, they have built in support for replication and auto fail over, they are open source and run on Windows &amp; *nix platform, thus can be cheap to scale and also support auto-sharding if you require cloud-level scalability and finally they have dynamic schemas so your development &amp; maintenance effort is minimal.</p>
<p>The more I learn about Document Databases and in particular CouchDB and <a href="http://www.mongodb.org/" target="_blank">MongoDB</a> &#8211; they more I understand that these are products <em>of the web</em> and <em>by the web</em>. Not only do they solve traditionally hard web problems such as scale but they also use web technologies at their core; MongoDB uses JavaScript in its Shell as well as internally for some Map Reduce functions and CouchDB uses a RESTful JSON API which allows you to query it directly from HTTP &#8211; which means you can query the database directly from your browser, which is very powerful if you want to perform fast AJAX read operations. With MongoDB you can query and receive results in a JSON like format (BSON) that any web developer should be familiar with.</p>
<p><strong>CouchDB vs. MongoDB</strong></p>
<p>I started investigating CouchDB &#8211; mainly because of Neil&#8217;s demo &#8211; but after doing a little research on the ecosystem &#8211; I stumbled across this blog post about <a href="http://spitfiresky.com/blog/recap-of-my-sdruby-presentation-on-mongodb.html" target="_blank">CouchDB vs. MongoDB</a> &#8211; and it was at this point I discovered that CouchDB can&#8217;t do dynamic queries &#8211; which is a pretty essential feature for me as I like to be able to easily explore the data. At this point I swapped focus and started to dig a little deeper into MongoDB and have to say that I really like what I&#8217;ve found.</p>
<p>The main problem that I discovered trying to get started with both CouchDB and MongoDB is that document databases really work well when they are accessed via  a dynamic language. The real problem is that using them via a static language, means you have to deal with data in the form of a dictionary. This just isn&#8217;t acceptable. <a href="http://simpable.com" target="_blank">Scott Watermasysk</a> has <a href="http://simpable.com/code/mongodb-dynamics/" target="_blank">a nice post</a> on a potential work around combining the <a href="http://github.com/samus/mongodb-csharp" target="_blank">MongoDB-CSharp Driver</a> and C#4&#8242;s dynamic keyword to replicate the behaviour in most dynamic languages.</p>
<h3>NoRM &#8211; Making MongoDB mainstream for .NET Developers</h3>
<p>At this point I discovered a new attempt to create a C# Driver for MongoDB that would allow seamless <a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object" target="_blank">POCO</a> conversion and LINQ support. The <a href="http://github.com/atheken/NoRM" target="_blank">project is called NoRM</a> and it&#8217;s the best hope for making MongoDB mainstream for the .NET Community. They guys working on the project are <a href="http://www.andrewtheken.com/" target="_blank">Andrew Theken</a>, <a href="http://blog.wekeroad.com/">Rob Conery</a> (the guy behind SubSonic and TekPub), <a href="http://codebetter.com/blogs/karlseguin/" target="_blank">Karl Seguin</a>, James Avery, Jason Alexander, Olivier Oswald, Nate Kohari, Steve Mason and a few others. NoRM is incredibly simple to get started with and I&#8217;ve put together a small demo that you can play with.</p>
<h3>Getting Started with MongoDB and NoRM</h3>
<p>On a slight tangent &#8211; one of the great initiatives that the UK government has kicked off in the last few months is <a href="http://data.gov.uk/" target="_blank">http://data.gov.uk</a>, led by Sir Tim Berners-Lee, it is a program of work to open all the data of the UK Government, data that we, as tax payers have paid for and should be allowed access to. For developers &#8211; this is a treasure trove of novel &#8220;real&#8221; data with which we can play with. For this demo I picked an <a href="http://data.gov.uk/dataset/lichfield-sports-clubs" target="_blank">XML feed that contains information sports clubs in the district of Lichfield</a>.</p>
<p>Firstly I created a self-contained solution that has everything you need:</p>
<pre>GETTING-STARTED-WITH-MONGODB
+---Data
|   \---MongoDb &lt;= Contains the MongoDB data files
+---ReferencedAssemblies &lt;== contains .NET Libraries we reference
+---Solutions
|   \---GettingStartedWithMongoDB
|       +---Configuration
|       +---Contracts
|       +---Domain
|       +---Framework
|       +---Infrastructure
|       \---Properties
\---Tools
    \---MongoDB &lt;== Contains MongoDB executables (server &amp; client)</pre>
<p>You can download this package from my <a title="Download the demo project" href="http://howardvanrooijen.codeplex.com/releases/view/43066" target="_blank">CodePlex Project</a>.</p>
<h3>Step 1: Get MongoDB up and running</h3>
<p>Extract the package to <em>C:\Projects\OpenSource\</em> then navigate to <em>C:\Projects\OpenSource\getting-started-with-mongodb\Tools\MongoDB</em> in this folder you should see 2x .exe files, 2x .cmd files and 3 readme files.</p>
<p>The two .exe files are MongoDB&#8217;s client and server applications. Double click <em>start-mongod-(the-server).cmd</em> &#8211; this is a custom command file which starts the MongoDB Server and pipes in a configuration setting to specifically set the path where MongoDB stores it&#8217;s data files to <em>C:\Projects\OpenSource\getting-started-with-mongodb\Data\MongoDb</em></p>
<p>Once you run the cmd file you should see the following Command Prompt window:</p>
<p><img class="size-full wp-image-168 alignnone" title="mongodb-start-server" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-start-server.png" alt="" width="517" height="222" /></p>
<p>You may be presented with a Windows Firewall dialog &#8211; dismiss this.</p>
<p>If you want to access the web admin interface (it&#8217;s a bit sparse!) you can via <a href="http://localhost:28017">http://localhost:28017</a> (as mentioned in the last line of text in the command prompt).</p>
<p>If you navigate to <em>C:\Projects\OpenSource\getting-started-with-mongodb\Data\MongoDb</em> you will notice this folder is empty &#8211; the database is running but we haven&#8217;t imported any data yet.</p>
<h3>Step 2: Run the Solution</h3>
<p>Open the Solution file located at: <em>C:\Projects\OpenSource\getting-started-with-mongodb\Solutions\GettingStartedWithMongoDB.sln</em> &#8211; this is a VS 2010 RC solution file. Once you&#8217;ve opened the solution file &#8211; there are only 4 files that you really need to look at:</p>
<ol>
<li><em>/Program.cs</em> &#8211; this is where the main logic sits</li>
<li><em>/Infrastructure/ClubRepository.cs</em> &#8211; this pulls down the XML Feed and uses LINQ to XML to convert it into a <a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object" target="_blank">POCO</a></li>
<li><em>/Infrastructure/Session.cs </em>- this wraps NoRM and the calls to MongoDB</li>
<li><em>/Contracts/IUniqueIdentifier.cs</em> &#8211; this is an interface that defines an Id Property required for MongoDB Updates.</li>
</ol>
<p>I borrowed the <em>Sessions.cs</em> file from the NoRM unit test project which uses it as the default method for performing integration tests &#8211; I made one small adjustment as a workaround for a bug I discovered, which you can see on line 49:</p>
<p><img class="alignnone size-full wp-image-174" title="session-code-listing" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/session-code-listing.png" alt="" width="575" height="639" /></p>
<p>While working on the demo I discovered that calling the <em>UpdateOne </em>method using the <em>(item, item)</em> signature didn&#8217;t actually update the item in MongoDB and that instead you need to provide a <em>MatchDocument </em>(essentially an criteria document that allows you to specify which document in the document database will be updated). To make this work I had to modify the generics constraints to require that the Type implements <em>IUniqueIdenfitier</em> which means we have access to the Id property in order to construct the <em>MatchDocument</em>. <em>IUniqueIdenfitier.cs </em>is as follows:</p>
<p><img class="alignnone size-full wp-image-176" title="uniqueidentifier-contract" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/uniqueidentifier-contract.png" alt="" width="309" height="66" /></p>
<p>ObjectId is a NoRM type that represents a <a href="http://www.mongodb.org/display/DOCS/Object+IDs" target="_blank">MongoDB ObjectId</a>, which is is a 12-byte value consisting of a 4-byte timestamp, a 3-byte machine id, a 2-byte process id, and a 3-byte counter.</p>
<p>Finally it all comes together in <em>Program.cs</em>, where we retrieve the feed, convert it into <a href="http://en.wikipedia.org/wiki/Plain_Old_CLR_Object" target="_blank">POCO</a>, create a new session with a MongoDB document database called &#8220;ClubDocDB&#8221;, insert all the clubs into a new collection called &#8220;Club&#8221; and perform a LINQ query against the MongoDB database collection for a club that has a Contact with a specific name, we then update that club&#8217;s telephone number, update and re-query, again using LINQ, to ensure that the update was successful. Session implements <em>IDisposable </em>which auto closes the connection.</p>
<p><img class="alignnone size-full wp-image-171" title="program-main-code-listing" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/program-main-code-listing.png" alt="" width="595" height="591" /></p>
<p>Hit F5 to run the project for yourself.</p>
<p>Once you run the the solution you will see the following window appear showing the data we have parsed &amp; inserted into the document database, queried, updated and re-queried:</p>
<p><img class="alignnone size-full wp-image-177" title="program-window" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/program-window.png" alt="" width="597" height="342" /></p>
<p>If you swap to the MongoDB Server Window you can see there has been activity:</p>
<p><img class="alignnone size-full wp-image-178" title="mongodb-server-insert" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-server-insert.png" alt="" width="517" height="222" /></p>
<p>You can see the following has happened:</p>
<ul>
<li>The server has accepted an incoming connection</li>
<li>It has build a new index for the Database called &#8220;ClubDocDB&#8221; and the collection called &#8220;Club&#8221;</li>
</ul>
<p>If you navigate to the data directory &#8211; <em>C:\Projects\OpenSource\getting-started-with-mongodb\Data\MongoDb</em> - you will see that this has now been populated by two data files:</p>
<ul>
<li>ClubDocDB.0 (64mb)</li>
<li>ClubDocDB.ns (16mb)</li>
</ul>
<p>These files are preallocated &#8211; just in case you thought we had processed and indexed  80 mb of data. See the <a href="http://www.mongodb.org/display/DOCS/Developer+FAQ#DeveloperFAQ-Whyaremydatafilessolarge%3F" target="_blank">MongoDB FAQ for more info on data files</a>.</p>
<h3>Step 3: Using the MongoDB Shell</h3>
<p>I&#8217;ve shown how you can access MongoDB via NoRM &#8211; it&#8217;s stupidly easy &#8211; if you are running MongoDB on your local machine then configuration is minimal &#8211; all you need to do is specify the document database name you want to connect to. Your collection name is based on the name of the POCO entity you specify. There is another way to connect to MongoDB &#8211; via the MongoDB Interactive Shell.</p>
<p>Navigate to <em>C:\Projects\OpenSource\getting-started-with-mongodb\Tools\MongoDB and double click on start-mongo-(the-client).cmd</em> &#8211; this will launch the MongoDB Shell:</p>
<p><img class="alignnone size-full wp-image-180" title="mongodb-shell" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-shell.png" alt="" width="517" height="162" /></p>
<p>To view the databases you can use the following command:</p>
<pre>show dbs</pre>
<p>To access the database you have just created enter the following command:</p>
<pre>use ClubDocDB</pre>
<p>This switches to our database. Next you can view the collections under this database using the command:</p>
<pre>show collections</pre>
<p>You should see the following results:</p>
<pre>Club
system.indexes</pre>
<p>Next we can actually query the collection in the same we queried it using NoRM and LINQ but using the native query syntax:</p>
<pre>db.Club.find({ "Contact.Name" : 'Daryl Loynes' })</pre>
<p>The results of this query are returned to the shell as <a href="http://www.mongodb.org/display/DOCS/BSON" target="_blank">BSON</a> (binary-encoded serialization of JSON-like documents):</p>
<p><img class="alignnone size-full wp-image-181" title="mongodb-shell-query" src="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-shell-query.png" alt="" width="517" height="302" /></p>
<p>This is quite impressive as the field we queried is actually a sub-property of the document we indexed. This is really part of the magic of MongoDB in that the document as a whole is stored in the data file as BSON and the query language understands that we are querying complex objects rather than rows and columns. The query language supports this &#8220;dot notation&#8221; which allows us to reach inside documents and query it; this is extremely powerful.</p>
<p>We can perform a more fine-grained query and specify that we only want to return the <em>Tel </em>field:</p>
<pre>db.Club.find({ "Contact.Name" : 'Daryl Loynes' }, { "Contact.Tel" : 1 })</pre>
<p>This will return the following BSON result:</p>
<pre>{ "Contact" : { "Tel" : "555-123-456" }, "_id" : ObjectId("4cdefa02b6f5465017110000") }</pre>
<p>You can see that the result also provides us with an _id field which we could use if we wanted to change the <em>Tel </em>field value and apply this back as an update. For more information on querying have a <a href="http://www.mongodb.org/display/DOCS/Querying" target="_blank">read of the documentation</a>.</p>
<p>For more information on the MongoDB Shell &#8211; have a <a href="http://www.mongodb.org/display/DOCS/mongo+-+The+Interactive+Shell" target="_blank">read of the documentation</a>.</p>
<p>If this post has got you interested in MongoDB, why not spend 10 minutes using the  interactive demo / mini tutorial of MongoDB at: <a href="http://try.mongodb.org/">http://try.mongodb.org/</a></p>
<p>Finally, for a broader overview of MongoDB and it&#8217;s features, I strongly recommend reading this presentation:</p>
<div id="__ss_3418591" style="width:425px;"><strong><a title="MongoDB Rules" href="http://www.slideshare.net/kbanker/mongodb-rules-mwrc-2010">MongoDB Rules</a></strong></div>
<div style="width:425px;"><strong><a title="MongoDB Rules" href="http://www.slideshare.net/kbanker/mongodb-rules-mwrc-2010"><br />
</a></strong></div>
<p>Work smart, not hard.<br />
@<a title="Follow me on Twitter" href="http://twitter.com/HowardvRooijen" target="_blank">HowardvRooijen</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/howardvanrooijen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/howardvanrooijen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/howardvanrooijen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/howardvanrooijen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/howardvanrooijen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/howardvanrooijen.wordpress.com/156/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/howardvanrooijen.wordpress.com/156/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/howardvanrooijen.wordpress.com/156/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=howard.vanrooijen.co.uk&amp;blog=14504353&amp;post=156&amp;subd=howardvanrooijen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://howard.vanrooijen.co.uk/2010/04/04/a-dotnet-developer-guide-to-mongodb-and-norm/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10691565df03ff7e1143e4da130daed1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">howardvanrooijen</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-start-server.png" medium="image">
			<media:title type="html">mongodb-start-server</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/session-code-listing.png" medium="image">
			<media:title type="html">session-code-listing</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/uniqueidentifier-contract.png" medium="image">
			<media:title type="html">uniqueidentifier-contract</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/program-main-code-listing.png" medium="image">
			<media:title type="html">program-main-code-listing</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/program-window.png" medium="image">
			<media:title type="html">program-window</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-server-insert.png" medium="image">
			<media:title type="html">mongodb-server-insert</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-shell.png" medium="image">
			<media:title type="html">mongodb-shell</media:title>
		</media:content>

		<media:content url="http://howard.vanrooijen.co.uk/blog/wp-content/uploads/2010/04/mongodb-shell-query.png" medium="image">
			<media:title type="html">mongodb-shell-query</media:title>
		</media:content>
	</item>
	</channel>
</rss>
