<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/" version="2.0">
    <channel>
        <title>The Code Bucket</title>
        <link>http://codebucket.org/Default.aspx</link>
        <description>You're only as smart as your last line of code</description>
        <language>en-US</language>
        <copyright>Lee Brandt</copyright>
        <managingEditor>leebrandt@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <image>
            <title>The Code Bucket</title>
            <url>http://codebucket.org/images/RSS2Image.gif</url>
            <link>http://codebucket.org/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/TheCodeBucket" type="application/rss+xml" /><item>
            <title>Behavior Driven Development Part 0 of n</title>
            <link>http://codebucket.org/archive/2008/11/21/behavior-driven-development-part-0-of-n.aspx</link>
            <description>&lt;p&gt;For some reason, I've been obsessed with Behavio(u)r Driven Development for the last few months. I've only been doing TDD for a little over a year, and I am totally loving what it's done for my design, so why would I look for something else? It's NOT something else. &lt;a target="_blank" href="http://video.google.com/videoplay?docid=8135690990081075324&amp;amp;ei=xUEmSffeH4aq-AGV_sW1Bg&amp;amp;q=BDD&amp;amp;hl=en"&gt;Dave Astels&lt;/a&gt; says, "Behavior Driven Development is what you are doing already if you are doing Test Driven Development very well." BDD is how we're &lt;em&gt;supposed&lt;/em&gt; to be doing Test Driven Development.&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/BehaviorDrivenDevelopmentPart0ofn_5AA/skull_brain_xray_2.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="skull_brain_xray" align="right" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/BehaviorDrivenDevelopmentPart0ofn_5AA/skull_brain_xray_thumb.jpg" width="178" height="213" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The problems that people end up having with TDD stem from the origins of TDD. People (testers mostly) used to write tests to test units of code that the programmers had written to ensure that the code worked. When people started talking about Test DRIVEN development, most people cheerfully thought, "Oh, I just need to write my unit tests BEFORE I write my code." That's NOT TDD. At least it's not the essence of TDD. Just writing unit tests first doesn't get you the full benefit of using those tests to drive your design. It's not that TDD &lt;em&gt;can't&lt;/em&gt; give you that benefit. It's just that since TDD comes from a birthplace of testing and a language centered around testing, that developers using tests to drive their development &lt;em&gt;think&lt;/em&gt; about testing. They think in the terms they are using. They think in terms on Tests and Fixtures and Assertions, and they lose site of driving the design with the tests.&lt;/p&gt;  &lt;p&gt;Somewhere in TDD-land in 2006, Dan North wrote an article about his frustrations with coaching programmers in TDD. He noted that developers seemed confused about using tests to drive their design. He started the BDD "movement" out of that frustration. He wanted to help programmers understand how TDD works and he knew that the language of testing was the largest barrier. The language of "tests" and "assertions" was distracting developers from the main benefit of TDD, which is to drive you design and observing behaviors within their system.&lt;/p&gt;  &lt;p&gt;I, too, was frustrated with my inability to grok TDD and to understand when I was testing too much or too little or when I was testing the wrong thing or if I was really testing what I thought I was testing. All my pain came from testing "units". What's a unit? A class? A method? An assembly? We took that language of testers and shoe-horned it into our development methodology. The thing is, TDD is &lt;strong&gt;NOT ABOUT TESTING.&lt;/strong&gt; Guffaw, you say? Why do they call it TEST Driven Development then? Because the pioneers of TDD used testing tools to set up &lt;strong&gt;observable&lt;/strong&gt; &lt;strong&gt;specifications&lt;/strong&gt;, that would help them understand what their system &lt;strong&gt;should&lt;/strong&gt; do from a &lt;strong&gt;business standpoint&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Over the coming weeks and months, I'll be chronicling my submersion into BDD. I've been reading white papers, trying different tactics/languages, watching videos and reading lots of BDD framework code. I've had some significant "A-HAs" with respect to BDD and I want to chare them on my blog for three main reasons: One, I want people who are the masters of BDD to tell me when I'm on the right track, off the reservation and when I'm full of it. Two, I want others to learn from me and teach me too. I am hoping to get a small project started and get it out on Google-Code and let people get involved and DO some BDD. Finally, because I am absolutely obsessed with it. I have no idea why I am drawn to it, but I absolutely can't get enough.&lt;/p&gt;  &lt;p&gt;Look for the first part of this series &lt;strong&gt;very&lt;/strong&gt; shortly (like this weekend), and PLEASE comment on what I am doing. It is sometimes very hard to recover from going too far in the wrong direction when you are learning something new. So if you're a BDD newbie, tune in and get involved and if you're an old hat, help a brother out.&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127267"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127267" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/127267.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/11/21/behavior-driven-development-part-0-of-n.aspx</guid>
            <pubDate>Fri, 21 Nov 2008 06:24:34 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/127267.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/11/21/behavior-driven-development-part-0-of-n.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/127267.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/127267.aspx</trackback:ping>
        </item>
        <item>
            <title>XP Can Impove Your Code... But It Won't</title>
            <category>TDD</category>
            <category>Learning</category>
            <category>Software</category>
            <category>Agile</category>
            <category>BDD</category>
            <link>http://codebucket.org/archive/2008/11/17/xp-can-impove-your-code.-but-it-wont.aspx</link>
            <description>QUICK THOUGHT: The engineering practices in Extreme Programming (Like TDD, Pair Programming, etc) can lead you to improving your code. But it won't do it for you. TDD will point out design flaws, but it won't GIVE you good design skills. If you write lousy code, you'll find it very hard to maintain practicing XP, but XP won't MAKE your code better. You still have to do it. You STILL have to read books, write code and share with other developers.&lt;br /&gt;
