<?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>Ruthlessly Helpful</title>
	<atom:link href="http://ruthlesslyhelpful.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruthlesslyhelpful.net</link>
	<description>Stephen Ritchie&#039;s offerings of ruthlessly helpful .NET practices.</description>
	<lastBuildDate>Fri, 22 Feb 2013 14:47:51 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ruthlesslyhelpful.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Ruthlessly Helpful</title>
		<link>http://ruthlesslyhelpful.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ruthlesslyhelpful.net/osd.xml" title="Ruthlessly Helpful" />
	<atom:link rel='hub' href='http://ruthlesslyhelpful.net/?pushpress=hub'/>
		<item>
		<title>Thank You DC .NET Users Group 2013.2</title>
		<link>http://ruthlesslyhelpful.net/2013/02/20/thank-you-dc-net-users-group-2013-2/</link>
		<comments>http://ruthlesslyhelpful.net/2013/02/20/thank-you-dc-net-users-group-2013-2/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 16:20:36 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=564</guid>
		<description><![CDATA[A big thank you to the DC .NET Users Group for hosting my presentation on Continuous Integration at their Februrary meeting last night. I really hope that everyone enjoyed the presentation on continuous integration. The questions and conversations were very good. Code Samples Although most of the examples used TeamCity, here are the code samples, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=564&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>A big thank you to the <a href="http://dcdnug.org/" target="_blank">DC .NET Users Group</a> for hosting my presentation on Continuous Integration at their Februrary meeting last night. I really hope that everyone enjoyed the presentation on continuous integration. The questions and conversations were very good.</p>
<h3>Code Samples</h3>
<p>Although most of the examples used <a href="http://www.jetbrains.com/teamcity/" target="_blank">TeamCity</a>, here are the code samples, available through GitHub.<br />
<a href="https://github.com/ruthlesshelp/Presentations" target="_blank">https://github.com/ruthlesshelp/Presentations</a></p>
<h3>Slides</h3>
<p>Here are the slides, available through SlideShare.<br />
<iframe src='http://www.slideshare.net/slideshow/embed_code/16627385' width='427' height='350' scrolling='no'></iframe>
<div style="margin-bottom:5px;"> <strong> <a href="http://www.slideshare.net/ruthlesshelp/continuous-integration-blueprint-toolbox-master-craft-16627385" title="Continuous Integration: Blueprint, Toolbox, Master Craft" target="_blank">Continuous Integration: Blueprint, Toolbox, Master Craft</a> </strong> from <strong><a href="http://www.slideshare.net/ruthlesshelp" target="_blank">Stephen Ritchie</a></strong> </div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/564/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/564/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=564&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2013/02/20/thank-you-dc-net-users-group-2013-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>Compendium of .NET Best Practices</title>
		<link>http://ruthlesslyhelpful.net/2012/12/31/compendium-of-net-best-practices/</link>
		<comments>http://ruthlesslyhelpful.net/2012/12/31/compendium-of-net-best-practices/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 19:34:45 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=542</guid>
		<description><![CDATA[So you’re getting ready to start a .NET Best Practices initiative at your organization and you’re looking to find a lot of specific best practices tips. You want to know: What are the .NET Framework best practices? You can be assured that I’ve been down this road. In fact, a few readers of my book, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=542&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>So you’re getting ready to start a .NET Best Practices initiative at your organization and you’re looking to find a lot of specific best practices tips. You want to know: <em>What are the .NET Framework best practices?</em></p>
<p>You can be assured that I’ve been down this road. In fact, a few readers of my book, <em>Pro .NET Best Practices</em>, expressed some disappointment that the book is not a collection of specific .NET best practices. And this is exactly why I decided to address this subject in today’s post.</p>
<p>For those that want to dig right in, follow this link to part 1, <a href="http://ruthlesslyhelpful.net/2012/12/31/msdn-net-framework-best-practices/">MSDN: .NET Framework Best Practices.</a></p>
<p>If you want some background, let me start with the question: <b>Who wants to follow best practices, anyway?</b></p>
<h3>Adoption</h3>
<p>The adoption of new and different practices is a central theme of <em>Pro .NET Best Practices</em>. I work with enough individuals, teams, and organizations to understand the issues involved with adopting best practices. Consider the four levels at which best practices are embraced:</p>
<ul>
<li><b>Individual:</b> You or any individual adopts better practices to increase personal and professional productivity, quality, thoroughness, and overall effectiveness.</li>
<li><b>Group:</b> The team adopts better practices to be more industrious together, avoid problems, achieve desired results, improve interpersonal relationships, and work more effectively with other teams.</li>
<li><b>Organization:</b> Your company, agency, or firm adopts better practices to bring more positive outcomes to the organization, attract and retain employees, satisfy end-user expectations, and make stakeholders happy.</li>
<li><b>Profession:</b> Better practices are widely adopted and become generally-accepted standards, patterns, and principles that bring alignment to software development and benefit to all that follow them.</li>
</ul>
<p>In an ideal world, best practices are quickly adopted at all four levels. However, in the real world, they can be slowly adopted by the group, resisted by the organization, embraced by one individual, not by another, or ignored altogether by everyone but you. It can be a mixed bag.</p>
<h3>The Reader</h3>
<p>There are two key readers of this blog post that I want to identify with and help:</p>
<ol>
<li><b>Developers</b> – As a developer, you have personal practices that make you an effective software developer. The compendium should list new and different practices that help make you a more effective developer.</li>
<li><b>Team Leaders</b> – As a team leader, you see the team develop software through their current practices. The compendium should list practices that help the team perform better and achieve better outcomes.</li>
</ol>
<p>These readers are adopting at either the individual or group level.</p>
<p>If you are a reader who wants to bring best practices to the organization or the software development profession then I assert that you are probably not interested in the content of this compendium. Yes, you might refer a developer or team leader to the compendium, but I doubt you will find it directly relevant.</p>
<p>So, given this introduction, let’s look at how a collection (I like the term compendium) of specific .NET best practices might be organized.</p>
<h3>Tags for the Compendium</h3>
<p>Since this is a blog, tags can help others find and navigate the content. Here is a quick list of tags that come to mind:</p>
<ul>
<li>Coding Best Practices. For example, C#, VB.NET, T-SQL</li>
<li>Toolset Best Practices. For example, Visual Studio, ReSharper, Typemock</li>
<li>Platform Best Practices. For example, ASP.NET, SQL Server, SharePoint</li>
<li>Architecture Best Practices. For example, Client-Server , n-Tier, CQRS</li>
<li>Windows 8 Best Practices</li>
<li>Engineering Fundamentals Best Practices</li>
<li>Cloud Best Practices</li>
<li>Phone Best Practices</li>
<li>ALM (Application Lifecycle Management) Best Practices</li>
</ul>
<p>Clearly, there are a lot of ways to slice and dice the topic of best practices; however, I will try to bring things back to the topic of the Microsoft .NET Framework.</p>
<p>You can find the entire Best Practices category here: <a href="http://ruthlesslyhelpful.net/category/development/best-practices/" target="blank">http://ruthlesslyhelpful.net/category/development/best-practices/</a></p>
<h3>The Power of Free</h3>
<p>I mostly wrote <em>Pro .NET Best Practices</em> based on my professional experience trying to get teams and organizations to adopt .NET Framework best practices. Over the years, I have read many books, I experimented, I tried and persevered with one approach, and I tried totally new approaches. Many times I learned from others. Many times I learned by my mistakes.</p>
<p>Over the years and as I researched my book, I found many free, on-line sources of .NET best practices. Many are professionally written and easy to follow. In my book I was reluctant to paraphrase or repeat material, but I should have done a better job of showing people how to access the material. (The one thing I really kick myself over is that I did not use Bitly.)</p>
<p>So, let me start the Compendium of .NET Best Practices with some great material already available on the Internet.</p>
<p>Part 1: <a href="http://ruthlesslyhelpful.net/2012/12/31/msdn-net-framework-best-practices/">MSDN: .NET Framework Best Practices</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/542/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/542/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=542&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/12/31/compendium-of-net-best-practices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>MSDN: .NET Framework Best Practices</title>
		<link>http://ruthlesslyhelpful.net/2012/12/31/msdn-net-framework-best-practices/</link>
		<comments>http://ruthlesslyhelpful.net/2012/12/31/msdn-net-framework-best-practices/#comments</comments>
		<pubDate>Mon, 31 Dec 2012 19:33:17 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=528</guid>
		<description><![CDATA[For years now, Microsoft Developer Network (MSDN) has provided free online documentation to .NET developers. There is a lot of individual .NET best practices topics, which are described at the high level at this MSDN link: MSDN: .NET Framework Best Practices This is a great MSDN article to read and link to bookmark if you’re [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=528&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>For years now, Microsoft Developer Network (MSDN) has provided free online documentation to .NET developers.  There is a lot of individual .NET best practices topics, which are described at the high level at this MSDN link:<br />
<a href="http://msdn.microsoft.com/en-us/library/ms184412.aspx" target="blank">MSDN: .NET Framework Best Practices</a></p>
<p>This is a great MSDN article to read and link to bookmark if you’re interested in.NET best practices.</p>
<h3>Best Practices for Strings</h3>
<p>Just take a look at all the information within the MSDN topic of <a href="http://msdn.microsoft.com/en-us/library/dd465121.aspx" target="blank">Best Practices for Using Strings in the .NET Framework</a>. I am not going to be able to duplicate all of that. If you are developing an application that has to deal with culture, globalization, and localization issues then you need to know much of this material.</p>
<p>Before I go any further, let me introduce you to <a href="http://twitter.com/jonskeet" target="blank">Jon Skeet</a>. He wrote an awesome book, <a href="http://manning.com/skeet2/" target="blank">C# In Depth</a>. I think you might enjoy reading his online article on .NET Strings: <a href="http://csharpindepth.com/Articles/General/strings.aspx" target="blank">http://csharpindepth.com/Articles/General/strings.aspx</a></p>
<p>Okay, let’s get back to the MSDN article. Below I have highlighted a few of the Strings best practices that I’d like to discuss.</p>
<p><b>1. Use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.</b>
<p>
In the .NET Framework, ToUpperInvariant is the standard way to normalize case. In fact, the Visual Studio Code Analysis has rule <a href="http://msdn.microsoft.com/en-us/library/bb386042.aspx" target="blank">CA1308</a> in the Globalization category that can monitor this.
</p>
<p>
This is a really easy practice to follow once you know it.
</p>
<p>Here is the key point I picked up from rule CA1308:</p>
<blockquote><p>
It is safe to suppress [this] warning message [CA1308] when you are not making security decision based on the result (for example, when you are displaying it in the UI).</p></blockquote>
<p>In other words, take care to uppercase strings when the code is making a security decision based on normalized string comparison.</p>
<p><b>2. Use an overload of the String.Equals method to test whether two strings are equal.</b></p>
<p>Some of these overloads require a parameter that specifies the culture, case, and sort rules that are to be used in the comparison method. This just makes the string comparison you are using explicit.</p>
<p><b>3. Do not use an overload of the String.Compare or CompareTo method and test for a return value of zero to determine whether two strings are equal.</b></p>
<p>
In the MSDN documentation for <a href="http://msdn.microsoft.com/en-us/library/fbh501kz.aspx" target="blank">comparing Strings</a> the guidance is quite clear:</p>
<blockquote><p>The Compare method is primarily intended for use when ordering or sorting strings.</p></blockquote>
<h3>All-In-One Code Framework</h3>
<p>If you have not had a chance to take a look at the <a href="http://1code.codeplex.com" target="blank">All-In-One Code Framework</a> then please take a few minutes to look it over.</p>
<blockquote><p>The Microsoft All-In-One Code Framework is a free, centralized code sample library driven by developers&#8217; needs.</p></blockquote>
<p>It is Microsoft Public License (Ms-PL), which is the least restrictive of the Microsoft open source licenses.</p>
<p>What’s relevant to this article is the <b>All-In-One Code Framework Coding Standards</b> document. You can find the download link at the top of this page: <a href="http://1code.codeplex.com/documentation" target="blank">http://1code.codeplex.com/documentation</a></b></p>
<p>In that document, they list a very relevant and useful list of String best practices.</p>
<ul>
<li>Do not use the ‘+’ operator (or ‘&amp;’ in VB.NET) to concatenate many strings. Instead, you should use StringBuilder for concatenation. However, do use the ‘+’ operator (or ‘&amp;’ in VB.NET) to concatenate small numbers of strings.</li>
<li>Do use overloads that explicitly specify the string comparison rules for string operations. Typically, this involves calling a method overload that has a parameter of type StringComparison.</li>
<li>Do use StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase for comparisons as your safe default for culture-agnostic string matching, and for better performance.</li>
<li>Do use string operations that are based on StringComparison.CurrentCulture when you display output to the user.</li>
<li>Do use the non-linguistic StringComparison.Ordinal or StringComparison.OrdinalIgnoreCase values instead of string operations based on CultureInfo.InvariantCulture when the comparison is linguistically irrelevant (symbolic, for example).  Do not use string operations based on StringComparison.InvariantCulture in most cases. One of the few exceptions is when you are persisting linguistically meaningful but culturally agnostic data.</li>
<li>Do use an overload of the String.Equals method to test whether two strings are equal.</li>
<li>Do not use an overload of the String.Compare or CompareTo method and test for a return value of zero to determine whether two strings are equal. They are used to sort strings, not to check for equality.</li>
<li>Do use the String.ToUpperInvariant method instead of the String.ToLowerInvariant method when you normalize strings for comparison.</li>
</ul>
<p>
This post is part of my <a href="http://ruthlesslyhelpful.net/2012/12/31/compendium-of-net-best-practices/">Compendium .NET Best-Practices</a> series.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/528/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/528/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=528&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/12/31/msdn-net-framework-best-practices/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>Thank You Upstate New York Users Groups</title>
		<link>http://ruthlesslyhelpful.net/2012/12/28/thank-you-upstate-new-york-users-groups/</link>
		<comments>http://ruthlesslyhelpful.net/2012/12/28/thank-you-upstate-new-york-users-groups/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 21:43:19 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Books]]></category>
		<category><![CDATA[CI]]></category>
		<category><![CDATA[Code Analysis]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Pro .NET Best Practices]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=507</guid>
		<description><![CDATA[In November I traveled to Upstate New York to present at four .NET Users Group. Here&#8217;s the overview: The first stop was in Albany on Monday, Nov. 12th to present at the Tech Valley Users Group (TVUG) meeting. On Tuesday night I was in Syracuse presenting at the Central New York .NET Developer Group meeting. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=507&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>In November I traveled to Upstate New York to present at four .NET Users Group. Here&#8217;s the overview:</p>
<ol style="list-style-type:upper-alpha;">
<li>The first stop was in Albany on Monday, Nov. 12th to present at the <a href="http://www.tvug.net/post/2012/10/24/November-Meeting-An-Overview-of-NET-Best-Practices">Tech Valley Users Group (TVUG) meeting</a>.</li>
<li>On Tuesday night I was in Syracuse presenting at the <a href="http://www.cnydevelopers.net/PastMeetings/tabid/60/Default.aspx">Central New York .NET Developer Group meeting</a>.</li>
<li>On Wednesday night I was in Rochester presenting at the <a href="http://www.vduny.org/PastMeetings.aspx">Visual Developers of Upstate New York meeting</a>.</li>
<li>Finally, on Thursday night I was in Buffalo presenting at the <a href="http://www.meetup.com/MSDevWNY/events/90120002/">Microsoft Developers in Western New York meeting</a>.</li>
</ol>
<div class="googlemaps"><iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=FaPTigIduJGa-ylL-0_MNAreiTHEKOegEmOh4Q;FbrckAIdIBV2-ykNmpe_m_PZiTFFla3X4gzVAA;FcaVkgIdVsBf-ylTsxSWBbPWiTEe5iVB_B8AWg;FS9ljgIdX2lM-ymh5d9SYRLTiTFxgR8YpQQjmA&amp;q=from: Albany, NY to: Syracuse, NY to: Rochester, NY to: Buffalo, NY&amp;aq=t&amp;sll=42.843751,-74.696045&amp;sspn=6.966769,16.907959&amp;t=h&amp;ie=UTF8&amp;saddr=Albany, NY&amp;daddr=Syracuse, NY to:Rochester, NY to:Buffalo, NY&amp;ll=42.90816,-76.311035&amp;spn=5.632513,9.338379&amp;z=6&amp;output=embed"></iframe><br /><small><a href="https://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=FaPTigIduJGa-ylL-0_MNAreiTHEKOegEmOh4Q;FbrckAIdIBV2-ykNmpe_m_PZiTFFla3X4gzVAA;FcaVkgIdVsBf-ylTsxSWBbPWiTEe5iVB_B8AWg;FS9ljgIdX2lM-ymh5d9SYRLTiTFxgR8YpQQjmA&amp;q=from: Albany, NY to: Syracuse, NY to: Rochester, NY to: Buffalo, NY&amp;aq=t&amp;sll=42.843751,-74.696045&amp;sspn=6.966769,16.907959&amp;t=h&amp;ie=UTF8&amp;saddr=Albany, NY&amp;daddr=Syracuse, NY to:Rochester, NY to:Buffalo, NY&amp;ll=42.90816,-76.311035&amp;spn=5.632513,9.338379&amp;z=6&amp;source=embed" style="text-align:left">View Larger Map</a></small></div>
<p>&nbsp;</p>
<h3>Many Belated Thank Yous</h3>
<p>I realize it is belated, but I&#8217;d like to extend a very big and heartfelt thank you to the organizers of these users groups for putting together a great series of meetings.</p>
<p>Thank you to Stephanie Carino from Apress for connecting me with the organizers. I really appreciate all the help with all the public relations, the swag, the promotion codes, the raffle copies of my book, and for the tweets and re-tweets.</p>
<h3>Slides and Code Samples</h3>
<p>My presentations are available on SlideShare under my <a href="http://www.slideshare.net/ruthlesshelp">RuthlessHelp</a> account, but if you are looking for something specific then here are the four presentations:</p>
<ol type="A">
<li><a href="http://www.slideshare.net/ruthlesshelp/an-overview-of-net-best-practices">An Overview of .NET Best Practices</a></li>
<li><a href="http://www.slideshare.net/ruthlesshelp/overcoming-the-obstacles-pitfalls-and-dangers-of-unit-testing">Overcoming the Obstacles, Pitfalls, and Dangers of Unit Testing</a></li>
<li><a href="http://www.slideshare.net/ruthlesshelp/advanced-code-analysis-with-net">Advanced Code Analysis with .NET</a></li>
<li><a href="http://www.slideshare.net/ruthlesshelp/an-overview-of-net-best-practices-15197448">An Overview of .NET Best Practices</a></li>
</ol>
<p>All the code samples can be found on GitHub under my RuthlessHelp account: <a href="https://github.com/ruthlesshelp/Presentations">https://github.com/ruthlesshelp/Presentations</a></p>
<h3>Please Rate Me</h3>
<p>If you attended one of these presentations, please rate me at SpeakerRate:</p>
<ol>
<li><a href="http://spkr8.com/t/19101">Rate: An Overview of .NET Best Practices (Albany, 12-Nov)</a></li>
<li><a href="http://spkr8.com/t/19111">Rate: Overcoming the Obstacles, Pitfalls, and Dangers of Unit Testing</a></li>
<li><a href="http://spkr8.com/t/19121">Rate: Advanced Code Analysis with .NET</a></li>
<li><a href="http://spkr8.com/t/19131">Rate: An Overview of .NET Best Practices (Buffalo, 15-Nov)</a></li>
</ol>
<p>You can also rate me at INETA: <a href="http://ineta.org/Speakers/SearchCommunitySpeakers.aspx?SpeakerId=b7b92f6b-ac28-413f-9baf-9764ff95be79" rel="nofollow">http://ineta.org/Speakers/SearchCommunitySpeakers.aspx?SpeakerId=b7b92f6b-ac28-413f-9baf-9764ff95be79</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/507/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/507/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=507&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/12/28/thank-you-upstate-new-york-users-groups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>Thank You LI.NET Users Group</title>
		<link>http://ruthlesslyhelpful.net/2012/09/07/thank-you-li-net-users-group/</link>
		<comments>http://ruthlesslyhelpful.net/2012/09/07/thank-you-li-net-users-group/#comments</comments>
		<pubDate>Fri, 07 Sep 2012 10:34:49 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=488</guid>
		<description><![CDATA[Yesterday I traveled up to Long Island, New York to present at the LI .NET Users Group. A very big thank you to the LI.NET organizers for putting together a great September meeting. I especially enjoyed the New York pizza. The group last night was great. Very good turnout. The audience had many good questions [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=488&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.lidotnetusersgroup.com"><img src="http://ruthlesslyhelpful.files.wordpress.com/2012/09/lidotnetusersgroup.gif?w=150&#038;h=106" alt="LI .NET Users Group logo" title="LI .NET Users Group" width="150" height="106" class="alignright size-thumbnail wp-image-454" /></a></p>
<p>Yesterday I traveled up to Long Island, New York to present at the <a href="http://www.lidotnetusersgroup.com">LI .NET Users Group</a>. A very big thank you to the LI.NET organizers for putting together a great September meeting. I especially enjoyed the New York pizza. The group last night was great. Very good turnout. The audience had many good questions and comments. Also, there were a lot of follow up discussions after the meeting.</p>
<p>Thank you to Stephanie Carino from Apress for connecting me with the organizers of LI.NET. I really appreciate all the help with all the public relations, the swag, the promotion codes, the raffle copies of my book, and for the live tweets and pictures.</p>
<p>I especially want to thank Mike Shaw for coordinating with me and recording the presentation. He was very helpful and kept me informed every step of the way. I will link to the presentation once it is posted.</p>
<h3>Code Samples</h3>
<p>Here are the code samples, available through GitHub.<br />
<a href="https://github.com/ruthlesshelp/Presentations" title="https://github.com/ruthlesshelp/Presentations" target="_blank">https://github.com/ruthlesshelp/Presentations</a></p>
<h3>Slides</h3>
<p>Here are the slides, available through SlideShare.<br />
<iframe src='http://www.slideshare.net/slideshow/embed_code/14189619' width='427' height='350' scrolling='no'></iframe>
<div style="margin-bottom:5px;"> <strong> <a href="http://www.slideshare.net/ruthlesshelp/automated-testing-obstacles-pitfalls-and-dangers" title="Automated Testing: Obstacles, Pitfalls, and Dangers" target="_blank">Automated Testing: Obstacles, Pitfalls, and Dangers</a> </strong> from <strong><a href="http://www.slideshare.net/ruthlesshelp" target="_blank">Stephen Ritchie</a></strong> </div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/488/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=488&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/09/07/thank-you-li-net-users-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>

		<media:content url="http://ruthlesslyhelpful.files.wordpress.com/2012/09/lidotnetusersgroup.gif" medium="image">
			<media:title type="html">LI .NET Users Group</media:title>
		</media:content>
	</item>
		<item>
		<title>Thank You DC Alt.Net 2012.7</title>
		<link>http://ruthlesslyhelpful.net/2012/07/11/thank-you-dc-alt-net-2012-7/</link>
		<comments>http://ruthlesslyhelpful.net/2012/07/11/thank-you-dc-alt-net-2012-7/#comments</comments>
		<pubDate>Wed, 11 Jul 2012 22:18:00 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Code Analysis]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=482</guid>
		<description><![CDATA[Another great showing for the DC Alt.Net meetup last night. I hope everyone enjoyed my presentation on code analysis in .NET. There were a lot of great questions and good conversation. I really appreciate the audience participation. Code Samples Here are the code samples, available through GitHub. https://github.com/ruthlesshelp/Presentations Slides Here are the slides, available through [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=482&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Another great showing for the <a href="http://www.meetup.com/dcaltnet/" title="DC Alt.Net" target="_blank">DC Alt.Net</a> meetup last night. I hope everyone enjoyed my presentation on code analysis in .NET. There were a lot of great questions and good conversation. I really appreciate the audience participation.</p>
<h3>Code Samples</h3>
<p>Here are the code samples, available through GitHub.<br />
<a href="https://github.com/ruthlesshelp/Presentations" title="https://github.com/ruthlesshelp/Presentations" target="_blank">https://github.com/ruthlesshelp/Presentations</a></p>
<h3>Slides</h3>
<p>Here are the slides, available through SlideShare.</p>
<div style="width:427px;" id="__ss_13577030"> <strong><a href="http://www.slideshare.net/ruthlesshelp/advanced-code-analysis-in-net" title="Advanced Code Analysis In .NET" target="_blank">Advanced Code Analysis In .NET</a></strong> <iframe src='http://www.slideshare.net/slideshow/embed_code/13577030' width='427' height='350' scrolling='no'></iframe>
<div style="padding:5px 0 12px;"> View more PowerPoint from <a href="http://www.slideshare.net/ruthlesshelp" target="_blank">Stephen Ritchie</a> </div>
</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/482/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/482/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=482&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/07/11/thank-you-dc-alt-net-2012-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>The SDL Static Analysis Story</title>
		<link>http://ruthlesslyhelpful.net/2012/05/14/the-sdl-static-analysis-story/</link>
		<comments>http://ruthlesslyhelpful.net/2012/05/14/the-sdl-static-analysis-story/#comments</comments>
		<pubDate>Mon, 14 May 2012 16:53:26 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Best Practices]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Opinion]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=470</guid>
		<description><![CDATA[With the two day Microsoft Security Development Conference starting tomorrow in DC, I am curious to hear about one thing: what is the static code analysis story in the Security Development Lifecycle? Microsoft explains their vision of the Security Development Lifecycle and provides SDL Practice #10: Perform Static Analysis. On that page, under the heading [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=470&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>With the two day <em>Microsoft Security Development Conference</em> starting tomorrow in DC, I am curious to hear about one thing: what is the static code analysis story in the Security Development Lifecycle?</p>
<p>Microsoft explains their vision of the Security Development Lifecycle and provides <a href="http://www.microsoft.com/security/sdl/discover/implementation.aspx" title="SDL Pracitce #10: Perform Static Analysis" target="_blank">SDL Practice #10: Perform Static Analysis</a>. On that page, under the heading of <em>Tools specific to this practice</em>, CAT.NET is recommended and download links are provided. However, the links are to CAT.NET version 1.0. <a href="http://ruthlesslyhelpful.net/2012/02/09/wheres-cat-net-2-0/" title="Where’s CAT.NET&nbsp;2.0?" target="_blank">What happened to CAT.NET 2.0?</a></p>
<p>On the MSDN blog a <a href="http://blogs.msdn.com/b/sdl/archive/2011/10/19/code-analysis-for-all.aspx" title="Code analysis for all" target="_blank">post from the SDL folks</a> implies that security-oriented code analysis is going to be part of Visual Studio 11. I believe there is a lot of value in having a separate tool, like FxCop, to perform static code analysis across VS projects and solutions and on 3rd-party assemblies.</p>
<p>I would love to hear more about the tools specific to <strong>SDL Practice #10: Perform Static Analysis</strong>, and I am hopeful that this will be described in detail in one or more sessions at some future SDC.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/470/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=470&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/05/14/the-sdl-static-analysis-story/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>Thank You Philly.NET Code Camp 2012.1</title>
		<link>http://ruthlesslyhelpful.net/2012/05/14/thank-you-philly-net-code-camp-2012-1/</link>
		<comments>http://ruthlesslyhelpful.net/2012/05/14/thank-you-philly-net-code-camp-2012-1/#comments</comments>
		<pubDate>Mon, 14 May 2012 15:30:05 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[NDbUnit]]></category>
		<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=452</guid>
		<description><![CDATA[Although I have been developing software for more than 20 years, on Saturday I went to my first Code Camp. I delivered one session at Philly.NET Code Camp on the topic of Automated Unit and Integration Testing with Databases. I was amazed. Philly.NET Code Camp is like a mini TechEd. I am impressed at how [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=452&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://ruthlesslyhelpful.files.wordpress.com/2012/05/philly-netcodecamp2012-1.png"><img src="http://ruthlesslyhelpful.files.wordpress.com/2012/05/philly-netcodecamp2012-1.png?w=150&#038;h=106" alt="Philly.NET Code Camp 2012.1" title="Philly.NET Code Camp 2012.1" width="150" height="106" class="alignright size-thumbnail wp-image-454" /></a>Although I have been developing software for more than 20 years, on Saturday I went to my first Code Camp. I delivered one session at <a title="Philly.NET Code Camp 12-May-2012" href="http://codecamp.phillydotnet.org/2012-1/SitePages/Home.aspx" target="_blank">Philly.NET Code Camp</a> on the topic of <em>Automated Unit and Integration Testing with Databases</em>.</p>
<p>I was amazed. Philly.NET Code Camp is like a mini TechEd. I am impressed at how professionally everything was done. Registration, content, food, facilities, etc. This group knows how to put on a code camp. It is a testament to the capability and dedication of Philly.NET; it&#8217;s leadership and members. Keep up the good work. Thank you  for an awesome day. I cannot wait for the next one.</p>
<h3>Slides</h3>
<p>Here are the slides, available through SlideShare.</p>
<div style="width:425px;" id="__ss_12895021"> <strong><a href="http://www.slideshare.net/ruthlesshelp/automated-testing-with-databases" title="Automated Testing with Databases" target="_blank">Automated Testing with Databases</a></strong> <iframe src='http://www.slideshare.net/slideshow/embed_code/12895021' width='425' height='348' scrolling='no'></iframe>
<div style="padding:5px 0 12px;"> View more <a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank">PowerPoint</a> from <a href="http://www.slideshare.net/ruthlesshelp" target="_blank">Stephen Ritchie</a> </div>
</p></div>
<h3>Sample Code</h3>
<p>The sample code from my session (Tools track, 1:40 PM) is available here:</p>
<ul>
<li>GitHub: <a title="Presentation Sample Code" href="https://github.com/ruthlesshelp/Presentations" target="_blank">https://github.com/ruthlesshelp/Presentations</a></li>
<li>Zipped up in one download file: <a href="http://bit.ly/KXFAwL" title="Philly.NET Code Camp 2012.1 slides and code">Philly.NET Code Camp 2012.1 slides and code</a></li>
</ul>
<p>Also, please review the requirements for using the code samples in the section below the slides.</p>
<h3>Requirements For The Code Samples</h3>
<p>To use the sample code, you need to create the <strong>Lender.Slos</strong> database. The following are the expectations and requirements needed to create the database.</p>
<p>The sample code assumes you have <em>Microsoft SQL Server Express 2008 R2</em> installed on your development machine. The server name used throughout is <strong>(local)\SQLExpress</strong>. Although the sample code will probably work on other/earlier versions of SQL Server, that has not been verified. Also, if you use another server instance then you will need to change the server name in all the connection strings.</p>
<p>Under the <strong>0_Database</strong> folder there are database scripts, which are used to create the database schema. For the sake of simplicity there are a few command files that use MSBuild to run the database scripts, automate the build, and automate running the tests. These batch files assume you defined the following environment variables:</p>
<ul>
<li><em>MSBuildRoot</em> is the path to MSBuild.exe — For example, C:\Windows\Microsoft.NET\Framework64\v4.0.30319</li>
<li><em>SqlToolsRoot</em> is the path to sqlcmd.exe — For example, C:\Program Files\Microsoft SQL Server\100\Tools\Binn</li>
</ul>
<p>The <em>DbCreate.SqlExpress.Lender.Slos.bat</em> command file creates the database on the <strong>(local)\SQLExpress</strong> server.</p>
<p>With the database created and the environment variables set, run the <strong>Lender.Slos.CreateScripts.bat</strong> command file to execute all the SQL create scripts in the correct order. If you prefer to run the scripts manually then you will find them in the <em>$_Database\Scripts\Create</em> folder. The <em>script_run_order.txt</em> file lists the proper order to run the scripts. If all the scripts run properly there will be three tables (Individual, Student and Application) and twelve stored procedures (a set of four CRUD stored procedures for each of the tables) in the database.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/452/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/452/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=452&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/05/14/thank-you-philly-net-code-camp-2012-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>

		<media:content url="http://ruthlesslyhelpful.files.wordpress.com/2012/05/philly-netcodecamp2012-1.png?w=150" medium="image">
			<media:title type="html">Philly.NET Code Camp 2012.1</media:title>
		</media:content>
	</item>
		<item>
		<title>Automated Unit and Integration Testing with NDbUnit</title>
		<link>http://ruthlesslyhelpful.net/2012/05/03/automated-unit-and-integration-testing-with-ndbunit/</link>
		<comments>http://ruthlesslyhelpful.net/2012/05/03/automated-unit-and-integration-testing-with-ndbunit/#comments</comments>
		<pubDate>Thu, 03 May 2012 13:05:49 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Automated Testing]]></category>
		<category><![CDATA[NDbUnit]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=444</guid>
		<description><![CDATA[The sample code from the May 1, 2012 presentation of Automated Unit and Integration Testing with NDbUnit to the CMAP Main Meeting is available on GitHub: https://github.com/ruthlesshelp/Presentations. Please review the requirements for using the code samples in the section below the slides. The slides are available on SlideShare. Automated Unit and Integration Testing with NDbUnit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=444&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>The sample code from the May 1, 2012 presentation of <em>Automated Unit and Integration Testing with NDbUnit</em> to the <a href="http://www.cmap-online.org/Meetings/Details/2012-05-01.aspx" title="CMAP Meeting 1-May-2012" target="_blank">CMAP Main Meeting</a> is available on GitHub: <a href="https://github.com/ruthlesshelp/Presentations" title="NDbUnit Sample Code" target="_blank">https://github.com/ruthlesshelp/Presentations</a>. Please review the requirements for using the code samples in the section below the slides.</p>
<p>The slides are available on SlideShare.</p>
<div style="width:425px;" id="__ss_12785574">
<strong><a href="http://www.slideshare.net/ruthlesshelp/automated-testing-with-ndbunit" title="Automated Unit and Integration Testing with NDbUnit" target="_blank">Automated Unit and Integration Testing with NDbUnit</a></strong> <iframe src='http://www.slideshare.net/slideshow/embed_code/12785574' width='425' height='348' scrolling='no'></iframe>
<div style="padding:5px 0 12px;"> View more <a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank">PowerPoint</a> from <a href="http://www.slideshare.net/ruthlesshelp" target="_blank">ruthlesshelp</a>
</div>
</div>
<h3>Requirements For The Code Samples</h3>
<p>To use the sample code, you need to create the <strong>Lender.Slos</strong> database. The following are the expectations and requirements needed to create the database.</p>
<p>The sample code assumes you have <em>Microsoft SQL Server Express 2008 R2</em> installed on your development machine. The server name used throughout is <strong>(local)\SQLExpress</strong>. Although the sample code will probably work on other/earlier versions of SQL Server, that has not been verified. Also, if you use another server instance then you will need to change the server name in all the connection strings.</p>
<p>The sample code for this presentation is within the <strong>NDbUnit</strong> folder.</p>
<p>Under the <strong>0_Database</strong> folder there are database scripts, which are used to create the database schema. For the sake of simplicity there are a few command files that use MSBuild to run the database scripts, automate the build, and automate running the tests. These batch files assume you defined the following environment variables:</p>
<ul>
<li><em>MSBuildRoot</em> is the path to MSBuild.exe &mdash; For example, C:\Windows\Microsoft.NET\Framework64\v4.0.30319</li>
<li><em>SqlToolsRoot</em> is the path to sqlcmd.exe &mdash; For example, C:\Program Files\Microsoft SQL Server\100\Tools\Binn
</ul>
<p>The <em>DbCreate.SqlExpress.Lender.Slos.bat</em> command file creates the database on the <strong>(local)\SQLExpress</strong> server.</p>
<p>With the database created and the environment variables set, run the <strong>Lender.Slos.CreateScripts.bat</strong> command file to execute all the SQL create scripts in the correct order. If you prefer to run the scripts manually then you will find them in the <em>$_Database\Scripts\Create</em> folder. The <em>script_run_order.txt</em> file lists the proper order to run the scripts. If all the scripts run properly there will be three tables (Individual, Student and Application) and twelve stored procedures (a set of four CRUD stored procedures for each of the tables) in the database.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/444/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/444/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=444&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/05/03/automated-unit-and-integration-testing-with-ndbunit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
		<item>
		<title>Get 40% off Pro .NET Best Practices!</title>
		<link>http://ruthlesslyhelpful.net/2012/05/02/promotion_ending_20120531/</link>
		<comments>http://ruthlesslyhelpful.net/2012/05/02/promotion_ending_20120531/#comments</comments>
		<pubDate>Wed, 02 May 2012 17:32:11 +0000</pubDate>
		<dc:creator>Stephen D. Ritchie</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[Pro .NET Best Practices]]></category>

		<guid isPermaLink="false">http://ruthlesslyhelpful.net/?p=435</guid>
		<description><![CDATA[40% off Pro .NET Best Practices eBook Apress is currently running a promotion for Pro .NET Best Practices. This is for a limited time. Until May 31, 2012, you can get 40% off the Pro .NET Best Practices eBook from the Apress website when you apply the promo code CMAP12. Follow these steps Go to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=435&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1>40% off <em>Pro .NET Best Practices</em> eBook</h1>
<p>Apress is currently running a promotion for <em>Pro .NET Best Practices</em>. This is for a limited time.</p>
<p>Until <strong>May 31, 2012</strong>, you can get 40% off the <em>Pro .NET Best Practices</em> eBook from the Apress website when you apply the promo code <strong>CMAP12</strong>.</p>
<h3>Follow these steps</h3>
<ol>
<li>Go to the <em>Pro .NET Best Practices</em> page at apress.com: <a title="http://www.apress.com/9781430240235" href="http://www.apress.com/9781430240235" target="_blank">http://www.apress.com/9781430240235</a></li>
<li>Select the &#8220;Buy eBook&#8221; button</li>
<li>Enter the  promo code: <strong>CMAP12</strong></li>
<li>Press the &#8220;Apply Discount&#8221; button</li>
<li>Proceed to checkout</li>
</ol>
<p>Available eBook formats: EPUB, MOBI, PDF</p>
<p>This discount is only available through apress.com, when you purchase the eBook and apply the promo code <strong>CMAP12</strong>.</p>
<p>For more information, please visit <a title="apress.com" href="http://www.apress.com" target="_blank">apress.com</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ruthlesslyhelpful.wordpress.com/435/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ruthlesslyhelpful.wordpress.com/435/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ruthlesslyhelpful.net&#038;blog=23465522&#038;post=435&#038;subd=ruthlesslyhelpful&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ruthlesslyhelpful.net/2012/05/02/promotion_ending_20120531/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/407ed3754647ca23085bf5743740fffd?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">sritchie20165</media:title>
		</media:content>
	</item>
	</channel>
</rss>
