<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>TechFocus2.0</title>
	
	<link>http://www.techfocus2.com</link>
	<description>Todays Tech, one Byte at a time</description>
	<pubDate>Sat, 31 Jan 2009 05:00:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Techfocus20" /><feedburner:info uri="techfocus20" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Setting up a FubuMVC Project from Scratch</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/tlKnBgkV2XU/</link>
		<comments>http://www.techfocus2.com/2009/01/setting-up-a-fubumvc-project-from-scratch/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 05:00:53 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[.NET (C#)]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Web Technology]]></category>

		<category><![CDATA[alt.net]]></category>

		<category><![CDATA[Asp.net]]></category>

		<category><![CDATA[FubuMVC]]></category>

		<category><![CDATA[MVC]]></category>

		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2009/01/setting-up-a-fubumvc-project-from-scratch/</guid>
		<description><![CDATA[I am going to start a series of articles on using FubuMVC for web projects. I have several reason for writing these, one of which is FubuMVC has a lack of documentation right now, so these articles will help out that cause. Also I am starting to do mostly web work, and want to do [...]]]></description>
			<content:encoded><![CDATA[<p>I am going to start a series of articles on using <a href="http://fubumvc.googlecode.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/fubumvc.googlecode.com');" target="_blank">FubuMVC</a> for web projects. I have several reason for writing these, one of which is FubuMVC has a lack of documentation right now, so these articles will help out that cause. Also I am starting to do mostly web work, and want to do these apps with FubuMVC as opposed to <a href="http://www.asp.net/mvc" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.asp.net');" target="_blank">Asp.net MVC</a>. (This is purely for personal reasons).     </p>
<h2>Upcoming Topics:</h2>
<p>Setting up the Bootstrapper and Global.asax    <br />Creating Models, Views, and Controllers with FubuMVC     <br />Adding database connectivity     <br />Using HTML helpers </p>
<p>I will most likely cross post these to the <a href="http://fubumvc.pbwiki.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/fubumvc.pbwiki.com');" target="_blank">FubuMVC wiki</a> once they are refined and final, so if any of you have comments, ways to do things better, or find things I should explain or do differently, please leave me a comment.</p>
<h2>Before You Begin</h2>
<p>Before you start your setup, head over to the <a href="http://fubumvc.googlecode.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/fubumvc.googlecode.com');" target="_blank">FubuMVC website</a>, grab the latest version of the source and compile it. This way you will have the references I am using below.</p>
<h2>Project Setup </h2>
<p>The first thing you need to do is go setup your project and folder structure. I am not going to detail the process here, because most people have thier own preferences and naming conventions but for my sampl I will be using the following folder structure:</p>
<ul>
<li>FubuSample </li>
<ul>
<li>lib </li>
<li>src </li>
<ul>
<li>FubuSample.Core </li>
<li>FubuSample.Web </li>
<li>FubuSample.Tests </li>
<li>FubuSample.sln </li>
</ul>
</ul>
<p> You may have noticed above that I am using three different projects: FubuSample.Core (class library), FubuSample.Web (Web Application) and FubuSample.Tests (class library). Setup these projects and we will move on, mine look like this:</ul>
<p><a href="http://www.techfocus2.com/wp-content/uploads/2008/SettingupaFubuMVCProjectfromScratch_13C31/FubuSampleProjectSetupv1.png"  target="_blank"><img title="FubuSampleProjectSetupv1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="330" alt="FubuSampleProjectSetupv1" src="http://www.techfocus2.com/wp-content/uploads/2008/SettingupaFubuMVCProjectfromScratch_13C31/FubuSampleProjectSetupv1_thumb.png" width="305" border="0" /></a> </p>
<p>Got it, great. Next thing I am going to do is add references required for FubuMVC to work. I added the following references to my projects: </p>
<ol>
<ol>
<li>FubuSample.Core
<ol>
<li>FubuMVC.Core </li>
<li>FubuMVC.Container.StructureMap </li>
<li>StructureMap </li>
<li>Microsoft.Practices.ServiceLocation </li>
</ol>
</li>
<li>FubuSample.Web
<ol>
<li>FubuSample.Core </li>
<li>FubuMVC.Core </li>
<li>FubuMVC.Container.StructureMap </li>
<li>StructureMap </li>
<li>Microsoft.Practices.ServiceLocation </li>
</ol>
</li>
<li>FubuSample.Tests
<ol>
<li>FubuSample.Core </li>
<li>FubuSample.Web </li>
<li>FubuMVC.Core </li>
<li>FubuMVC.Container.StructureMap </li>
<li>NUnit.Framework </li>
<li>Rhino.Mocks </li>
<li>StructureMap </li>
</ol>
</li>
</ol>
</ol>
<p>Once all the references are are in your 3 projects, you are almost ready to get going. The next thing to do is to setup a basic folder structure inside your projects. In the web project I added a Views folder and a Content folder; under the content folder I added seperate folders for images, scripts and stylesheets. Moving on to the Core project I added top level folders for&#160; Config, Domain, and Web. Under the Web folder I also added folders named Controllers, DisplayModels, Html, and WebForms. My folder structure now looks like this for my projects:</p>
<p><a href="http://www.techfocus2.com/wp-content/uploads/2008/SettingupaFubuMVCProjectfromScratch_13C31/FubuSampleProjectSetupv2AfterFolders.png" ><img title="FubuSampleProjectSetupv2-AfterFolders" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="523" alt="FubuSampleProjectSetupv2-AfterFolders" src="http://www.techfocus2.com/wp-content/uploads/2008/SettingupaFubuMVCProjectfromScratch_13C31/FubuSampleProjectSetupv2AfterFolders_thumb.png" width="315" border="0" /></a>     </p>
<p>Next up, setting up the Bootstrapper, Global.asax and Web.config for FubuMVC</p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/tlKnBgkV2XU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2009/01/setting-up-a-fubumvc-project-from-scratch/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2009/01/setting-up-a-fubumvc-project-from-scratch/</feedburner:origLink></item>
		<item>
		<title>A New Year, a New Opportunity</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/DYwEI_tM9RM/</link>
		<comments>http://www.techfocus2.com/2009/01/a-new-year-a-new-opportunity/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 00:16:19 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2009/01/a-new-year-a-new-opportunity/</guid>
		<description><![CDATA[I wanted to take a quick minute and let everybody know that I am pursuing a new opportunity with my career. I have been with my current employer for 10 years. I know that I have matured a great deal both professionally and personally during that time. I have no doubt that my current job [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to take a quick minute and let everybody know that I am pursuing a new opportunity with my career. I have been with my current employer for 10 years. I know that I have matured a great deal both professionally and personally during that time. I have no doubt that my current job and the relationships I developed have prepared me for the next step in my career. So now you are probably wondering what I am going to do, and to tell you the truth I haven’t cleared with my new employer how much I can write about yet, but I will do that soon.</p>
<p>&#160;</p>
<p>I can tell you this though, I am going to be managing and developing the software development side of a company that is in startup mode. We will be primarily doing Asp.Net Web Apps, MVC style. This is a little scary for me as I have been doing Win Forms development for the past 5 years, but I have kept my fingers in a lot of web stuff. I am also thinking we are going to build on top of <a href="http://code.google.com/p/fubumvc/" onclick="javascript:pageTracker._trackPageview('/outbound/article/code.google.com');" target="_blank">FubuMVC</a> vs. <a href="http://www.asp.net/mvc" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.asp.net');" target="_blank">Asp.Net MVC</a> . This is primarily because I am wanting to get involved with the development of FubuMVC as an Open Source Project this year. I have several pages of documentation on getting started with FubuMVC from scratch, I am sanitizing and creating posts / articles out of them as I have time.</p>
<p>&#160;</p>
<p>I am really excited about this new job, I have a good feeling that it is going to open up lots of new opportunities for me to stay involved with the Alt.Net community, and maybe I will get to see more of you more often.</p>
<p>&#160;</p>
<p>p.s. I will post more details if/when I am able.</p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/DYwEI_tM9RM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2009/01/a-new-year-a-new-opportunity/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2009/01/a-new-year-a-new-opportunity/</feedburner:origLink></item>
		<item>
		<title>Education Breakdown?</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/ZJ-y_xGwLxI/</link>
		<comments>http://www.techfocus2.com/2009/01/education-breakdown/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 15:15:13 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2009/01/education-breakdown/</guid>
		<description><![CDATA[I just got back from vacation and I was trying to catch up on the Alt.Net mailing list, and ran across a few heated discussions. Inside one of these discussions I ran across a post with the following statement:
Personally I think that university Computer Science programs are a      joke (at [...]]]></description>
			<content:encoded><![CDATA[<p>I just got back from vacation and I was trying to catch up on the <a href="http://tech.groups.yahoo.com/group/altdotnet/" onclick="javascript:pageTracker._trackPageview('/outbound/article/tech.groups.yahoo.com');" target="_blank">Alt.Net mailing list</a>, and ran across a few heated discussions. Inside one of these discussions I ran across a post with the following statement:</p>
<blockquote><p>Personally I think that university Computer Science programs are a      <br />joke (at least in the U.S., can&#8217;t speak for other countries). In my 4       <br />years at the U. of Toledo I think I had 5 classes that taught me       <br />something relevant to real world software development. The words       <br />&quot;unit test&quot; were never uttered in my classrooms &lt;shudder&gt;. College       <br />grads take this education into workplace and have no idea how to       <br />practically use the skills that they have learned.</p>
<p>&#160;</p>
<p>As far as I know there is nowhere you can go to get a formal education      <br />on advanced software development topics. User groups and conferences       <br />are great, but there are tons of devs that don&#8217;t go to those things.       <br />I&#8217;m talking about classes that teach you software development       <br />principles like what unit testing is, how to do test-driven       <br />development, what SOLID is, domain driven design, etc., or maybe more       <br />technology specific things like how to use NHibernate, how to optimize       <br />ASP .NET applications, etc.</p>
</blockquote>
<p>I have to say that I wholeheartedly agree with this statement. In my 7 years in college I had never heard of Unit Testing, SOLID principles, etc. It wasn’t until I began to use the basic building blocks I was taught in daily software development that I realized, “Hey, there is a better way to do this stuff.” Then I found the Alt.Net community and began further educating myself on these topics. The most important part of what I just discussed is, “I educated myself.” In large part this is the one single thing that separates a great developer from a programmer, initiative. You have to want to continuously improve and hone your skills in order to become a great developer.</p>
<p>&#160;</p>
<h3>Why does this education breakdown exist?</h3>
<p>I have my opinions on why this education breakdown exists and I would love to hear yours as well. I think one of the biggest reasons this happens is because Computer Science programs tend grow from within themselves. I mean obviously if you have been in college for 12 years and have a PhD in Computer Science then you are an expert software developer, right? I say WRONG; It becomes the blind leading the blind in a redundant cycle over and over. Most PhD Computer Science professors are what I would call “Research Oriented.” They go through their entire educational career never writing any real business software. They focus on research projects, and exercises that are only important in school. They are not forced into dealing with the pain and struggle that full-time normal developers encounter each and every day. The dynamics of developing software with a team and a boss, and their bosses boss, not to mention timelines and financial constraints. These “Expert” professors hold the students well being (grades) in their hands, and mandate that you do it their way or you fail. Nobody wants to fail so they do it their way, and the cycle continues.</p>
<p>Some professors may actually come from the industry, but many only join academia in retirement. More likely than not, they were not a developer when they retired, they had become “successful” and moved into management. Either way, it has probably been a while since they were in the trenches developing software on a daily basis. Compounding the problem are advances in language, methods, and principles. The software they wrote a long time ago was in different languages than what is taught at colleges and universities today. They are now learning new languages so they can teach them to students. They are so focused on the new languages that they neglect the principles that are language independent like Unit Testing, SOLID principles, ORM’s, TDD, etc.</p>
<p>&#160;</p>
<h3>What can we do to stop the cycle?</h3>
<p>I believe we have to take action as individuals inside the community to change the path that our future team members are on as soon as possible. Each year, the cycle perpetuates itself.</p>
<p>One of the ways we can do this within our own teams is to have “The Way”. Inside our development team we have “The Way”, which is the way we develop software. We practice TDD, Unit Testing, DDD, we adhere to SOLID principles, we use NHibernate. That is “The Way” we develop software. Now this puts a burden on the company, and on the seasoned developers to spend time with new team members and teach them how to do these things. This does two things: it helps develop a team working environment and hopefully instills in them personal initiative to continuously improve their software skills. </p>
<p>Another way that I am currently doing is to get involved with your local college, community college, or University and teach some classes. Remember, the professor’s way is the students way. I currently teach classes at our local university and these are the exact things I want to engrain in the minds of these students. Next week I begin teaching an upper level Systems Analysis and Design class. During the semester we will design and begin developing an Open Source Learning Management System,will make the students learn and practice concepts such as pairing, unit testing, SOLID principles and practice using an ORM. They will create this project in C#, as that is my language of choice, but will understand that these tools and concepts are not tied to one language. </p>
<p>You may or may not be able to teach a class at your local university but I would be highly surprised if you could not, at the very least, give a talk at a “Computer Science Club” meeting about these things in an evening.</p>
<p>I know I do not have all the answers, but this is the best way for me to make a difference. I would like to hear opinions and other things we can do to help alleviate this breakdown in education of our future employees and teammates.</p>
<p>-Ryan</p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/ZJ-y_xGwLxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2009/01/education-breakdown/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2009/01/education-breakdown/</feedburner:origLink></item>
		<item>
		<title>Quick 2008 Recap and a few New Years Resolutions</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/njqQtmaCb78/</link>
		<comments>http://www.techfocus2.com/2009/01/quick-2008-recap-and-a-few-new-years-resolutions/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 15:56:23 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2009/01/quick-2008-recap-and-a-few-new-years-resolutions/</guid>
		<description><![CDATA[Whew, I cannot believe that 2008 is over already, it seems like it just started. 2008 was a great year for me as a developer for several reasons. 
&#160;
Met new People
I was able to meet a ton of new people in 2008, both online through blogs and other communities, and at KaizenConf in Austin. This [...]]]></description>
			<content:encoded><![CDATA[<p>Whew, I cannot believe that 2008 is over already, it seems like it just started. 2008 was a great year for me as a developer for several reasons. </p>
<p>&#160;</p>
<h3>Met new People</h3>
<p>I was able to meet a ton of new people in 2008, both online through blogs and other communities, and at KaizenConf in Austin. This is probably the single most important thing that happened to me in 2008 because it helped put me into circle of people that share the same thoughts and values about software development that I do. </p>
<p>&#160;</p>
<h3>Alt.Net Introduction</h3>
<p>I was also introduced to the Alt.Net movement during 2008. I have been developing software for several years and some of the things I had been doing just didn’t seem quite right, they worked, but they had a smell to them. Enter Alt.Net, this stuff just makes sense. It is smart software development, that revolves around creating highly testable, highly maintainable code that follows the SOLID design principles. I have come to realize that if you just ask yourself “How does this proposed solution adhere to the SOLID principles” you will write much more elegant code.    </p>
<h3>KaizenConf Open Spaces Conference</h3>
<p>This was my first open spaces conference and I didn’t know what to expect but I came away with the feeling that this was the best conference I had ever been to. KaizenConf helped fuel my fire for continuing with more Alt.Net stuff, working on Lean Software Development and KanBan methods, and staying involved with the community. It even spurred me to start blogging more frequently about <a href="http://www.techfocus2.com/tags/kaizenconf/"  target="_blank">these topics</a>. </p>
<p>&#160;</p>
<h3>Some 2009 Resolutions</h3>
<p>I have a few resolutions I am going to make for the new year, some are computer related, some are not. </p>
<ul>
<li>Blog More – I am targeting 52 blog posts in 2009, that is a little more than double from 2008 and is only 1 per week. </li>
<li>Fish more, I love fly fishing, just need to make more time </li>
<p>&#160; - Fly Fish for Bass – talk about fun!
<li>Write Elegant Code – I am staying committed to SOLID principles, testability and maintainable code. </li>
<li>Learn more about Asp.Net – Especially MVC stuff, I have been doing WinForms development for the past 4 years, so I am looking forward to this one. </li>
<li>Learn a new Programming Language – Everybody should do this every year. </li>
</ul>
<p>I am going to stop there, I don’t want to set any unrealistic expectations for myself during the year. I think all of these are very attainable and I hope that my list has spurred some inner resolution making within you to go out and commit to something new in 2009.</p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/njqQtmaCb78" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2009/01/quick-2008-recap-and-a-few-new-years-resolutions/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2009/01/quick-2008-recap-and-a-few-new-years-resolutions/</feedburner:origLink></item>
		<item>
		<title>TeamCity - Build failed on WPF Unit Tests</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/ORAaKkKBUxk/</link>
		<comments>http://www.techfocus2.com/2008/12/teamcity-build-failed-on-wpf-unit-tests/#comments</comments>
		<pubDate>Mon, 01 Dec 2008 21:46:36 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[Windows]]></category>

		<category><![CDATA[alt.net]]></category>

		<category><![CDATA[How-To]]></category>

		<category><![CDATA[NUnit]]></category>

		<category><![CDATA[TeamCity]]></category>

		<category><![CDATA[Testing]]></category>

		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2008/12/teamcity-build-failed-on-wpf-unit-tests/</guid>
		<description><![CDATA[I have been working today with Jeremy Millers’ ScreenBinder stuff and ran into a problem today with the tests. The tests all passed fine in Visual Studio, and with rake at the command line on my computer. The problem however came when I checked the code into source control, I got a nasty test failure [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working today with <a href="http://codebetter.com/blogs/jeremy.miller/" onclick="javascript:pageTracker._trackPageview('/outbound/article/codebetter.com');" target="_blank">Jeremy Millers’</a> ScreenBinder stuff and ran into a problem today with the tests. The tests all passed fine in Visual Studio, and with rake at the command line on my computer. The problem however came when I checked the code into source control, I got a nasty test failure message in <a href="http://www.jetbrains.com/teamcity/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jetbrains.com');" target="_blank">TeamCity</a>:</p>
<p>&#160;</p>
<p><a href="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/BuildError.jpg" ><img title="BuildError" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="385" alt="BuildError" src="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/BuildError_thumb.jpg" width="724" border="0" /></a></p>
<p>Here is the error: Test(s) failed. System.Runtime.InteropServices.COMException : The program issued a command but the command length is incorrect. (Exception from HRESULT: 0&#215;80070018)</p>
<p>So I did some googling around and found there is a bug in the .NET Framework 3.5 SP1 <a href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=361469" onclick="javascript:pageTracker._trackPageview('/outbound/article/connect.microsoft.com');" target="_blank">regarding this issue</a>. So a little more work and I found a work around. I believe this bug only pertains to WPF stuff.</p>
<p>&#160;</p>
<p>Workaround</p>
<p>On the build agent do the following:</p>
<ol>
<li><strong>Stop</strong> the TeamCity Build Agent service (Start –&gt; Run –&gt; services.msc –&gt; TeamCity Build Agent –&gt; Right Click –&gt; Stop) </li>
<li>Browse to the service file (<strong>C:\TeamCity\BuildAgent\launcher\bin</strong>)       <br /><a href="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Files1.jpg" ><img title="Files1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="442" alt="Files1" src="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Files1_thumb.jpg" width="728" border="0" /></a> </li>
<li>Right click <strong>TeamCityAgentService-windows-x86-32.exe</strong> and click <strong>Properties</strong> </li>
<li>Go to the Compatibility Tab      <br /><a href="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Properties1.jpg" ><img title="Properties1" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="433" alt="Properties1" src="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Properties1_thumb.jpg" width="318" border="0" /></a> </li>
<li>Click <strong>Show settings for all users</strong> </li>
<li>Change the <strong>Compatibility mode</strong> to be <strong>Windows XP (Service Pack 2)</strong>       <br /><a href="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Properties2.jpg" ><img title="Properties2" style="display: inline" height="431" alt="Properties2" src="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Properties2_thumb.jpg" width="330" border="0" /></a> </li>
<li>Click <strong>OK</strong> a few times to close all the windows </li>
<li><strong>Start</strong> the TeamCity Build Agent service. </li>
</ol>
<p>You should now have a working build with WPF unit tests. Hope this helps somebody out as I was banging my head on the wall trying to figure it out.</p>
<p> <a href="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Success01.jpg" ><img title="Success01" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="69" alt="Success01" src="http://www.techfocus2.com/wp-content/uploads/2008/TeamCityBuildfailedonWPFUnitTests_DDDB/Success01_thumb.jpg" width="1182" border="0" /></a>   <br /><!--adsensestart--></p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/ORAaKkKBUxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2008/12/teamcity-build-failed-on-wpf-unit-tests/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2008/12/teamcity-build-failed-on-wpf-unit-tests/</feedburner:origLink></item>
		<item>
		<title>CSLA - first base was fun, but I want a relationship</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/30QVOg9428s/</link>
		<comments>http://www.techfocus2.com/2008/11/csla-first-base-was-fun-but-i-want-a-relationship/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 04:22:30 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[.NET (C#)]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[alt.net]]></category>

		<category><![CDATA[CSLA]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2008/11/csla-first-base-was-fun-but-i-want-a-relationship/</guid>
		<description><![CDATA[The scene opens on a typical fall Saturday evening at the local sports bar filled with enthusiastic football fans cheering loudly at the myriad of TV screens scattered around. In one small corner sitting around a high table is a group of people visiting about software development. Two guys, eager to make friends, walk up [...]]]></description>
			<content:encoded><![CDATA[<p>The scene opens on a typical fall Saturday evening at the local sports bar filled with enthusiastic football fans cheering loudly at the myriad of TV screens scattered around. In one small corner sitting around a high table is a group of people visiting about software development. Two guys, eager to make friends, walk up introduce themselves and let slip they’ve been developing software with CSLA for the past few years, and are looking for redemption.” The rest of the table then looks at each other and responds in chorus, “I’m Sorry!”</p>
<p>&#160;</p>
<p>The shock on their faces at the collective “I’m Sorry” was a bit much. They knew some people have very differing opinions about different frameworks and tools, but hearing it confessed out loud was a breath of fresh air. </p>
<p>Recently our development team decided to stop developing with the CSLA framework. Before I get into specifics, I want to be very clear about something up front. I have no problem with people that continue to use CSLA. We used CSLA for nearly 4 years and it has worked in way it was designed.</p>
<p>&#160;</p>
<p>While Hiren and I were at KaizenConf in Austin we made sure to find a few minutes each evening before getting caught up with a large group, to recap the day and share some new things we each learned. One of these nights while relaxing and evaluating what we’d been learning we came to the conclusion that it was time for us to step away from new development with CSLA and migrate existing codebases as well. Over the past week we have been outlining and discussing these ideas and why we have made the decision to move away from CSLA. </p>
<p>&#160;</p>
<p>It all started a few months ago when we first started getting introduced to the Alt.Net ways of developing software. What I mean by the Alt.Net ways are things like S.O.L.I.D. principles, ORM use, unit testing, Domain Driven Design, Mocking, TDD, etc… All of this has really changed the way we think about and develop software. Even before this though Hiren and I made a very dangerous combination of developers because we are never satisfied with a piece of code once it is written, we usually have to talk one another into just leaving it alone because it works and is as good as it needs to be to get the job done. </p>
<p>&#160;</p>
<p>There are several driving forces behind this decision, but the primary one is that our CSLA business objects just leave a bad taste in our mouth. Our systems are moderately complex and it is not uncommon at all to have a class with 1500 – 2500 lines of code, in fact that is probably an average line count in most business objects. The other thing that really smells to us is that the “model” contains a lot of stuff that is not directly related to the model, namely data access.</p>
<p>&#160;</p>
<p>I would like to take a minute to point out some of the things I really like and will miss about CSLA, and some of the other reasons for making the switch.</p>
<p>&#160;</p>
<p>&#160;</p>
<h4>CSLA, I will miss some of you:</h4>
<ul>
<li>Validation Rules System </li>
<li>Data binding Support </li>
<li>Combo of these == reach UI validation for user </li>
<li>Good set of guiding principles and samples to get started with. </li>
<li>Rocky’s Books! </li>
</ul>
<h4>I won’t miss these parts though:</h4>
<ul>
<li>Data Access code in business object </li>
<li>Difficult to mock out data access in mocking </li>
<li>N-Level undo – I never, ever used this but had to contend with it, like it or not </li>
<li>“Super” Classes </li>
</ul>
<p>These are purely my opinion so take them as they are. I still think CSLA has a place for some people and unlike others I have run into on the internet, I will not bash you or think you are stupid for using it. CSLA was an excellent stepping stone for us; it introduced and really engrained the Object-Oriented Programming style of thinking into our minds. I/we just feel like we have matured to a new level of development through better understanding of our software development process and how apply those skills to our situation.</p>
<p>&#160;</p>
<p>We are still learning and don’t yet know exactly what our development style is going to be end-to-end on this project. We have a long way to go before we are completely comfortable with all these new tools. Luckily, the Alt.Net community seems to be an open and accepting group and nearly everyone is willing to help us out along the way. </p>
<p>What I do know is that no team can just take what one person or one book says and do it that way. It won’t work. What we are doing is educating ourselves on different practices and tools and using what works for us, we do a lot of spikes right now. We are also building our domain model with POCO’s which gives us a great amount of flexibility in the infrastructure and presentation layers of our system. As we continue this process I will post successes and failures here on my blog.</p>
<p>  <!--adsensestart--></p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/30QVOg9428s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2008/11/csla-first-base-was-fun-but-i-want-a-relationship/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2008/11/csla-first-base-was-fun-but-i-want-a-relationship/</feedburner:origLink></item>
		<item>
		<title>Lean with Kanban is Not One Size Fits All</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/lgXsfpoY-xE/</link>
		<comments>http://www.techfocus2.com/2008/11/lean-with-kanban-is-not-one-size-fits-all/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 04:58:06 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Lean Software]]></category>

		<category><![CDATA[KanBan]]></category>

		<category><![CDATA[Lean]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/?p=150</guid>
		<description><![CDATA[I have to say that I am very excited about all the lean software development process talks that have been buzzing around in the community lately. This is generating lots of good first hand experience that is being shared with the community which I think is excellent. I would like to talk about two main [...]]]></description>
			<content:encoded><![CDATA[<p>I have to say that I am very excited about all the lean software development process talks that have been buzzing around in the community lately. This is generating lots of good first hand experience that is being shared with the community which I think is excellent. I would like to talk about two main points tonight, a pet peeve of mine that I just need to rant about for a few lines and second I would like to point out some of the other great stuff that is out there and discuss it a little.</p>
<h2>Lean is the Process, Kanban the Tool</h2>
<p>I personally think that a lot of people equate Kanban as being<a href="http://www.techfocus2.com/wp-content/uploads/2008/LeanwithKanBanisNotOneSizeFitsAll_12A4C/BedSupermarket1.jpg" ><img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" title="BedSupermarket1" src="http://www.techfocus2.com/wp-content/uploads/2008/LeanwithKanBanisNotOneSizeFitsAll_12A4C/BedSupermarket1_thumb.jpg" border="0" alt="BedSupermarket1" width="292" height="223" align="right" /></a> the methodology or even worse an equivalent replacement to Agile or Scrum. This is absolutely not the case, KanBan is not even a methodology like the others. This is a very important point that is often overlooked, especially when new people are trying to learn and apply <a href="http://en.wikipedia.org/wiki/Lean_Manufacturing" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Lean</a> practices in their software process. <a href="http://en.wikipedia.org/wiki/Kanban" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">Kanban</a> is a Japanese word meaning literally “Signal Card” or “Signal Board”. A Kanban board is just a visual tool used to signal flow and show limits of the process and to create the signal for the pull flow of the system. <a href="http://www.lostechies.com/blogs/derickbailey/archive/2008/11/20/kanban-pulling-value-from-the-supplier.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.lostechies.com');" target="_blank">Derick Bailey</a> has a great easy to understand example of a Kanban in the shape of a grocery store over on his blog. I work for a Lean Manufacturer and we don’t use a “Kanban” in the traditional sense per say because we do not pass cards around the manufacturing floor, we do however use signaling and that is what KanBan is really all about. We refer to our signaling system as our “Supermarkets”, what these supermarkets are actually physical spaces in the production area that are designated for certain types and variations of product.  When a supermarket has an empty space, somebody up the process builds the product to refill that supermarket. To the right is a picture of one of our actual supermarkets, this is a bed supermarket.</p>
<p> </p>
<p> </p>
<p>Whether you are using cards, boards or supermarket’s the most important thing is that it is creating a signal in the pull system, and this enables flow. The two other really important pieces that Derick does a good job explaining are Order Points and Limits with his grocery store example so I won’t go to far in depth on this. These are two very basic items that every inventory management system has or should have at least. You obviously wouldn’t waste money shipping one box of cereal from General Mills every time a custom took one off the shelf. These just provide a way for the store or the development team to manage the amount of inventory they carry.</p>
<p> </p>
<p>I kind of got carried away on what a Kanban was so let me get back on topic. A KanBan could be useful for various methodologies I think but it really shines if you are doing Lean Software Engineering. Lean is the methodology and I think there is a fear rising up within the software community that a lot of teams are just going to “Cargo Cult” this stuff and it really doesn’t work that way. Lean is a way of thinking, just like many of the Alt.Net principles. There are no hard and fast guidelines to implement Lean in 14 days, it is a process and takes time. Even then if you are practicing lean you will never stop implementing lean. I will get off my soap box but I just want people to know the difference between the tools and the methodologies.</p>
<h2>Lean comes in Different Sizes</h2>
<p>This is what I am really excited about right now. I know of 3 people currently implementing (or hoping to) Lean in their teams right now. The best part of this is that we are sharing the processes that we are following to make this as open as possible for other teams to follow along with. This is great because we are all in different teams, sizes, makeup, skill level, etc… So we should see some very different yet exciting results come out of all this. I committed to documenting my implementation at <a href="http://kaizenconf.pbwiki.com/Austin+2008-10-30+to+2008-11-02" onclick="javascript:pageTracker._trackPageview('/outbound/article/kaizenconf.pbwiki.com');" target="_blank">KaizenConf</a> and have started with a <a href="http://www.techfocus2.com/tags/lean/"  target="_blank">few posts</a> on what I have done so far. Louis Salin also has a series of great articles on his blog that are a recap of several sessions from <a href="http://kaizenconf.pbwiki.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/kaizenconf.pbwiki.com');" target="_blank">KaizenConf</a> combined with his own thoughts on this implementation and guess what, It isn’t that much different from the rest of us, only it is his way, which is awsome!</p>
<p> </p>
<h4>Louis Salin – The bag and the Kanban:</h4>
<ol>
<li><a href="http://blog.lonestardeveloper.com/2008/11/bag-and-kanban-part-1.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.lonestardeveloper.com');" target="_blank">The bag and the Kanban, part 1</a></li>
<li><a href="http://blog.lonestardeveloper.com/2008/11/bag-and-kanban-part-2.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.lonestardeveloper.com');" target="_blank">The bag and the Kanban, part 2</a></li>
<li><a href="http://blog.lonestardeveloper.com/2008/11/activity-modeling-and-bag.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/blog.lonestardeveloper.com');" target="_blank">Activity Modeling and the bag</a></li>
</ol>
<p>Louis has got some great ideas here, especially the bag idea. This is something very similar to what I have been thinking of / calling my “To-do” list. I will expand on this topic in a few days, we are currently re-working the way we deal with items before they make it on the backlog.</p>
<p> </p>
<h4>Derick Bailey – Adventures in Lean</h4>
<p>Derick Bailey has just started his series, “<a href="http://www.lostechies.com/blogs/derickbailey/archive/2008/11/19/adventures-in-lean.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.lostechies.com');" target="_blank">Adventures in Lean</a>”, and I think this will be very interesting to follow as well. Derick’s team is a larger team that I have for sure, and I think larger that Louis’ team too.</p>
<p> </p>
<h4>Ryan Kelley – Lean in Small Teams</h4>
<p>I am documenting the Lean implementation in our team as we go along. I will continue to write about this, good things and bad so hopefully other people can learn from what we are doing. That said, we are a very small team, in fact if we were any smaller we wouldn’t be a team. Some may think that for a 2 – 4 person team you don’t need to do Lean but I say that is Bull****. One of the main reasons we are “Going Lean” is to bring some formality into a process that hasn’t ever had any before. We are probably the most disciplined department in the company with regards to how we work, so we need to share the discipline around a little and off-load more responsibility to the customer.</p>
<p>Until next time, I hope this as whet your appetite for more Lean / Kanban discussions.</p>
<p><!--adsensestart--></p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/lgXsfpoY-xE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2008/11/lean-with-kanban-is-not-one-size-fits-all/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2008/11/lean-with-kanban-is-not-one-size-fits-all/</feedburner:origLink></item>
		<item>
		<title>Strongly typed Collections of Abstract Objects</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/myzr1XBbi5w/</link>
		<comments>http://www.techfocus2.com/2008/11/strongly-typed-collections-of-abstract-objects/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 04:34:00 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[.NET (C#)]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[C#]]></category>

		<category><![CDATA[DDD]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/2008/11/strongly-typed-collections-of-abstract-objects/</guid>
		<description><![CDATA[Some of you know that we are in the process of not using Csla anymore, this is a decision that just seems logical for us, but that is another post. I need a little help implementing a problem in my domain. Now the sample I am posting is out of a dumbed down version I [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you know that we are in the process of not using Csla anymore, this is a decision that just seems logical for us, but that is another post. I need a little help implementing a problem in my domain. Now the sample I am posting is out of a dumbed down version I have been using to spike with. Take a look at the following class diagram and then I will explain what is going on and what my problem is:</p>
<p><a href="http://www.techfocus2.com/wp-content/uploads/2008/StronglytypedCollectionsofAbstractObject_138A6/OrderClassDiagram01.png" ><img style="border-top-width: 0px; display: block; border-left-width: 0px; float: none; border-bottom-width: 0px; margin-left: auto; margin-right: auto; border-right-width: 0px" title="Order-ClassDiagram01" src="http://www.techfocus2.com/wp-content/uploads/2008/StronglytypedCollectionsofAbstractObject_138A6/OrderClassDiagram01_thumb.png" border="0" alt="Order-ClassDiagram01" width="579" height="618" /></a></p>
<p>What is going on here you ask? Order is the primary object type, but it is abstract. I have maybe 7 different types of orders, service order, make order, repair order, etc… each order has several attributes that are always present on every order. What makes each order unique is the attributes that are not shared between all orders. This is why I have decided to use inheritance.</p>
<p>One of the items that are common between all types of orders is that they all have many parts. However, I want the base Order class to have a collection of base OrderPart objects. OrderPart is the mapping object in between Order and Part for the Many To Many relationship, I am using an object because this association has state of it’s own. Now to complicate matters even more, each concrete Order can have a different concrete type of Part and OrderPart assigned to it.</p>
<p>I have the model all setup and Have written some tests against it as I wrote it, not really test first but hey, I am spiking here. So below is one of the tests that shows most of this in action.</p>
<pre name="code" class="c#">

public void CanCreateOrderWithCustomerAndParts()
{
var order = new CustomOrder();
order.Customer = new Customer
{
Name = &quot;John Smith&quot;,
Address =
new Address
{
Street = &quot;45623 Easy&quot;,
State = &quot;TX&quot;,
City = &quot;Dalals&quot;,
ZipCode = &quot;73884&quot;
}
};
order.OrderNumber = &quot;Y984939&quot;;
order.Amount = (decimal) 1234.33;
order.CustomOrderDescription = &quot;Testing adlkfjl 123&quot;;
order.Parts =
new List
{
new CustomOrderPart
{
Part =
new CustomPart
{
PartNumber = &quot;Part456sdf34&quot;,
Description = &quot;Test Partasd 87&quot;,
CustomPartText = &quot;TEST&quot;,
},
Quantity = 12
},
new CustomOrderPart
{
Part =
new CustomPart
{
PartNumber = &quot;PARTWITHNULLPULLLOCATION&quot;,
Description = &quot;Test Part 848sasd8243&quot;,
CustomPartText = &quot;TEST&quot;,
},
Quantity = 251
}
};

With.Transaction(() =&gt; Repository.Save(order));

Order createdOrder = Repository.Get(order.Id);

Assert.IsNotNull(createdOrder);
Assert.AreEqual(2, createdOrder.Parts.Count);
}
</pre>
<p>Don&#8217;t make fun of my test code, like I said, it&#8217;s a spike. But when I create a CustomOrder I am creating Parts as a new List&lt;OrderPart&gt; which is how it is implemented. But then I had new CustomOrderParts and CustomParts into that collection. NHibernate will persist this information correctly into the database and will retrieve it correclty from the DB. So seemingly all works fine right, sure I guess. Maybe it is just because I have been in Csla land so long that I don’t know any different but what I am really missing is being able for the concrete order object to know what concrete type of  OrderPart is contained in the parts collection. As I wrote that I just kicked myself, if that isn’t a violation of Seperation of Concerns I don’t know what is, or is it? I mean Order or a concrete Order is basically an Aggregate Root in DDD terms so it is the responsible entry point into the chain/web of objects that make up the aggregate.</p>
<p>So, for my real question which I am not sure of now, How would you tackle this design problem? How do you handle child collections? Am I just way off the reservation?</p>
<p><!--adsensestart--></p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/myzr1XBbi5w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2008/11/strongly-typed-collections-of-abstract-objects/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2008/11/strongly-typed-collections-of-abstract-objects/</feedburner:origLink></item>
		<item>
		<title>NHibernate Caching Explained, finally!</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/F2Iss3YnWrY/</link>
		<comments>http://www.techfocus2.com/2008/11/nhibernate-caching-explained-finally/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 13:33:51 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[Programming]]></category>

		<category><![CDATA[SQL]]></category>

		<category><![CDATA[alt.net]]></category>

		<category><![CDATA[Caching]]></category>

		<category><![CDATA[NHibernate]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/?p=128</guid>
		<description><![CDATA[Gabriel Schenker has just posted an excellent article explaining in detail how to the 1st and 2nd level cache in NHibernate works. This is a long overdue article on caching that will greatly benefit the community. The article also explains the differences between Get(id) and Load(id) when retrieving entities through NHibernate. I am recommending this [...]]]></description>
			<content:encoded><![CDATA[<p>Gabriel Schenker has just posted an <a href="http://blogs.hibernatingrhinos.com/nhibernate/archive/2008/11/09/first-and-second-level-caching-in-nhibernate.aspx" onclick="javascript:pageTracker._trackPageview('/outbound/article/blogs.hibernatingrhinos.com');" target="_blank">excellent article</a> explaining in detail how to the 1st and 2nd level cache in NHibernate works. This is a long overdue article on caching that will greatly benefit the community. The article also explains the differences between Get(id) and Load(id) when retrieving entities through NHibernate. I am recommending this article because it is an in depth look at one of the pieces I <a href="http://www.techfocus2.com/2008/10/kaizenconf-workshops-advanced-nhibernate/" >covered</a> earlier on <a href="http://www.ayende.com/blog" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.ayende.com');" target="_blank">Ayende&#8217;s</a> session from KaizenConf.<br />
<!--adsensestart--></p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/F2Iss3YnWrY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2008/11/nhibernate-caching-explained-finally/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2008/11/nhibernate-caching-explained-finally/</feedburner:origLink></item>
		<item>
		<title>DDD - Just reading book</title>
		<link>http://feedproxy.google.com/~r/Techfocus20/~3/KVG5qju7WhA/</link>
		<comments>http://www.techfocus2.com/2008/11/ddd-just-reading-book/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 03:09:56 +0000</pubDate>
		<dc:creator>Ryan Kelley</dc:creator>
		
		<category><![CDATA[Commentary]]></category>

		<category><![CDATA[Development]]></category>

		<category><![CDATA[DDD]]></category>

		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.techfocus2.com/?p=124</guid>
		<description><![CDATA[When I got back from #KaizenConf I had to order a copy of Eric Evans book, Domain-Driven Design: Tackling Complexity in the Heart of Software. Main reason being that I went to a DDD session Dave had and learned a lot that just made sense so I figured it was a must have. So I [...]]]></description>
			<content:encoded><![CDATA[<p>When I got back from #KaizenConf I had to order a copy of Eric Evans book, <a href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.amazon.com');" target="_blank">Domain-Driven Design: Tackling Complexity in the Heart of Software</a>. Main reason being that I went to a DDD session Dave had and learned a lot that just made sense so I figured it was a must have. So I ordered it, got it and have been reading it the majority of the weekend and I must say it is a very good book. For me though a lot of has been just giving formal names to the things we were already doing. Most of this is because we are a small team/company so we have always been the developers/business analysts etc&#8230;. But overall very good so far with good emphasis in the right places I think.</p>
<img src="http://feeds.feedburner.com/~r/Techfocus20/~4/KVG5qju7WhA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.techfocus2.com/2008/11/ddd-just-reading-book/feed/</wfw:commentRss>
		<feedburner:origLink>http://www.techfocus2.com/2008/11/ddd-just-reading-book/</feedburner:origLink></item>
	</channel>
</rss>