&lt;br /&gt;
KAIZEN!&lt;br /&gt;
&lt;br /&gt;
~Lee&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127163"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127163" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/127163.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/11/17/xp-can-impove-your-code.-but-it-wont.aspx</guid>
            <pubDate>Mon, 17 Nov 2008 19:23:42 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/127163.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/11/17/xp-can-impove-your-code.-but-it-wont.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/127163.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/127163.aspx</trackback:ping>
        </item>
        <item>
            <title>Damn it feels good to be a gangsta</title>
            <link>http://codebucket.org/archive/2008/11/15/damn-it-feels-good-to-be-a-gangsta.aspx</link>
            <description>&lt;p&gt;Life is sometimes sweeter than we realize. Sometimes we just forget to see it. We complain about work, bills, co-workers and spouses and sometimes forget to look at how awesome our lives really are.&lt;/p&gt;  &lt;p&gt;I LOVE be a programmer. I've done a lot of different jobs and I didn't come to programming until my mid-to-late twenties, so I've experienced some really crappy jobs that paid even crappier. At my current job, I was given the freedom to choose how I would develop this new project, what language, what tools and what people. I've failed as much as I've succeeded so far (but I fail fast), and my boss hasn't blamed me once for my failures. It's been awesome and overwhelming.&lt;/p&gt;  &lt;p&gt;I also Love my wife. I dated a lot of different girls, some were great and I screwed it up, and some were just screwed up. I feel like now all those failures were simply meant to lead me to my current wife. We've been married 11 years in January and we've been together for 15 years. I couldn't imagine caring about anyone as much as I care for her.&lt;/p&gt;  &lt;p&gt;I have a nice house in a nice neighborhood. I don't have a NICE house in a NICE neighborhood, but I am not struggling to work out where the money for the mortgage is coming from every month either, and there is plenty of money left over for dining out, movies, etc.&lt;/p&gt;  &lt;p&gt;I am also planning the first (that I know of) Kansas City Day of .Net. We are almost full on registrations (only 2 seats left), and an absolutely outstanding line-up of speakers and topics. The vendors are clamoring to help sponsor the event, and we've got an XBox 360 Pro for a grand-prize giveaway! Everything for the event is coming together nicely.&lt;/p&gt;  &lt;p&gt;Sometimes I let myself get dragged down into self-pity or self-doubt. It consumes me. There's a name for a complex (I wish I could remember or find a link) where you're in constant fear that people will discover that you don't know what you're doing. I think we all go through it. In those times, I think it's important to take stock of what you DO have. &lt;/p&gt;  &lt;p&gt;I just thought I'd share this in case anyone else is feeling overwhelmed or doubting their abilities. Stop. Breathe. Remember the good things you DO have and who loves you. It always makes me appreciate how sweet life really is, not just because the alternative sucks, but just because you have WAY more than you realize sometimes.&lt;/p&gt;  &lt;p&gt;Okay "Chicken Soup" moment over. Back to the code.&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127058"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=127058" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/127058.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/11/15/damn-it-feels-good-to-be-a-gangsta.aspx</guid>
            <pubDate>Sat, 15 Nov 2008 19:35:41 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/127058.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/11/15/damn-it-feels-good-to-be-a-gangsta.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/127058.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/127058.aspx</trackback:ping>
        </item>
        <item>
            <title>ASP.NET MVP (Model-View-Presenter)</title>
            <link>http://codebucket.org/archive/2008/11/08/asp.net-mvp-model-view-presenter.aspx</link>
            <description>&lt;p&gt;Originally, I had used JP's method from &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/magazine/cc188690.aspx"&gt;this MSDN article&lt;/a&gt; for connecting the Views and Presenters. It works very well except it leads to a lot of very similar code.&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; _default : Page, IDefaultView&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;  &lt;span class="kwrd"&gt;private&lt;/span&gt; DefaultPresenter _presenter;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;  &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; OnInit(EventArgs e)&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;  {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;      &lt;span class="kwrd"&gt;base&lt;/span&gt;.OnInit(e);&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;      _presenter = &lt;span class="kwrd"&gt;new&lt;/span&gt; DefaultPresenter(&lt;span class="kwrd"&gt;this&lt;/span&gt;);            &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;  }&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;  &lt;span class="rem"&gt;// other properties and methods for the IDefaultView interface&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;

&lt;pre class="code"&gt;Then I came across &lt;a target="_blank" href="http://www.pnpguidance.net/Post/UnityIoCDependencyInjectionASPNETModelViewPresenter.aspx"&gt;David Hayden's article on the patterns &amp;amp; Practices web site&lt;/a&gt; and found the connective tissue I needed so that I didn't have &lt;/pre&gt;

&lt;pre class="code"&gt;to manually tell my presenter every time who the actual view was. It consists of a View Base class:&lt;/pre&gt;

&lt;div class="csharpcode"&gt;
  &lt;div class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;abstract&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; View&amp;lt;ViewType, PresenterType&amp;gt; &lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;    : Page &lt;span class="kwrd"&gt;where&lt;/span&gt; PresenterType &lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    : Presenter&amp;lt;ViewType&amp;gt; &lt;span class="kwrd"&gt;where&lt;/span&gt; ViewType : &lt;span class="kwrd"&gt;class&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;{&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; PresenterType Presenter { get; set; }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt; &lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;    &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Page_Init(&lt;span class="kwrd"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;    {&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="rem"&gt;// could also use IOC container to handle this&lt;/span&gt;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;        Presenter = Activator.CreateInstance(&lt;span class="kwrd"&gt;typeof&lt;/span&gt;(PresenterType)) &lt;span class="kwrd"&gt;as&lt;/span&gt; PresenterType;&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;        Presenter.View = &lt;span class="kwrd"&gt;this&lt;/span&gt; &lt;span class="kwrd"&gt;as&lt;/span&gt; ViewType;&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;        Presenter.InitializeView();&lt;/pre&gt;

    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;    }&lt;/pre&gt;

    &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;}&lt;/pre&gt;
  &lt;/div&gt;
  &lt;style type="text/css"&gt;&lt;![CDATA[

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;/div&gt;

&lt;p&gt;and a Presenter base class&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;abstract&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Presenter&amp;lt;ViewType&amp;gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; ViewType View { get; set; }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;virtual&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; InitializeView(){}&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;then initializing my views like so:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;partial&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; _default : View&amp;lt;IDefaultView, DefaultPresenter&amp;gt;, IDefaultView&lt;/pre&gt;
  &lt;style type="text/css"&gt;&lt;![CDATA[



.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }]]&gt;&lt;/style&gt;&lt;/div&gt;

&lt;p&gt;Seems to work very well. It may be old news to some developers, but it was new to me. Check out &lt;a target="_blank" href="http://www.pnpguidance.net/Post/UnityIoCDependencyInjectionASPNETModelViewPresenter.aspx"&gt;David&lt;/a&gt; and &lt;a target="_blank" href="http://msdn.microsoft.com/en-us/magazine/cc188690.aspx"&gt;JPs&lt;/a&gt; articles.&lt;/p&gt;

&lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126886"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126886" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/126886.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/11/08/asp.net-mvp-model-view-presenter.aspx</guid>
            <pubDate>Sat, 08 Nov 2008 17:12:49 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/126886.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/11/08/asp.net-mvp-model-view-presenter.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/126886.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/126886.aspx</trackback:ping>
        </item>
        <item>
            <title>Starting Eric Evans' Domain Driven Design Book</title>
            <link>http://codebucket.org/archive/2008/10/31/starting-eric-evans-domain-driven-design-book.aspx</link>
            <description>&lt;p&gt;&lt;a title="Domain Driven Design" target="_blank" href="http://www.amazon.com/gp/product/0321125215?ie=UTF8&amp;amp;tag=thecodbuc-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0321125215"&gt;&lt;img style="border-right-width: 0px; margin: 0px 5px 5px 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="31ywgz51v-L__SL160_" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/StartingEricEvansDomainDrivenDesignBook_483C/31ywgz51v-L__SL160__3.jpg" width="124" height="164" /&gt;&lt;/a&gt;I don't know how many people recommended this book to me, but it seems like every smart developer I know has said something about it at some point. So I finally ordered a copy (there were none to be had on the shelves of ANY local books stores). &lt;img style="border-bottom-style: none !important; border-right-style: none !important; margin: 0px; border-top-style: none !important; border-left-style: none !important" border="0" alt="" src="http://www.assoc-amazon.com/e/ir?t=thecodbuc-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0321125215" width="1" height="1" /&gt; I've only just started it, but in the preface alone he has talked about some of the things that I already do wrong. He talks about not being able to "let go of a particular design aspect in the interest of time" and I find myself there often.&lt;/p&gt;  &lt;p&gt;Everyone who recommended it said that it changed the way they think about designing software solutions and I doubt I'll be any different. I will be starting a series chronicling my reading of the book and my thoughts for all of my readers (both of them) to enhance, criticize, etc.&lt;/p&gt;  &lt;p&gt;Happy coding!&lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126427"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126427" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/126427.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/10/31/starting-eric-evans-domain-driven-design-book.aspx</guid>
            <pubDate>Fri, 31 Oct 2008 10:08:42 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/126427.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/10/31/starting-eric-evans-domain-driven-design-book.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/126427.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/126427.aspx</trackback:ping>
        </item>
        <item>
            <title>ReSharper Keyboard Shortcut of the Day</title>
            <category>Learning</category>
            <category>Software</category>
            <link>http://codebucket.org/archive/2008/10/28/resharper-keyboard-shortcut-of-the-day.aspx</link>
            <description>&lt;p&gt;As I try and learn about all the available productivity features of R#, I will post what I learn here... for posterity and for anyone who might find it useful.&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ReSharperKeyboardShortcutoftheDay_15121/AltInsertContext-Editor_2.gif"&gt;&lt;img height="217" border="0" align="right" width="205" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ReSharperKeyboardShortcutoftheDay_15121/AltInsertContext-Editor_thumb.gif" alt="AltInsertContext-Editor" style="border-width: 0px; margin: 0px 5px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ReSharperKeyboardShortcutoftheDay_15121/AltInsertContext-Solution_2.gif"&gt;&lt;img height="125" border="0" align="left" width="110" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ReSharperKeyboardShortcutoftheDay_15121/AltInsertContext-Solution_thumb.gif" alt="AltInsertContext-Solution" style="border-width: 0px; margin: 0px 5px 5px 0px;" /&gt;&lt;/a&gt;Alt+Insert is used to generate code in the text editor window. If you are in the text editor, it will bring up a context menu to allow you to generate ctors, members and properties. If you highlight a place in the Solution Explorer and hit Alt+Insert, it will bring up a context menu for generating a class, interface or struct in that folder of the solution.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Another quick little tip for TDD people. This isn't really a R# built-in kb shortcut, but it seems to be a common one. In order to run unit tests based on your current context (if your mouse is in a test it will run that single test, if your mouse in in the fixture, it will run all tests in the fixture), you can map Ctrl+T to do that.&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ReSharperKeyboardShortcutoftheDay_15121/AltT-UnitTest-ContextRun_2.gif"&gt;&lt;img height="143" border="0" align="left" width="244" src="http://geekswithblogs.net/images/geekswithblogs_net/leesblog/WindowsLiveWriter/ReSharperKeyboardShortcutoftheDay_15121/AltT-UnitTest-ContextRun_thumb.gif" alt="AltT-UnitTest-ContextRun" style="border-width: 0px; margin: 5px 5px 5px 0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;on the Visual Studio Menu -&amp;gt; Tools -&amp;gt; Options -&amp;gt; Environment -&amp;gt; Keyboard&lt;/p&gt;
&lt;p&gt;in the scrolling list, look for: Resharper.UnitTest_ContextRun&lt;/p&gt;
&lt;p&gt;On the Use new shortcut in: drop down choose Text Editor. Put you mouse in the "Press shortcut keys" test box and type hit the ctrl key and the T at the same time. Ctrl+T should appear in the text box. Click Assign button.&lt;/p&gt;
&lt;p&gt;Viola! It is very sweet. Thanks &lt;a href="http://blog.troytuttle.com/" target="_blank"&gt;Troy&lt;/a&gt; and &lt;a href="http://www.drusellers.com/" target="_blank"&gt;Dru&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126330"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=126330" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/126330.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/10/28/resharper-keyboard-shortcut-of-the-day.aspx</guid>
            <pubDate>Wed, 29 Oct 2008 04:58:45 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/126330.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/10/28/resharper-keyboard-shortcut-of-the-day.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/126330.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/126330.aspx</trackback:ping>
        </item>
        <item>
            <title>Be Careful What You Inject</title>
            <category>TDD</category>
            <category>Dependency Injection</category>
            <link>http://codebucket.org/archive/2008/10/13/be-careful-what-you-inject.aspx</link>
            <description>&lt;p&gt;When testing, I find that it is important to be cognizant of what you’re testing. I’ve seen (and done) tests where I was using my IoC container to inject a dependency. You may think, “That’s the way it will work in the real world.” The problem is, it may have nothing to do with the System Under Test (SUT). So, you’re test might fail because something went wrong with your IoC container or configuration and have nothing to do with your SUT failing at all.&lt;/p&gt;
&lt;p&gt;The important thing to remember is test what you are trying to test and nothing more. Remove any other failure points within a test other that the SUT, then you can be sure a failure means a failure with your SUT and not something else.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125811"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125811" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/125811.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/10/13/be-careful-what-you-inject.aspx</guid>
            <pubDate>Mon, 13 Oct 2008 18:34:41 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/125811.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/10/13/be-careful-what-you-inject.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/125811.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/125811.aspx</trackback:ping>
        </item>
        <item>
            <title>NUnit Assert.That Syntax Makes Assertions Easier to Read</title>
            <category>TDD</category>
            <link>http://codebucket.org/archive/2008/10/13/nunit-assert.that-syntax-makes-assertions-easier-to-read.aspx</link>
            <description>&lt;p&gt;While traditional syntax for asserts is fairly easy to understand (once you get used to reading it), it doesn’t read as close to English as I’d like. So I have taken to using the Assert.That syntax for a lot of my assertions. This makes an assert like this:&lt;/p&gt;
&lt;div style="BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: gray 1px solid; CURSOR: text; BORDER-RIGHT: gray 1px solid; PADDING-TOP: 4px"&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060"&gt;   1:&lt;/span&gt; Assert.AreEqual(5, SUT.Items.count);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Read like this:&lt;/p&gt;
&lt;div style="BORDER-BOTTOM: gray 1px solid; BORDER-LEFT: gray 1px solid; PADDING-BOTTOM: 4px; LINE-HEIGHT: 12pt; BACKGROUND-COLOR: #f4f4f4; MARGIN: 20px 0px 10px; PADDING-LEFT: 4px; WIDTH: 97.5%; PADDING-RIGHT: 4px; FONT-FAMILY: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace; MAX-HEIGHT: 200px; FONT-SIZE: 8pt; OVERFLOW: auto; BORDER-TOP: gray 1px solid; CURSOR: text; BORDER-RIGHT: gray 1px solid; PADDING-TOP: 4px"&gt;
&lt;div style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: #f4f4f4; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;
&lt;pre style="BORDER-BOTTOM-STYLE: none; PADDING-BOTTOM: 0px; LINE-HEIGHT: 12pt; BORDER-RIGHT-STYLE: none; BACKGROUND-COLOR: white; MARGIN: 0em; PADDING-LEFT: 0px; WIDTH: 100%; PADDING-RIGHT: 0px; FONT-FAMILY: consolas, &amp;quot;Courier New&amp;quot;, courier, monospace; BORDER-TOP-STYLE: none; COLOR: black; FONT-SIZE: 8pt; BORDER-LEFT-STYLE: none; OVERFLOW: visible; PADDING-TOP: 0px"&gt;&lt;span style="COLOR: #606060"&gt;   1:&lt;/span&gt; Assert.That(SUT.Items.Count, Is.EqualTo(5));&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;To me, the second assert reads a lot more like plain English.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125804"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125804" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/125804.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/10/13/nunit-assert.that-syntax-makes-assertions-easier-to-read.aspx</guid>
            <pubDate>Mon, 13 Oct 2008 16:01:17 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/125804.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/10/13/nunit-assert.that-syntax-makes-assertions-easier-to-read.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/125804.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/125804.aspx</trackback:ping>
        </item>
        <item>
            <title>Check the New Flashy Style</title>
            <link>http://codebucket.org/archive/2008/10/11/check-the-new-flashy-style.aspx</link>
            <description>&lt;p&gt;Now with more reflective imagey goodness! &lt;/p&gt;
&lt;p&gt;The new theme is a work in progress. I am porting Carl Mason's SummerFruit theme for Wordpress. I've got most of the major stuff, I just need to get the comments and contact form styled.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125777"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125777" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/125777.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/10/11/check-the-new-flashy-style.aspx</guid>
            <pubDate>Sat, 11 Oct 2008 07:41:11 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/125777.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/10/11/check-the-new-flashy-style.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/125777.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/125777.aspx</trackback:ping>
        </item>
        <item>
            <title>Happy Birthday GWB!</title>
            <link>http://codebucket.org/archive/2008/10/08/happy-birthday-gwb.aspx</link>
            <description>&lt;p&gt;Today is the 5th birthday of &lt;a target="_blank" href="http://geekswithblogs.net/"&gt;GeeksWithBlogs.net&lt;/a&gt;. I have only been blogging here for about 6 months, but I am really digging the community and all the awesome bloggers who blog on &lt;a target="_blank" href="http://geekswithblogs.net/"&gt;GWB&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;A HUGE thanks to &lt;a target="_blank" href="http://geekswithblogs.net/jjulian/Default.aspx"&gt;Jeff Julian&lt;/a&gt; and &lt;a target="_blank" href="http://geekswithblogs.net/jalexander/Default.aspx"&gt;John Alexander&lt;/a&gt; for making &lt;a target="_blank" href="http://geekswithblogs.net/"&gt;GWB&lt;/a&gt; possible and for all that they do in the community as a whole. You guys rock! Here's to another five kick-ass years!&lt;/p&gt;  &lt;p&gt;Some of the awesome GWB blogs I've enjoyed:&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://geekswithblogs.net/cwilliams/Default.aspx"&gt;Chris Williams&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://geekswithblogs.net/dlussier/Default.aspx"&gt;D'arcy Lussier&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://geekswithblogs.net/tmoore/Default.aspx"&gt;Theo Moore&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://geekswithblogs.net/dsellers/Default.aspx"&gt;Dru Sellers&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://geekswithblogs.net/robz/Default.aspx"&gt;Rob Reynolds&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a target="_blank" href="http://geekswithblogs.net/MOSSLover/Default.aspx"&gt;Becky Isserman&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;~Lee&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125728"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=125728" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://codebucket.org/aggbug/125728.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lee Brandt</dc:creator>
            <guid>http://codebucket.org/archive/2008/10/08/happy-birthday-gwb.aspx</guid>
            <pubDate>Wed, 08 Oct 2008 23:46:24 GMT</pubDate>
            <wfw:comment>http://codebucket.org/comments/125728.aspx</wfw:comment>
            <comments>http://codebucket.org/archive/2008/10/08/happy-birthday-gwb.aspx#feedback</comments>
            <wfw:commentRss>http://codebucket.org/comments/commentRss/125728.aspx</wfw:commentRss>
            <trackback:ping>http://codebucket.org/services/trackbacks/125728.aspx</trackback:ping>
        </item>
    </channel>
</rss>
