DevAuthority.Com &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; you need to get development done. http://devauthority.com/roller/default.aspx http://backend.userland.com/rss Community Server v2.0 (http://www.communityserver.org) NHibernate presentation files available for download <p>On November 7, 2007, I gave a presentation to the <a href="http://www.nddnug.net/Meeting.aspx?ID=95c5df23-5f0f-426a-b55b-51f48f31e05c">North Dallas .Net User Group</a>&nbsp;entitled &quot;Introduction to NHibernate 1.2&quot;.</p> <p>As promised, I have made all the code samples/demos available for download at the following link:<br /><a title="http://code.google.com/p/palermo/" href="http://code.google.com/p/palermo/">http://code.google.com/p/palermo/</a></p> <p>NHibernate is one of the demos I have available and to make it easier, I have zipped it up and made it a stand-alone download on the right column; however, if you want to run these samples, I recommend&nbsp; you doing&nbsp; a checkout of the trunk.&nbsp; You will then have the libraries needed to run the code.</p> <p>Workstation dependencies include:</p> <ul> <li>VS 2008 Beta 2 (solution file is in that format, although code works on CLR 2.0)</li> <li>SQL Server running at (local) with the Northwind database loaded.</li> <li>Run &quot;ClickToBuild.bat&quot;, and the other demo database will be created, and all the test scenarios will run to verify everything is hooked up.&nbsp; Then you can open VS, browse and play.</li></ul><img src="http://codebetter.com/aggbug.aspx?PostID=170735" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=szEAj0B"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=szEAj0B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=BI8pPvb"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=BI8pPvb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=GCZBB6b"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=GCZBB6b" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/jeffreypalermo/~4/182248568" height="1" width="1" /> http://feeds.feedburner.com/~r/jeffreypalermo/~3/182248568/nhibernate-presentation-files-available-for-download.aspx Jeffrey Palermo [MVP] http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/09/nhibernate-presentation-files-available-for-download.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170735 Fri, 09 Nov 2007 08:01:28 GMT Implement a "standard" document ? Be strict when you write but forgiving when you read <p>A notorius document standard is iCal which describes a (text based) standard to exchange scheduling appointments. Every piece of scheduling software and loads of home grown applications support the iCal format. What an iCal document is supposed to look like is described in a <a href="http://www.ietf.org/rfc/rfc2445.txt">RFC</a>. The main problem with such a specification is that it is far too large and academic for the average developer to comprehend. As a result the many iCal appointments flying over the web have many differences. Also bigger applications are guilty, almost every version of Outlook produces iCal&#39;s in a different format. </p><p>It&#39;s not easy to make sure your iCal documents follow the standard. It would be nice if it was an xml-document, in that case you could validate it against a schema. My advice is to check not only the RFC but do Google around a lot. We did this in <a href="http://codebetter.com/blogs/peter.van.ooijen/archive/2007/01/17/The-outlook-calendar_2C00_-iCalendar-and-RFC-2445.aspx">our iCal project</a>. It is now deployed and we only have one problem with one specific version of mobile Outlook. Not bad. </p><p>When it comes to reading an iCal document I suggest your code to be forgiving. Take this example which <a href="http://codebetter.com/blogs/scott.bellware/archive/2007/10/27/170299.aspx">happened to Scott</a>. He had to convert the incoming document to lowercase by hand before his Mac iCal program would accept it. Is the casing in the RFC ? Perhaps. Did the code have to be that strict ? I don&#39;t think so.</p><img src="http://codebetter.com/aggbug.aspx?PostID=170729" width="1" height="1"> http://codebetter.com/blogs/peter.van.ooijen/archive/2007/11/09/implement-a-standard-document-be-strict-when-you-write-but-forgiving-when-you-read.aspx Peter&#39;s Gekko http://codebetter.com/blogs/peter.van.ooijen/archive/2007/11/09/implement-a-standard-document-be-strict-when-you-write-but-forgiving-when-you-read.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170729 Fri, 09 Nov 2007 01:36:05 GMT New and Notable 203 <p>Taking a brief break on what has been a nonstop busy work day since the minute I woke up (and that&#39;s how I like it!)</p> <p>TDD/Software Development/Tools</p> <ul> <li> <div><a class="" id="viewpost_ascx_TitleUrl" href="http://jeremyjarrell.com/archive/2007/11/06/67.aspx">Free MbUnit and NUnit Test Templates for ReSharper</a>&nbsp;</div></li></ul> <p>DDD/Software Architecture/Software Design</p> <ul> <li> <div>As you regular readers of this blog know, I am a huge fan and proponent of DDD. I use it in a lot of my work, I show it in every INETA talk I do and it&#39;s in our<a class="" href="http://www.codeplex.com/neuparts"> Neuparts code</a>.&nbsp;Eric Evans, founder of DD: &quot;Why bother with models? <a class="" href="http://www.infoq.com/news/2007/11/model-to-work-evans">Eric Evans explains</a> that the most critical complexity of most software projects is understanding the business domain itself. In this talk Evans talks about the foundations of Domain-Driven Design and how to make a domain model truly pull its weight and positively transform a project.&quot;</div></li></ul> <p>ASP.NET/ASP.NET MVC Framework</p> <ul> <li> <div><a class="" href="http://www.hanselman.com/blog/DevConnectionsTheASPNETMVCFramework.aspx">Scott Hanselman continues to spread the good word</a> on the upcoming ASP.NET MVC Framework</div></li></ul> <p>Other Link Blogs</p> <p>Jason -&nbsp;&nbsp;<a class="" href="http://jasonhaley.com/blog/archive/2007/11/08/140771.aspx">Interesting finds Nov 8, 2007</a></p> <p>Matt - <a href="http://mhinze.com/15-links-today-2007-11-07/">15 Links Today (2007-11-07)</a> <br />Rhonda Tipton - <a href="http://rtipton.wordpress.com/2007/11/07/forum-watch-2/">Forum Watch 2</a> <br />Christopher Steen - <a href="http://www.dotnetjunkies.com/WebLog/csteen/archive/2007/11/08/357301.aspx">Link Listing - November 7, 2007</a> <br />Arjan Zuidhof - <a href="http://feeds.feedburner.com/~r/ArjansWorld/~3/181251215/linkblog-for-november-7-2007.html">LINKBLOG for November 7, 2007</a> <br />Scott Reynolds - <a href="http://feeds.feedburner.com/~r/scottcreynolds/liGE/~3/181468640/links-from-the-sharpside---11.07.07.aspx">Links from the Sharpside - [11.07.07]</a> <br />Mike Gunderloy - <a href="http://www.larkware.com/dg9/TheDailyGrind1269.aspx">The Daily Grind 1269</a> </p> <p></p><img src="http://samgentile.com/aggbug.aspx?PostID=2528" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=bYUFJ9B"><img src="http://feeds.feedburner.com/~f/SamGentile?i=bYUFJ9B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=jJpVn9B"><img src="http://feeds.feedburner.com/~f/SamGentile?i=jJpVn9B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=nlZAdHb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=nlZAdHb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=VYFBJ3B"><img src="http://feeds.feedburner.com/~f/SamGentile?i=VYFBJ3B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=U6lCL6b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=U6lCL6b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=B5s4wCb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=B5s4wCb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=WpunThb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=WpunThb" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/181859569/new-and-notable-203.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/08/new-and-notable-203.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2528 Thu, 08 Nov 2007 13:23:00 GMT New and Notable 202 <p><span><font face="Calibri">I am Twittering, Facebooking now with my friends. Does that make me a Web 2.0 person, a "Hip With-It Person, or a childish fool? The jury is still out....</font></span></p><span><font face="Calibri"></font></span><span><font face="Calibri">ESB/BizTalk</font></span> <ul> <li class="MsoNormal"><span><font face="Calibri">My collegue writes </font><a title="Title of this entry." href="http://geekswithblogs.net/bloesgen/archive/2007/11/06/116650.aspx"><span><font face="Calibri">Microsoft Patterns and Practices ESB Guidance 1.0 shown, and will be available in a few days</font></span></a><font face="Calibri">. Brian, was instrumental by writing the early versions. He has a lot of good things to say on what the value add to community is. Major congrats </font><a href="http://blogs.msdn.com/martywaz/default.aspx"><span><font face="Calibri">Marty Wasznicky </font></span></a><font face="Calibri">whose baby this is. I met Marty at the SOA conference finally and he is a very passionate, hard working advocate for BizTalk and the greater community</font></span></li></ul><span><font face="Calibri">&nbsp;SQL Server 2008</font></span> <ul> <li class="MsoNormal"><span><font face="Calibri">Neudesic&#39;s SQL Server and BI Practices have spent a large amount of time with SQL Server 2008. I have not but that is going to be changing. </font><a href="http://blogs.msdn.com/euanga/archive/2007/11/06/getting-to-know-sql-server-2008-training-webcasts-and-virtual-labs.aspx"><span><font face="Calibri">Euan&#39;s Getting to know SQL Server 2008: Training, WebCasts and Virtual Labs</font></span></a><font face="Calibri"> is very timely</font></span></li></ul><span><font face="Calibri">SOA/SaS</font></span> <ul> <li class="MsoNormal"><span><a href="http://blogs.msdn.com/mikewalker/archive/2007/11/06/software-services-blueprints.aspx"><span><font face="Calibri">Mike Walker talks about the release of the Software+Services Blueprints</font></span></a><font face="Calibri"> which are going to be super useful for people like me tryinng to roll out these kind of solutions in the real world. As a starting point for building real solutions by architects and developers, each Software+Services Blueprint includes code and/or utilities, guidance, structured step-by-step workflow and tools delivered within Visual Studio.&nbsp;</font></span></li></ul> <p class="MsoNormal"><span>&nbsp;<font face="Calibri">WCF</font></span></p> <ul> <li> <div class="MsoNormal"><span><font face="Calibri">Christian continues his awesome series with <a class="" href="http://blogs.thinktecture.com/cweyer/archive/2007/11/06/414990.aspx">Beyond the Obvious: New Features and Fixes for WCF in .NET 3.5 - JSON support</a></font></span></div></li></ul> <p class="MsoNormal"><span><font face="Calibri">Software Development Tools</font></span></p> <ul> <li> <div class="MsoNormal"><span><font face="Calibri">Eric Sink - <a href="http://software.ericsink.com/entries/SG_Update_06Nov2007.html">SourceGear News</a>&nbsp;</font></span></div></li> <li> <div class="MsoNormal"><span><font face="Calibri">Microsoft Downloads - <a href="http://feeds.feedburner.com/~r/MicrosoftDownloadCenter/~3/138058793/details.aspx">ASP.NET Futures</a>&nbsp;&nbsp;</font></span></div></li></ul><font face="Calibri"><b><span>Other link blogs</span></b><span> </span></font><span><font face="Calibri">Jason - </font><a href="http://jasonhaley.com/blog/archive/2007/11/07/140769.aspx"><span><font face="Calibri">Interesting Finds, Nov 7, 2007</font></span></a><br /><font face="Calibri">Matt - </font><a href="http://mhinze.com/7-links-today-2007-11-06/"><span><font face="Calibri">7 Links Today (2007-11-06)</font></span></a><font face="Calibri"> <br />Christopher Steen - </font><a href="http://www.dotnetjunkies.com/WebLog/csteen/archive/2007/11/07/356227.aspx"><span><font face="Calibri">Link Listing - November 6, 2007</font></span></a><font face="Calibri"> <br />Arjan Zuidhof - </font><a href="http://feeds.feedburner.com/~r/ArjansWorld/~3/180745605/linkblog-for-november-6-2007.html"><span><font face="Calibri">LINKBLOG for November 6, 2007</font></span></a><font face="Calibri"> <br />Steve Pietrek - </font><a href="http://feeds.feedburner.com/~r/AContinuousLearnersWeblog/~3/180839845/links-1162007.html"><span><font face="Calibri">Links (11/6/2007)</font></span></a><font face="Calibri"> <br />Rick Mahn - </font><a href="http://feeds.feedburner.com/~r/Rickmahncom/~3/181062011/"><span><font face="Calibri">links for 2007-11-07</font></span></a><font face="Calibri"> <br />Scott Reynolds - </font><a href="http://feeds.feedburner.com/~r/scottcreynolds/liGE/~3/180911132/links-from-the-sharpside-11.06.07.aspx"><span><font face="Calibri">Links from the Sharpside [11.06.07]</font></span></a><font face="Calibri"> <br />Mike Gunderloy - </font><a href="http://www.larkware.com/dg9/TheDailyGrind1268.aspx"><span><font face="Calibri">The Daily Grind 1268</font></span></a><font face="Calibri"> </font></span> <p></p><img src="http://samgentile.com/aggbug.aspx?PostID=2520" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=tq48GEB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=tq48GEB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=NxuCLZB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=NxuCLZB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=liSij5b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=liSij5b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=fYeUlFB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=fYeUlFB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=58FIgub"><img src="http://feeds.feedburner.com/~f/SamGentile?i=58FIgub" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=o4D1R1b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=o4D1R1b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=qAYiT5b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=qAYiT5b" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/181165576/new-and-notable-202.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/07/new-and-notable-202.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2520 Wed, 07 Nov 2007 08:06:00 GMT Kevin Nails Windows Live Usability Degredation <p><a href="http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2007/11/08/is-the-software-installer.aspx">http://blogs.dovetailsoftware.com/blogs/kmiller/archive/2007/11/08/is-the-software-installer.aspx</a></p> <img src="http://codebetter.com/aggbug.aspx?PostID=170721" width="1" height="1"> http://codebetter.com/blogs/scott.bellware/archive/2007/11/08/170721.aspx Scott Bellware [MVP] http://codebetter.com/blogs/scott.bellware/archive/2007/11/08/170721.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170721 Thu, 08 Nov 2007 12:54:35 GMT Don't think you know more than you do <p>On the train this morning I was&nbsp;working on my <a class="" href="http://devteach.com/">DevTeach</a> talk about&nbsp;doing design on an Agile project.&nbsp; I&#39;m trying to explain the concepts of the Last Responsible Moment and delaying technical commitment in terms of <a class="" href="http://www.poppendieck.com/lean.htm">Lean Programming</a>.&nbsp; Part of the theme of my talk is simply to not do anything that you don&#39;t know that you need to do.&nbsp; &quot;If we do task A now,&nbsp;feature B&nbsp;will be easier later&quot; is an example of speculation, not knowledge.&nbsp; It might&nbsp;turn out to be&nbsp;a good decision, but do you&nbsp;really know for sure&nbsp;that you&#39;ll actually implement feature B?&nbsp; If feature B doesn&#39;t actually get built, you might have wasted effort building extra complexity in the form of hooks for a feature that never gets built.</p> <p>You need to be very&nbsp;cognizant of the difference between &quot;I think designing it this fancier way will help in release 2...&quot; and &quot;we could reduce some duplication if we abstracted the XYZ like this.&quot;&nbsp; The first statement is an idea that you keep in the back of your mind.&nbsp; The second statement is something to act on.</p> <p>Don&#39;t&nbsp;ever let yourself&nbsp;believe that you know&nbsp;what&nbsp;the business wants or needs&nbsp;more than they do.&nbsp; My poor colleague just got&nbsp;hit by an example of this.&nbsp; He&#39;d built some&nbsp;nontrivial&nbsp;functionality to interpret&nbsp;trade prices in a new screen to match a specification from our client&#39;s tech lead.&nbsp; You can probably&nbsp;guess what&nbsp;happened as soon as an actual business person saw the screen for the first time&nbsp;today.&nbsp; Needless to say, my colleague just started rewriting the implementation of the trade price interpretation (20 unit tests worth of code).&nbsp; It&#39;s good to know the business domain, but don&#39;t fool yourself into believing that you&#39;re the domain expert instead of the business.</p> <p>I built a couple&nbsp;complex features this summer&nbsp;that have never, ever been used in production.&nbsp; Same story, same team lead.&nbsp; When I finally started talking to the end users (and knowing enough about the domain to actually understand what they were talking about) I found out quickly that these features were more or less useless to them.&nbsp; The business problem we were trying to address still exists, but the real solution was to make part of the screen behave more intelligently to speed up the entry of Trades.&nbsp; We blew it by assuming that we knew what the business needed.</p> <p>If it isn&#39;t entirely obvious, I&#39;m not in an Agile shop at all at the moment.&nbsp; We&#39;re doing the engineering practices, but the project management isn&#39;t there.&nbsp; I think one of the biggest advantages of Agile is turning the software development process into more of a &quot;Pull&quot; mechanism instead of the traditional &quot;Push&quot; model of linear waterfall.&nbsp; I don&#39;t try to&nbsp;guess out what the business might want or find useful.&nbsp; I&#39;ll make suggestions, but&nbsp;the final decision still has to be&nbsp;from the business.&nbsp; If the business is setting the priorities then you&#39;ll be building features according to an established business need.&nbsp; You can cut waste by only designing the&nbsp;software for the&nbsp;features&nbsp;the business&nbsp;has already requested&nbsp;(how you keep the doors open for later features is a much, much bigger discussion some other time).</p> <p>Grrr.</p><img src="http://codebetter.com/aggbug.aspx?PostID=170717" width="1" height="1"> http://codebetter.com/blogs/jeremy.miller/archive/2007/11/08/don-t-think-you-know-more-than-you-do.aspx Jeremy D. Miller -- The Shade Tree Developer http://codebetter.com/blogs/jeremy.miller/archive/2007/11/08/don-t-think-you-know-more-than-you-do.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170717 Thu, 08 Nov 2007 07:05:00 GMT Validation Guidance Bundle Screencast - ASP.NET AJAX Server-Side Validation <p>The Microsoft Patterns &amp; Practices Team released the <a class="" title="Validation Guidance Bundle Tutorials" href="http://www.pnpguidance.net/Tag/ValidationGuidanceBundle.aspx">Validation Guidance Bundle</a> as part of the Guidance Bundles in the <a class="" title="Web Client Software Factory Tutorials" href="http://www.pnpguidance.net/Category/WebClientSoftwareFactory.aspx">Web Client Software Factory v2.0</a>. The Validation Guidance Bundle provides a new <a class="" title="ServerSideValidationExtender Control Examples" href="http://www.pnpguidance.net/Tag/ServerSideValidationExtender.aspx">ServerSideValidationExtender</a> Control that helps provides a richer UI AJAX-style experience when using the <a class="" title="PropertyProxyValidator Control Examples" href="http://www.pnpguidance.net/Tag/PropertyProxyValidator.aspx">PropertyProxyValidator</a> and CustomValidator Controls for validating ASP.NET webforms.</p> <p>If you are using the PropertyProxyValidator Class that ships as part of the Validation Application Block in Enterprise Library 3.1, you will appreciate the rich UI experience that the ServerSideValidatorExtender Control provides to your users. Learn how to use the Validation&nbsp;Guidance Bundle&nbsp;in the following screencast:</p> <ul> <li> <div><span id="ctl00_ContentPlaceHolder1_ThePostTitle"><a class="" title="Validation Application Block Screencast" href="http://www.pnpguidance.net/Screencast/ValidationGuidanceBundleScreencastWebClientSoftwareFactory2.aspx">Validation Guidance Bundle Screencast - Web Client Software Factory v2.0</a></span></div></li></ul> <p><span>On a side note, the Patterns &amp; Practices Team also released the <a class="" title="Search Bundle Tutorials" href="http://www.pnpguidance.net/Tag/SearchBundle.aspx">Search Bundle</a> today, which will be the topic of the next screencast.</span></p> <p><span>Enjoy and let me know what you think of the Validation Guidance Bundle.</span></p><img src="http://codebetter.com/aggbug.aspx?PostID=170700" width="1" height="1"> http://codebetter.com/blogs/david.hayden/archive/2007/11/07/validation-guidance-bundle-screencast-asp-net-ajax-server-side-validation.aspx David Hayden [MVP C#] http://codebetter.com/blogs/david.hayden/archive/2007/11/07/validation-guidance-bundle-screencast-asp-net-ajax-server-side-validation.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170700 Wed, 07 Nov 2007 15:04:00 GMT Funny quotes about old programming languages <p>If you are a COBOL guy, doen&#39;t get too upset because it all comes around.&nbsp; If you really want to see a language put down, read what the Ruby community&nbsp;or&nbsp;functional programming&nbsp;gurus&nbsp;say about Java (and C# by inference).&nbsp;</p> <p><a href="http://www.sysprog.net/quotcob.html">http://www.sysprog.net/quotcob.html</a></p> <p>For the record, I have coded in Fortran 77 (badly) and worked in a shop mostly dominated by COBOL.&nbsp; I don&#39;t have anything against COBOL per se, but I think the early versions&nbsp;discouraged the usage of subroutines due to inefficiency set back programming a bit.&nbsp; I jokingly&nbsp;called someone a &quot;COBOL programmer&quot; just yesterday for a big, big chunk of Java code unpolluted by fluff like other classes and extraneous methods (behind his back, but don&#39;t feel sorry for him, he makes much more than you or I.&nbsp; Non-coding architect having fun learning to code again).&nbsp; One use case, one method, start to finish with no wussy subroutines&nbsp;baby!&nbsp; </p> <p>Many people say that Ruby is like a developer magnifier that allows good developers to be faster and bad developers to fail faster.&nbsp; That might be so, but to me, Fortran 77 was more like an equalizer.&nbsp; Everybody is humbled before the &quot;unknown error at line 0&quot; compiler message.</p> <p>My favorites:</p> <ul> <ul> <li> <div>&nbsp;A computer without COBOL and FORTRAN is like a piece of chocolate cake without ketchup or mustard. (John Krueger)</div></li> <li> <div>The tree large enough that a stake capable of killing COBOL could be fashioned from its trunk has not yet grown anywhere upon the face of this verdant planet. (Dan Martinez)</div></li> <li> <div>Cobol has almost no fervent enthusiasts. As a programming tool, it has roughly the sex appeal of a wrench. (Charles Petzold)</div></li></ul></ul> <p>Same site, other pages</p> <ul> <ul> <li> <div> <p>Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in. (((Larry Wall)))</p></div></li> <li> <div> <p>If Java had true garbage collection, most programs would delete themselves upon execution. (Robert Sewell)</p></div></li> <li> <div> <p>Using Java for serious jobs is like trying to take the skin off a rice pudding wearing boxing gloves. (Tel Hudson)</p></div></li> <li> <div> <p>Perl: The only language that looks the same before and after RSA encryption. (Keith Bostic)</p></div></li></ul></ul> <p>&nbsp;</p><img src="http://codebetter.com/aggbug.aspx?PostID=170690" width="1" height="1"> http://codebetter.com/blogs/jeremy.miller/archive/2007/11/07/funny-quotes-about-old-programming-languages.aspx Jeremy D. Miller -- The Shade Tree Developer http://codebetter.com/blogs/jeremy.miller/archive/2007/11/07/funny-quotes-about-old-programming-languages.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170690 Wed, 07 Nov 2007 04:46:00 GMT Castle ActiveRecord and Web Client Software Factory <p>A question showed up in the Web Client Software Factory Forums about using WCSF with Castle Project&#39;s ActiveRecord and I couldn&#39;t resist the opportunity to show that indeed these solutions work well together. However, the <a class="" title="ActiveRecord Getting Started" href="http://www.castleproject.org/monorail/gettingstarted/ar.html">Getting Started Guide&nbsp;to ActiveRecord</a> is a bit out-of-date,&nbsp;but more importantly, doesn&#39;t take into consideration that the <a class="" title="Web Client Software Factory Tutorials" href="http://www.pnpguidance.net/Category/WebClientSoftwareFactory.aspx">Web Client Software Factory</a> focuses on <u>Composite</u> Web Client Line-of-Business Applications. Therefore, you will want to deviate from the getting started guidance mentioned on the Castle Project Website.</p> <p>Rather than initializing the ActiveRecord Types in the <strong>Application_Start</strong> Method, you will register the ActiveRecord Types in each of the business modules or foundation modules that make up your composite web client application. Each business module and foundation module has a <strong>ModuleInitializer Class</strong> that is run only once on application startup and is a perfect place to register the ActiveRecord Types that make up the domain model for each of your business modules.</p> <p>I am trying to keep all my Patterns &amp; Practices Posts on <a class="" title="Patterns and Practices Guidance" href="http://www.pnpguidance.net/">PnPGuidance</a> so it is easier to find the guidance. You can view code samples of how to&nbsp;initialize Castle ActiveRecord Types with the Web Client Software Factory at the following post:</p> <ul> <li> <div><span id="ctl00_ContentPlaceHolder1_ThePostTitle"><a class="" title="Castle Project and Web Client Software Factory" href="http://www.pnpguidance.net/Post/WCSFCastleActiveRecord.aspx">WCSF and Castle ActiveRecord</a></span></div></li></ul> <p><span>I find the guidance coming out of the <a class="" title="Castle Project" href="http://www.castleproject.org/">Castle Project</a> so valuable, that I have started a <a class="" title="Castle ActiveRecord" href="http://www.pnpguidance.net/Category/CastleActiveRecord.aspx">Castle ActiveRecord</a> Category on PnPGuidance and plan to create some screencasts and tutorials&nbsp;to show how solutions from both Castle and Microsoft Patterns &amp; Practices can work really well together. Since I use almost all of the&nbsp;tools from the Castle Project, expect to see other categories in the future.</span></p> <p><span>I hope this helps. Enjoy the diversity!</span></p><img src="http://codebetter.com/aggbug.aspx?PostID=170681" width="1" height="1"> http://codebetter.com/blogs/david.hayden/archive/2007/11/06/castle-activerecord-and-web-client-software-factory.aspx David Hayden [MVP C#] http://codebetter.com/blogs/david.hayden/archive/2007/11/06/castle-activerecord-and-web-client-software-factory.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170681 Tue, 06 Nov 2007 13:29:00 GMT New and Notable 201 <p>SOA</p> <ul> <li> <div>Nick has his fourth post in a series on the impact of the business operating model on Service Oriented Architecture with <a class="" href="http://blogs.msdn.com/nickmalik/archive/2007/11/05/soa-in-the-replication-model.aspx">SOA in the Replication Model</a></div></li></ul> <p>Microsoft</p> <ul> <li> <div>My collegue <a class="" href="http://blogs.neudesic.com/blogs/mickey_williams/archive/2007/11/06/20207.aspx">Mickey Williams has posted</a> that Microsoft Search Server (MSS) 2008 and&nbsp;MSS Express, two Enterprise Search products are available for free!</div></li></ul> <p>CLR</p> <ul> <li> <div>Jason keeps on rocking in the free world with <a class="" href="http://jasonhaley.com/blog/archive/2007/11/05/140762.aspx">Simple Reflector AddIn: Count Box Instructions</a>. It&#39;s official, he&#39;s done taken the CLR Crown from me :)</div></li></ul> <p>WCF</p> <ul> <li> <div>Dr. Nick on a very important but difficult area of <a class="" href="http://blogs.msdn.com/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx">WCF: Custom Transport Retry Logic</a></div></li></ul> <p>MAC OS/X/Vista</p> <ul> <li> <div>It looks like<em> Leopard has been a disaster</em> from everyone you talk to <u>other than the Mac fanboys (who try top spin anything)</u>. <a class="" href="http://www.shahine.com/omar/AtTheEndOfTheDayTheProblemsAreTheSame.aspx">Omar points out</a> that you go from Vista to OS/X to whatever and the problems always remain the same. He has his once in a decade link to <a class="" href="http://www.scripting.com/stories/2007/11/05/imNotHappyWithLeopard.html">Dave Winer here</a> that I will repeat. This is the worst OS/X release, it&#39;s rushed, it&#39;s buggy, it&#39;s <a class="" href="http://www.informationweek.com/news/showArticle.jhtml?articleID=202602869">causing blue screens</a>&nbsp;<a href="http://www.computerworld.com/action/article.do?command=viewArticleBasic&amp;articleId=9044378&amp;source=rss_news10" target="_blank"><font color="#2b82d9">BSODs</font></a> (oops, sorry &quot;kernel panics&quot;), <a href="http://www.tuaw.com/2007/10/28/adobe-updates-cs3-leopard-compatibility-info/" target="_blank"><font color="#2b82d9">application compatibility problems</font></a>, <a href="http://msmvps.com/blogs/bradley/archive/2007/10/19/a-uac-by-another-name.aspx" target="_blank"><font color="#2b82d9">new security dialogs</font></a>, <a href="http://www.tuaw.com/2007/10/29/leopard-should-you-upgrade/" target="_blank"><font color="#2b82d9">pundits warning users to postpone upgrades</font></a>, <a href="http://www.javalobby.org/java/forums/t102936.html" target="_blank"><font color="#2b82d9">users canning the OS entirely</font></a>. For the record, I did manage to upgrade my Intel Dual Core iMac to Leopard but<em> I didn&#39;t get the buzz I felt after Tiger and other releases</em>. Its perhaps the<strong> least innovative version of OS/X yet.</strong> For once, the tables are turned and the photocopies were reversed: it&#39;s a pale immitation of Vista. If people thiink icons flying up in a fan is innovation, I feel sorry. For the record again, I have Vista on three machines including my main Dell work laptop that gets slammed with tons of beta software, BVizTalk, VS2008 and I<strong> have zero problems</strong>.</div></li> <li> <div>Here is <a class="" href="http://lifehacker.com/software/mac-os-x/rebuild-your-mac-with-20-useful-downloads-315981.php">How to Rebuild Your Mac with 20 Useful Downloads</a></div></li></ul> <p>PowerShell</p> <ul> <li> <div>Yay!! The<a class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=60deac2b-975b-41e6-9fa0-c2fd6aa6bc89&amp;displaylang=en"> CTP of PowerShell V2 is out</a>! Here are the <a class="" href="http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx">changes</a></div></li></ul> <p></p><img src="http://samgentile.com/aggbug.aspx?PostID=2507" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=lT2xzeB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=lT2xzeB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=puGvyCB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=puGvyCB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=9rJxXbb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=9rJxXbb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=XqsCHsB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=XqsCHsB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=o2rk4Kb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=o2rk4Kb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=Hk3lImb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=Hk3lImb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=eIVKs5b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=eIVKs5b" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/180630672/new-and-notable-201.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/06/new-and-notable-201.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2507 Tue, 06 Nov 2007 08:08:00 GMT In-Browser IronRuby in the Next Silverlight CTP <p>From John Lam:</p> <blockquote> <p>&quot;once we (DLR) sync up with the next CTP of Silverlight, you&#39;ll be able to run IronRuby in your browser&quot;</p> </blockquote> <p>Source: <a href="http://www.iunknown.com/2007/11/ironruby-on-sil.html">http://www.iunknown.com/2007/11/ironruby-on-sil.html</a></p> <img src="http://codebetter.com/aggbug.aspx?PostID=170661" width="1" height="1"> http://codebetter.com/blogs/scott.bellware/archive/2007/11/05/170661.aspx Scott Bellware [MVP] http://codebetter.com/blogs/scott.bellware/archive/2007/11/05/170661.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170661 Mon, 05 Nov 2007 15:25:56 GMT New and Notable 200 <p>Finally! Its taken me like 5 years to get to 200. I sometimes I wish I was prolific like Mike Gunderloy. The really sad part is the first 3+ years of my blogs are not even up on the net right now as they are buried in a SQL Server database on an old host and in .TEXT format.</p> <p>Windows Workflow</p> <ul> <li> <div><a class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=a438a9b9-9f15-42ec-866f-2ea58e10db36&amp;displaylang=en&amp;tm">Windows Workflow Foundation Web Workflows Starter Kit</a> - A starter kit Web application that includes task-oriented workflow using Windows Workflow Foundation.</div></li> <li> <div><a class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=6de9f614-e4d9-4180-886a-195538a58603&amp;displaylang=en&amp;tm">Simple Human Workflow QuickStart Sample Code</a> - for Windows Workflow Foundation in .NET Framework 3.0/3.5 - Simple Human Workflow Quickstart Sample Code associated with an MSDN article</div></li> <li> <div><a class="" href="http://blogs.msdn.com/pandrew/archive/2007/11/02/simple-human-workflow-quickstart-with-wf-ad-exchange-and-im.aspx">Simple Human Workflow Quickstart woth WF, AD, Exchange, and IM</a></div></li> <li> <div><a class="" href="http://blogs.msdn.com/pandrew/archive/2007/10/22/wf-persistence-and-tracking-services-for-oracle-and-mysql.aspx">WF Persistence and Tracking Services for Oracle and MySQL</a></div></li></ul> <p>Orcas/Visual Studio 2008/.NET Framework 3.5</p> <ul> <li> <div><a class="" href="http://blogs.msdn.com/somasegar/archive/2007/11/05/teched-developer-in-europe.aspx">Soma confirmed</a>, at TechEd Europe, &nbsp;what many of us know already; that VS2008 and .NET Framework will ship by Thanksgiving</div></li> <li> <div><a class="" href="http://www.danielmoth.com/Blog/2007/11/top-10-things-to-know-about-visual.html">Daniel Moth presents The Top Ten Things to Know About Visual Studio 2008 and .NET Framework 3.5</a></div></li> <li> <div><a class="" href="http://blogs.msdn.com/brada/archive/2007/11/03/net-framework-3-5-namespace-poster.aspx">.NET Framework 3.5 Namespace poster</a></div></li> <li> <div><a href="http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx" target="_blank">Tip/Trick: Hard Drive Speed and Visual Studio Performance</a> [via <a class="" href="http://www.larkware.com/dg9/TheDailyGrind1266.aspx">Mike</a>]</div></li></ul> <p>WCF/BizTalk/CSD/Connected Systems</p> <ul> <li> <div>My good friend, Jesus Rodriguez, who I spent a lot of time with last week, has <a class="" href="http://weblogs.asp.net/gsusx/archive/2007/11/05/demos-from-the-microsoft-soa-amp-bpm-conference.aspx">his demos from last week&#39;s WCF Adapter</a> session</div></li> <li> <div>My friend <a class="" href="http://www.pluralsight.com/blogs/aaron/archive/2007/11/03/48931.aspx">Aaron also has WCF Adapters Deep Dive demos</a> from the conference</div></li> <li> <div>My collegue, <a class="" href="http://davidpallmann.spaces.live.com/Blog/cns!E95EF9DC3FDB978E!289.entry">David Pallmann, has his first report from the SOA conference</a> and says it was the &quot;People First.&quot; He&#39;s exactly right</div></li> <li> <div><a class="" href="http://blogs.msdn.com/drnick/archive/2007/11/05/custom-transport-retry-logic.aspx">Custom Transport Retry Logic</a></div></li></ul> <p><strong>Other link blogs</strong></p> <p>Jason Haley&nbsp;- <a class="" href="http://jasonhaley.com/blog/archive/2007/11/05/140759.aspx">Interesting Finds, Nov 5, 2007</a><br />Steve Pietrek - <a href="http://feeds.feedburner.com/~r/AContinuousLearnersWeblog/~3/179809144/links-1142007.html">Links (11/4/2007)</a> <br />David Vidmar - <a href="http://feeds.vidmar.net/~r/BiteMyBytes/~3/179743953/links-of-the-week-9-week-442007.aspx">Links of the week #9 (week 44/2007)</a> <br />Mike Gunderloy - <a href="http://www.larkware.com/dg9/TheDailyGrind1266.aspx">The Daily Grind 1266</a> <br />Rhonda Tipton - <a href="http://rtipton.wordpress.com/2007/11/04/weekly-link-post-14/">Weekly Link Post 14</a> </p> <p></p><img src="http://samgentile.com/aggbug.aspx?PostID=2496" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=JO1OWkB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=JO1OWkB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=FZ4WfFB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=FZ4WfFB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=3wIj3rb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=3wIj3rb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=v7v2aCB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=v7v2aCB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=YL1mpJb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=YL1mpJb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=BJdirub"><img src="http://feeds.feedburner.com/~f/SamGentile?i=BJdirub" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=VV86FBb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=VV86FBb" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/180208304/new-and-notable-200.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/05/new-and-notable-200.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2496 Mon, 05 Nov 2007 12:05:00 GMT Silverlight 1.1 as a Browser Test Automation Foundation? <p>Just thinking out loud (probably a thought that tons of people have already had).</p> <p>Tools like Watir, FireWatir, SafariWaitr, and Watin are all separate implementations of a web UI testing tool pattern explored originally by Watir and made popular because of its viability and usefulness.</p> <p>We&#39;re challenged as web development teams because we need to use a different tool to test an app on different browsers: Watir for IE, FireWatir for Firefox, SafariWatir for Safari, and Watin for IE for people with incurable cases of Rubyphobia.</p> <p>We would benefit from a universal browser plugin that has a single API that gives harmonious access to the browser&#39;s DOM. Theoretically, instead of using three browser test automation tools, we&#39;d use one. We might be able to get away with expressing tests once and targeting different browsers at run-time.</p> <p>Is this what Silverlight might do for web testing?</p> <p>P.S. If IronRuby does come to fruition, Rubyists would be covered as well... again, theoretically.</p> <img src="http://codebetter.com/aggbug.aspx?PostID=170636" width="1" height="1"> http://codebetter.com/blogs/scott.bellware/archive/2007/11/05/170636.aspx Scott Bellware [MVP] http://codebetter.com/blogs/scott.bellware/archive/2007/11/05/170636.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170636 Mon, 05 Nov 2007 07:41:06 GMT I don't know why, but this just makes me optimistic about humanity <p>From <a href="http://ajaxian.com/archives/getitnextcom-an-example-of-how-libraries-can-co-exist">Ajaxian</a>.&nbsp; Two competing JavaScript libraries have learned to peacefully share the &quot;$&quot; function.&nbsp; That&#39;d be a great Sesame Street skit if anybody but geeky developers understood the reference.<br /></p><img src="http://codebetter.com/aggbug.aspx?PostID=170627" width="1" height="1"> http://codebetter.com/blogs/jeremy.miller/archive/2007/11/05/i-don-t-know-why-but-this-just-makes-me-optimistic-about-humanity.aspx Jeremy D. Miller -- The Shade Tree Developer http://codebetter.com/blogs/jeremy.miller/archive/2007/11/05/i-don-t-know-why-but-this-just-makes-me-optimistic-about-humanity.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170627 Mon, 05 Nov 2007 04:10:00 GMT In software consulting, low cost consulting can be real. . . <p>. . .or it can be a lie.&nbsp; In my <a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/03/my-approach-to-consulting.aspx#comments">last post</a>, <a href="http://www.evanhoff.com/">Evan</a> commented that low cost only goes so far.&nbsp; I see where he is coming from.&nbsp; Let me illustrate.&nbsp; If a consultant puts together a system very quickly and doesn&#39;t pay attention to the quality and structure of the system, he can deliver quickly in the short term.&nbsp; The client initially pays less money, and he is happy.&nbsp; What actually happened was that the client received a lemon.&nbsp; The software meets the initial requirements, but it has a handicap with intolerance to change (which is inevitable).&nbsp; There are probably cobwebs lurking in every corner.&nbsp; The same consultant will probably be asked to add features at a later time &quot;because of the great job he did&quot;, but the second revision will cost significantly more because he will be faced with the poor decisions made in the past.&nbsp; The second project is unlikely to be as inexpensive as the first, and it is very likely to be bug-riden and unstable.&nbsp; The initial software delivered was a pig with lipstick on it.&nbsp; I compare it to a bridge that works great at first but starts to crack and shake as the years go by.</p><p>The above is not providing the lowest cost to the client.&nbsp; It is front-loading cost savings only to defer the actual bill to a later time.&nbsp; Credit.&nbsp; Technical debt.&nbsp; The first release incurred technical debt the client will ultimately have to pay back.</p><p>This is not my model for consulting, and in this post, I hope to educate you on <b>real low cost consulting</b>.</p><p><b>What is real low-cost consulting, and how do we maximize ROI for the client?</b>.</p><p>First, we want consistent clients.&nbsp; We want to serve the client so well that they come back for the next project.&nbsp; That doesn&#39;t happen if all we deliver is technical debt.&nbsp; Here is the plan.&nbsp; First, we start the project with very high standards.&nbsp; No bugs.&nbsp; We don&#39;t plan for bugs.&nbsp; We don&#39;t allocate time in the project for bug fixes at the end. In fact, we give a warranty for the software.&nbsp; If there is a bug found later, it&#39;s covered under warranty.&nbsp; We keep the software bug-free at all times.&nbsp; When a bug is found (because, yes, it happens), it becomes the highest priority.&nbsp; We fix bugs right away.&nbsp; If a requirement/use case/story is found to be flawed or lacking analysis, then that is a separate issue that&#39;s taken up with the client to find an acceptable course of action.&nbsp; We are able to achieve this by <b>building quality in</b>.&nbsp; All the fundamental principles come in to play: separation of concerns, cohesion, depending on abstractions, etc.&nbsp; We use extensive automated testing throughout the project along with continuous integration to provide rapid feedback that everything that works continues to work.&nbsp; After all, after the first feature is added, that feature is in maintenance mode from then on.&nbsp; By concentrating on maintainability, the software serves the client well, both now and in the future.</p><p><b>But doesn&#39;t that end up costing MORE?</b></p><p>No.&nbsp; On the surface, it might seem so since our standards are so much higher, but the end result is a lower cost and, consequently, a higher ROI for the client.&nbsp; Let&#39;s examine how that works:&nbsp; First, we ensure we are building the right thing.&nbsp; That eliminates the waste of building the wrong thing.&nbsp; Next, we start testing immediately, not at the end of the project.&nbsp; That means that bugs are found immediately, not right before release.&nbsp; When bugs are found/fixed immediately, there are never more than a handful of outstanding bugs, and many days there are none.&nbsp; The software always works as expected.&nbsp; Next, the architecture is of the highest quality, and it evolves over time.&nbsp; With refactoring, the software is always well-suited to the problem. The code depends on abstractions and is therefore resilient to change.&nbsp; New types can be added to the system for new features, and working code doesn&#39;t need to be modified (open/closed principle).&nbsp; There are so many interlocking practices that go into achieving this that it is hard to list them all.&nbsp; We keep the build fast and clean so it provides valuable feedback quickly.&nbsp; With quick feedback, we can course-correct to ensure we are always on the right track.</p><p><b>End result</b></p><p>The end result is a system delivered at the lowest cost possible, not just for the first release, but when the client asks us back for a follow-on release (which they do), we are able to repeat the process and deliver a 2nd, 3rd revision with the same results as the first.</p><p><b>But why doesn&#39;t everyone do it that way?</b></p><p>It&#39;s hard.&nbsp; Very hard.&nbsp; It hard to get the quality people that can make it happen, and it&#39;s hard to find management that has the experience to make it happen. &nbsp;</p><p>I don&#39;t claim to have all the answers (because I don&#39;t), and we are constantly improving over time, but I can say that delivering the highest in quality also ends up costing the least.&nbsp;</p><img src="http://codebetter.com/aggbug.aspx?PostID=170611" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=om1CVzB"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=om1CVzB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=HjnqZmb"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=HjnqZmb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=CqdYAUb"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=CqdYAUb" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/jeffreypalermo/~4/179739976" height="1" width="1" /> http://feeds.feedburner.com/~r/jeffreypalermo/~3/179739976/in-software-consulting-low-cost-consulting-can-be-real.aspx Jeffrey Palermo [MVP] http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/04/in-software-consulting-low-cost-consulting-can-be-real.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170611 Sun, 04 Nov 2007 12:47:00 GMT Neuparts Code Demo (DDD + SOA) on CodePlex <p>Chad got as chance to put up the <a class="" href="http://www.codeplex.com/neuparts">full Neuparts DDD + SOA demos on CodePlex</a>; both the Ordering and Shipping Services while I was out in Redmond. As the topic in the discussion forums says:</p> <p>Greetings.<br /><br />I would like to thank everyone for checking out this project, and appreciate all of the early feedback.<br /><br />Sam and I are working on getting this project (more correctly, collection of projects) working as soon as possible.<br /><br />We encourage open and honest feedback, but keep a few things in mind:<br /></p> <ol> <li>We have full time positions at Neudesic. We pour our hearts into this company, and it is our primary interest. <li>This project is a work in process. It will under go multiple, multiple refactorings! <li>We will provide a document that summarizes our software architecture decisions. <li>We understand, respect, and most importantly appreciate that there are many ways to do DDD. This is </li></ol> <p>[tags: C#, SOA, Domain Driven Design, NHibernate, O/RM, Indigo, WCF, Design Patterns, Windows Communication Foundation, Sam Gentile]</p><img src="http://samgentile.com/aggbug.aspx?PostID=2481" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=euJ4RpB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=euJ4RpB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=FEgbhyB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=FEgbhyB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=MFVab0b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=MFVab0b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=uRufV0B"><img src="http://feeds.feedburner.com/~f/SamGentile?i=uRufV0B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=FgPjONb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=FgPjONb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=v08JQ0b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=v08JQ0b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=LlCNQEb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=LlCNQEb" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/179409844/neuparts-code-demo-ddd-soa-on-codeplex.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/03/neuparts-code-demo-ddd-soa-on-codeplex.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2481 Sat, 03 Nov 2007 17:42:00 GMT My approach to consulting. . . <p>. . . is to focus on solving the business problem at the lowest cost. In other words, drive the highest return for any investment. This is manifested by my <a href="http://www.headspringsystems.com">whole company</a>.</p> <p>Yesterday, I had lunch with a client, and I related that some of the best solutions don&#39;t use the &quot;latest and greatest&quot; technology. Take web services, for instance. When SOAP came out, it was all the rage. Xml messages over the wire for system integration. SOA theory was built on message passing. Then cam WSE1, 2, 3, WS Security, WS this and that. Now, REST is becoming all the rage. What is REST? In my opinion, along with being plain Xml over the wire, it&#39;s a partial reaction to the WS* standards that seemed to bloat message passing. REST keeps with the basics.</p> <p>That&#39;s just one example of the overall theme that good solutions stick with the basics. With all the new technologies, there isn&#39;t much that is changing with software engineering at this point. Language syntax changes, but for some reason, we&#39;re all sticking with object-oriented languages for enterprise applications. I have yet to see folks abandoning OO for these. Not yet. Regardless of language, platform, class libraries, good practices are portable.</p> <p>Separation of concerns, partitioning, testing, &quot;Don&#39;t repeat yourself&quot;, cohesion, loose coupling, readability. All these apply regardless of the new technologies.</p> <p>By applying time-tested principles to the current technology, programs don&#39;t look that much different. And when they don&#39;t look that much different, the hype seems to fall off the edges.</p> <p>Dear reader, I implore you to focus on fundamentals and solid OO and SOA principles when building enterprise applications. Technologies come, and technologies go, but fundamental skills will last forever.</p><p>I expand on low-cost consulting <a href="http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/04/in-software-consulting-low-cost-consulting-can-be-real.aspx">here</a>.&nbsp;</p><img src="http://codebetter.com/aggbug.aspx?PostID=170590" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=RDy8X3B"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=RDy8X3B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=kxFbH9b"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=kxFbH9b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=h8CLpIb"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=h8CLpIb" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/jeffreypalermo/~4/179231962" height="1" width="1" /> http://feeds.feedburner.com/~r/jeffreypalermo/~3/179231962/my-approach-to-consulting.aspx Jeffrey Palermo [MVP] http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/03/my-approach-to-consulting.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170590 Sat, 03 Nov 2007 08:03:00 GMT New and Notable 199 <p>Last day of the conference and suffering from tiredness.</p> <p>BizTalk/CSD/Connected Systems/REST/Oslo</p> <ul> <li> <div>My pal, Jon Flanders, who I spent a great deal of quality time with this week, made <a class="TitleLinkStyle" href="http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,cd6db0a1-0ad3-48f8-84a7-0121e141ed81.aspx" rel="bookmark">Workflow to BizTalk (XLANGs) Wizard as been released</a> </div></li> <li> <div>Jon also spent a lot of time talking <a class="" href="http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,d62b4100-e668-4304-9bf6-46ec0fa2e4e5.aspx">REST and his example with BAM</a> is a <strong>perfect example of why REST is so powerful</strong> and should be used in many scenarios like that. Some people seem to confuse me with being anti-REST. The only thing I am anti is the REST zealots (not at all Jon). If I have learned anything in the last 25 years in this field, it is that there are no absolutes, no black and whites. There are REST situations, there are SOAP situations but in the end there is still an SOA, or at least an architecture that organizes loosely coupled business resources/processes behind service interfaces</div></li> <li> <div><a class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=ce84af68-35fc-4ded-b9f8-91feff05d8d0&amp;displaylang=en&amp;tm">Getting Started with HL7 V3 and BizTalk Server 2006</a> -&nbsp;&nbsp;This paper provides developers with an overview of HL7 version 3 Messaging (HL7 v3) concepts, how to build HL7 v3 solutions with Microsoft BizTalk Server 2006, and how to convert message format from HL7 v3 to HL7 Version 2 Messaging (HL7 v2).</div></li> <li> <div>Low Latency Messaging in BizTalk? I&#39;ll believe when I see it but <a class="" href="http://www.biztalkgurus.com/blogs/biztalksyn/archive/2007/10/30/Panel-Discussion-Notes.aspx">Tim Rayburn says that Oliver Sharp has committed</a> to it being part of BizTalk Oslo. I think it is safe to say that this is our biggest pain point with BizTalk</div></li></ul> <p>SOA</p> <ul> <li> <div><a class="" href="http://www.microsoft.com/downloads/details.aspx?familyid=71f2a2ec-9149-41e1-91bb-184a94a25160&amp;displaylang=en&amp;tm">Aligning Business and IT for Greater Corporate Agility (through SOA)</a> - This 65-page PPT (in 22 page 3 slide format) explores Microsoft&#39;s Service Oriented Architecture (SOA) for Singapore&#39;s Public Sector showing IT strategies driven by business needs.</div></li> <li> <div><a class="" href="http://blogs.msdn.com/nickmalik/archive/2007/10/27/soa-in-the-unification-model.aspx">SOA is the Unification Model</a></div></li></ul> <p>WCF</p> <ul> <li> <div><a class="" id="C46BC98B-49F1-4987-9793-3439AD57E236_title" href="http://blogs.thinktecture.com/cweyer/archive/2007/10/29/414951.aspx"><font color="#dc143c">Beyond the Obvious: New Features and Fixes for WCF in .NET 3.5 (and .NET 3.0 SP1)</font></a></div></li> <li> <div><a class="" id="88F49547-579B-4B2A-8225-4BD4CC27F77A_title" href="http://blogs.thinktecture.com/cweyer/archive/2007/10/29/414952.aspx"><font color="#dc143c">Beyond the Obvious: New Features and Fixes for WCF in .NET 3.5 - Accessing the remote hosts address</font></a></div></li> <li> <div><a class="" id="C6B2C2C7-B250-41CC-A7F8-CBEDE250D2D2_title" href="http://blogs.thinktecture.com/cweyer/archive/2007/10/31/414970.aspx"><font color="#dc143c">Beyond the Obvious: New Features and Fixes for WCF in .NET 3.5 - Custom username over transport security</font></a></div></li></ul> <p></p><img src="http://samgentile.com/aggbug.aspx?PostID=2474" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=znBn1WB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=znBn1WB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=sxMAK9B"><img src="http://feeds.feedburner.com/~f/SamGentile?i=sxMAK9B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=Bz3gUqb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=Bz3gUqb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=SjKA8cB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=SjKA8cB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=At0AH7b"><img src="http://feeds.feedburner.com/~f/SamGentile?i=At0AH7b" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=agyNnub"><img src="http://feeds.feedburner.com/~f/SamGentile?i=agyNnub" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=fWVtBeb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=fWVtBeb" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/178809422/new-and-notable-199.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/02/new-and-notable-199.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2474 Fri, 02 Nov 2007 09:05:00 GMT SOA and BPM Conference Thursday - Web Services Software Factory Modeling Edition (V3) <p>As I stated yesterday, this is an <strong>exciting</strong> session. This is the first time in the Microsoft stack that we have been given what us Service designers have wanted - <strong>Contract First </strong>(Christian Weyer&#39;s tool was a first step) because, as Christian says, &quot;It&#39;s All About Agreements!&quot; <strong>Its the Contract that matters,&nbsp;period.</strong> &nbsp;The modeling capabilities go a long way in V3 and you DON&#39;T have to wait 2-3 years for Oslo for this portion on it. I am sitting here next to my collegue David Pallmann, who of course helped build Indigo in Building 42 so it&#39;s kind of sureal :)</p><span><span><u>Live blog:</u></span> <ul> <li class="MsoNormal"><span>Crazy week as Don as been trying to ship this week plus prepare for the conference</span></li> <li class="MsoNormal"><span>Take-away&#39;s</span></li> <ul> <li class="MsoNormal"><span>Modeling services is here and here to stay</span></li> <li class="MsoNormal"><span>The Service Factory can be bent to your will</span></li> <li class="MsoNormal"><span>Development tools and automation are continuing to gain popularity in the .NET community</span></li></ul></ul> <p class="MsoListParagraphCxSpFirst"><span><span><font size="3"></font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Software Factories</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Help you build a specific kind of application</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Imply a process for the dev team</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Incorporate various content types of guidance</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Readables</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Reusables</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Executables</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Actionables</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Target Audiences</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Teams building Web Services</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Different team roles may have different tasks</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Clear distinction between design and implementation</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Encourages a layered service architecture</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Teams building development tools</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">A growing trend in .NET development</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Guidance: Captures and reuses the "rockstar"</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Code Gen: Isolate unit testing and increase predictability</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Goals, Motivations and Scope</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">For Web Service Developers</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Info should be saved in a place other than the code</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Source code should be easy to generate from the info</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">A higher level of abstraction provides better productivity</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp; </span></span></span><font face="Calibri" size="3">Implementation decisions should not have to be made first (delay decisions like ASMX/WCF!)</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3"></font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">For the Web Service developer</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Three Models: Service Contract, Data Contract, and Host</font></p> <p class="MsoListParagraphCxSpLast"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Hands-on lab: 8 brief exercises that illustrate usage</font></p> <p class="MsoListParagraphCxSpFirst"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Activity sequence and dependency diagrams</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Web service architecture topics</font></p> <p class="MsoListParagraphCxSpMiddle"><span><span><font size="3">o</font><span>&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">Security Guidance Package</font></p> <p class="MsoListParagraphCxSpLast"><span><span><font size="3"></font><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><font face="Calibri" size="3">The 4 D's Design, Decide, Develop, Deploy</font></p></span> <p>DEMO - The Relationship Service - yes those kind of relationships :)</p> <ol> <li> <div>New Model Project - Metadata projects for Data Contract, Service Contract </div></li></ol> <p>Relationship Service</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; RelationshipServiceContract</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DefineCompatabilityParameter</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PickTheLuckyWinner</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WineDineAndImpress</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PopTheQuestion</p> <ol> <li> <div>Create the messages (connectors flow in the direction of the message, yes!!) </div></li> <li> <div>Model the Data Contract, Add Data Contract Element Part</div></li> <li> <div>Also have Fault Contracts</div></li> <li> <div>Property - Pick WCF Implementation Technology - model &quot;lights up&quot; with WCF Settings! (&quot;Decide&quot;)</div></li> <li> <div>VS Add New Project - WCF Implementation Project -&gt; unfolds into &quot;best practice&quot; project layout - Business Entities, Business Logic, etc (encouraging a Layered Architecture pattern)</div></li> <li> <div>Generate Code</div></li></ol> <p>Modeling XSD &quot;wicked hard&quot; - didn&#39;t try it</p> <p>Policy attribute (Class) allows applying <a class="" href="http://msdn2.microsoft.com/en-us/library/aa480591.aspx">Exception Shielding Pattern</a> - cool!</p> <p></p><img src="http://samgentile.com/aggbug.aspx?PostID=2470" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=xHoe5eB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=xHoe5eB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=cJgp2DB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=cJgp2DB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=Trfn7kb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=Trfn7kb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=HGisItB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=HGisItB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=BnVaMpb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=BnVaMpb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=7SFUZfb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=7SFUZfb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=fqClZqb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=fqClZqb" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/178454130/soa-and-bpm-conference-thursday-web-services-software-factory.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/01/soa-and-bpm-conference-thursday-web-services-software-factory.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2470 Thu, 01 Nov 2007 15:55:00 GMT Code Magazine ASP.NET MVC article - all information public <p>If you&#39;d like all the information that&#39;s public up to this point on the ASP.NET MVC framework, you can read my recent article in Code Magazine:</p> <p><a title="http://www.code-magazine.com/Article.aspx?quickid=070173" href="http://www.code-magazine.com/Article.aspx?quickid=070173">http://www.code-magazine.com/Article.aspx?quickid=070173</a></p><img src="http://codebetter.com/aggbug.aspx?PostID=170546" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=PRe2ufB"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=PRe2ufB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=TUpTSBb"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=TUpTSBb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/jeffreypalermo?a=VIkXb7b"><img src="http://feeds.feedburner.com/~f/jeffreypalermo?i=VIkXb7b" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/jeffreypalermo/~4/178403936" height="1" width="1" /> http://feeds.feedburner.com/~r/jeffreypalermo/~3/178403936/code-magazine-asp-net-mvc-article-all-information-public.aspx Jeffrey Palermo [MVP] http://codebetter.com/blogs/jeffrey.palermo/archive/2007/11/01/code-magazine-asp-net-mvc-article-all-information-public.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170546 Thu, 01 Nov 2007 13:41:07 GMT WCSF - Autocomplete Guidance Bundle Screencast - AJAX Autocomplete Functionality <p>Microsoft Patterns &amp; Practices is releasing Guidance Bundles as part of the Web Client Software Factory v2.0, with each guidance bundle focusing on very specific, bite-sized guidance that can be more easily used in your asp.net applications.</p> <p>The Autocomplete Guidance Bundle helps with AJAX Autocomplete Functionality very similar to using the AutoCompleteExtender Control in the AJAX Control Toolkit, but introduces a new control, the ContextSensitiveAutoCompleteExtender, which has&nbsp;the added benefit of packaging additional web control values as part of the call to the autocompletion web service. You can see some sample code here: <a class="" title="Autocomplete Guidance Bundle Example" href="http://www.pnpguidance.net/Post/ContextualAutocompleteGuidanceBundle.aspx">Contextual Autocomplete Guidance Bundle</a>.</p> <p>I put together a screencast that shows off both the AutoCompleteExtender Control in the AJAX Control Toolkit as well as the ContextSensitiveAutoCompleteExtender in the AutoComplete Guidance Bundle so one can get a good feel for the differences as well as using both controls during development from scratch:</p> <ul> <li> <div><a class="" title="Autocomplete Guidance Bundle Screencast" href="http://www.pnpguidance.net/Screencast/AutocompleteGuidanceBundleScreencastWCSF2.aspx">Autocomplete Guidance Bundle Screencast in WCSF v2</a></div></li></ul> <p>I haven&#39;t been doing much UI&nbsp;development lately, so I would love to hear from others as to the value of the ContextSensitiveAutoCompleteExtender Control and Autocomplete Guidance Bundle.</p><img src="http://codebetter.com/aggbug.aspx?PostID=170542" width="1" height="1"> http://codebetter.com/blogs/david.hayden/archive/2007/11/01/wcsf-autocomplete-guidance-bundle-screencast-ajax-autocomplete-functionality.aspx David Hayden [MVP C#] http://codebetter.com/blogs/david.hayden/archive/2007/11/01/wcsf-autocomplete-guidance-bundle-screencast-ajax-autocomplete-functionality.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170542 Thu, 01 Nov 2007 11:56:00 GMT Patterns & Practices and ALT.NET - The Software Factories are Important <p>I was pondering the Do&#39;s and Don&#39;ts list yesterday that Glenn Block <a class="" href="http://blogs.msdn.com/gblock/archive/2007/10/28/patterns-practices-2-0-how-would-it-look.aspx">posted on his blog</a>, and couldn&#39;t help but think that for the most part the Patterns &amp; Practices Team is already doing the Do&#39;s and not doing the Don&#39;ts.</p> <p>As someone who has spent the past year consuming, consulting, and presenting on&nbsp;p&amp;p topics, I can assure you that the various software factories and guidance bundles coming out of p&amp;p are&nbsp;critical to helping .NET developers transition to proven practices. The software factories / guidance bundles allow new developers to quickly and productively see the value of various proven practices that are not easy to grasp and implement otherwise. The software factories are not perfect and&nbsp;are not appropriate for all situations, but the factories use of</p> <ul> <li> <div>Intelligent code generation for productive implementation of proven practices,</div></li> <li> <div>Guidance&nbsp;that discusses software patterns and proven practices and when and when not to use them,</div></li> <li> <div>Documentation that&nbsp;mentions key scenarios and&nbsp;when and when&nbsp;to use the software factories,</div></li> <li> <div>Guidance&nbsp;that discusses alternate choices at times, often OSS alternatives, to what is&nbsp;provided&nbsp;in the factories, and</div></li> <li> <div>Reference implementations to show more complex &quot;real-world&quot; use of the factories and proven practices</div></li></ul> <p>are critical to giving developers a more complete and thorough understanding of the topics as well as making the use of proven practices more inviting when first starting out. You&nbsp;rarely find this reinforcement of guidance out in the wild that helps developers understand and appreciate the proven practices using different approaches and media</p> <p>Based on giving a lot of presentations at CodeCamps and .NET Developer Groups, I can attest it is the productivity benefits of the software factories from within Visual Studio that many times initially draw developers to proven practices. It is the software factories that get them hooked, seeking additional guidance and alternative solutions later on, much of what is discussed in communities like ALT.NET. Take away the software factories and guidance bundles and you lose a major pathway to developer enlightment IMHO.</p><img src="http://codebetter.com/aggbug.aspx?PostID=170536" width="1" height="1"> http://codebetter.com/blogs/david.hayden/archive/2007/11/01/patterns-amp-practices-and-alt-net-the-software-factories-are-important.aspx David Hayden [MVP C#] http://codebetter.com/blogs/david.hayden/archive/2007/11/01/patterns-amp-practices-and-alt-net-the-software-factories-are-important.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170536 Thu, 01 Nov 2007 10:21:00 GMT SOA and BPM Conference Wednesday - SOA Governance and the Microsoft Ecosystem <p>I only went to one session yesterday, as I spent a lot of time talking to our customers and potential customers as well as three hours with a a potential new hire. I have to say, is there is *huge* interest in our ESB - Neuron. It&#39;s a real world need - people are seeing a big gap in the product line and it fills it. Its that simple.</p> <p>Here are <strong><u>rough</u></strong> notes on a good session I attended on SOA Governance.</p> <p class="MsoNormal"><span><strong>SOA Governance and the Microsoft Ecosystem</strong></span></p><span><strong></strong></span>&nbsp;<span>Governance Types</span> <ol> <li> <div class="MsoNormal"><span>Corp Governance</span></div></li> <li> <div class="MsoNormal"><span>IT Governance</span></div></li> <li> <div class="MsoNormal"><span>SOX, Codes/Rules of Conduct</span></div></li> <li> <div class="MsoNormal"><span>Enterprise Architecture</span></div></li> <li> <div class="MsoNormal"><span>IT Portfolio Mgmt</span></div></li> <li> <div class="MsoNormal"><span>Project Governance</span></div></li> <li> <div class="MsoNormal"><span>SOA Governance (specialization of existing governance)</span></div></li></ol><span></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp; </span>- Design time<br /></span><span><span>&nbsp;&nbsp;&nbsp;&nbsp; </span>- Runtime</span> <ul> <li> <div class="MsoNormal"><span>We want to look at Governance along the entire Service Lifecycle</span></div></li> <li> <div class="MsoNormal"><span>Map lifecycle to MSF</span></div></li></ul> <p class="MsoNormal"><span></span><span><u>Microsoft Philosophy</u></span></p> <ol> <li> <div class="MsoNormal"><span>MSBA across Envisioning and planning - id key capabilities - great entry point</span></div></li> <li> <div class="MsoNormal"><span>MOF across Runtime Governance across Run time Governance</span></div></li> <li> <div class="MsoNormal"><span>MSF overall end to end guidance - baked into VS</span></div></li> <li> <div class="MsoNormal"><span>VS 2005 across 4 out of 5</span></div></li> <li> <div class="MsoNormal"><span>Windows Server (UDDI, etc)</span></div></li> <li> <div class="MsoNormal"><span>SCOM 2007 across last </span></div></li> <li> <div class="MsoNormal"><span>.NET 3 (WCF) across all 5</span></div></li> <li> <div class="MsoNormal"><span>Partners - SOA Software and AmberPoint</span></div></li> <li> <div class="MsoNormal"><span>Overall Portfolio and Project Management</span></div></li></ol><u><span>&nbsp;</span><span>SOA Design Time Governance</span></u> <ul> <li> <div class="MsoNormal"><span>Applies across Envisioning, Planning and Developing</span></div></li> <li> <div class="MsoNormal"><span>Design time includes capabilities</span></div></li></ul><span></span><u>&nbsp;<span>Microsoft Approach</span></u> <ul> <li><span>SOA Roadmap Management</span></li> <ul> <li><span></span><span>Microsoft Project Portfolio Server</span><span>= Service Capability Determination</span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>-</span></li></ul> <li><span></span><span>MSBA</span><span>- Shared Service ID</span><span>&nbsp;</span><span>MSBA (formerly Microsoft Motion)</span> </li> <ul> <li> <div class="MsoNormal"><span>Looks at it from capability rather than process value</span></div></li> <li> <div class="MsoNormal"><span>Create Service Model from capabilities</span></div></li> <li> <div class="MsoNormal"><span>MCS offering</span></div></li> <li> <div class="MsoNormal"><span>Heat Maps</span></div></li></ul></ul> <p><span><u>Shared Services Identification</u></span></p> <ul> <li><span></span><span>Collection/Hierarchy of Services</span></li> <li><span></span><span>MSBA adds value by adding whole layer of metrics</span></li> <li><span>helps business value of reuse of the service</span><span>&nbsp;</span><span>Service Dev</span></li> <li><span></span><span>Lots of challenges</span></li> <ul> <li><span></span><span>Versioning</span> </li> <li><span>Change Managemen</span></li></ul> <li><span></span><span>VSTS </span><span>- Design time governance comprehensive support</span></li> <ul> <li><span></span><span>Validate design </span><span>- ITpro can lay out physical with governance rules</span></li> <li><span></span><span>VSTS Supports the SOA Service Life Cycle</span><span>-</span></li> <ul> <li><span>Bake in Patterns and Practices </span></li> <li><span>enforce good patterns and practices</span><span>&nbsp;</span><span>Service </span></li></ul></ul> <li><span>Pub and Discovery</span><span>- Windows UDDI Server </span></li> <ul> <li><span></span><span>Part of Win2K3</span><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></li></ul> <li><span><span></span>Pub and discover</span><span>&nbsp;</span><span>Partner Interop</span></li> <ul> <li><span></span><span>With Service Registry/Repository vendors like Systinet, SOA Software</span></li> <li><span></span><span>He is showing Systinet examples not SOA Governance - so which one do they favor???</span><span>&nbsp;</span></li></ul> <li><span></span><span>SOA Runtime Governance</span><span>&nbsp;</span><span>System Center</span></li> <ul> <li><span>Service Monitoring - point to endpoint, set up rule to check result</span><span>&nbsp;</span><span>System Center</span></li></ul> <li><span>Asset Mgmt</span><span>- Actual Config</span></li> <ul> <li><span></span><span>Modeling assets in the CMDB - SDL model created via MOF/ITFL processes</span></li> <li><span></span><span>Auditing and recon between actual config and desired config</span><span>&nbsp;</span><span>Discovery</span></li> <li><span></span><span>Base capability only</span><span>&nbsp;</span><span>AmberPoint and BizTalk</span> </li></ul></ul> <p class="MsoNormal"><span>AmberPoint provides visibility</span></p><span> <p></p></span><img src="http://samgentile.com/aggbug.aspx?PostID=2465" width="1" height="1"><div class="feedflare"> <a href="http://feeds.feedburner.com/~f/SamGentile?a=eMdh95B"><img src="http://feeds.feedburner.com/~f/SamGentile?i=eMdh95B" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=R9AtVSB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=R9AtVSB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=lajLrSb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=lajLrSb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=0pA4DqB"><img src="http://feeds.feedburner.com/~f/SamGentile?i=0pA4DqB" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=WpL95Tb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=WpL95Tb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=Ufu7wgb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=Ufu7wgb" border="0"></img></a> <a href="http://feeds.feedburner.com/~f/SamGentile?a=US1CfLb"><img src="http://feeds.feedburner.com/~f/SamGentile?i=US1CfLb" border="0"></img></a> </div> http://feeds.feedburner.com/~r/SamGentile/~3/178287374/soa-and-bpm-conference-wednesday-soa-governance-and-the-microsoft-ecosystem.aspx Sam Gentile http://samgentile.com/blogs/samgentile/archive/2007/11/01/soa-and-bpm-conference-wednesday-soa-governance-and-the-microsoft-ecosystem.aspx#comments f6a3b4b9-a5b3-46b7-812c-832b8feb416c:2465 Thu, 01 Nov 2007 08:48:00 GMT MVP in ASP.NET - Development with Just the Promise of a View <p>Jeremy is talking about the differences in the various flavors of MVP as well as MVC in his recent <a class="" href="http://codebetter.com/blogs/jeremy.miller/archive/2007/10/31/development-trivial-pursuit-the-difference-between-mvc-and-the-different-flavors-of-mvp.aspx">post</a>. Yesterday I was thinking about the same thing&nbsp;while developing&nbsp;another project in ASP.NET using the Model-View-Presenter Pattern.</p> <p>One of the things that I noticed&nbsp;during development is that I started developing the web application with no actual view, just a promise of&nbsp;a view as defined by a contract, say IAddCustomerView. As I started running through user stories I didn&#39;t even consider creating a web page or user control, but instead started at the Presenter and used a mocking tool to be the view in the UI. During the process I got this &quot;high&quot; because I was able to stick with user stories and not have to change gears and deal with visual goo while I was on a roll.</p> <p>I just started with simple expectations. Something as simple as if a&nbsp;customer name is left blank that the web page ( view ) is notified of such a tragedy. Could be as simple as:</p> <p>&nbsp;</p> <div> <p>[<span>Test</span>]</p> <p><span>public</span> <span>void</span> EmptyCustomerNameShouldCauseInvalidCustomerMessage()</p> <p>{</p> <p>&nbsp;&nbsp;&nbsp; <span>MockRepository</span> mocks = <span>new</span> <span>MockRepository</span>();</p> <p>&nbsp;&nbsp;&nbsp; <span>IAddCustomerView</span> mockView = mocks.CreateMock&lt;<span>IAddCustomerView</span>&gt;();</p> <p>&nbsp;&nbsp;&nbsp; <span>AddCustomerPresenter</span> presenter = <span>new</span> <span>AddCustomerPresenter</span>(mockView);</p> <p>&nbsp;&nbsp;&nbsp; <span>Expect</span>.Call(mockView.CustomerName).Return(<span>string</span>.Empty);</p> <p>&nbsp;&nbsp;&nbsp; <span>Expect</span>.Call(mockView.CustomerTitle).Return(<span>&quot;Jester&quot;</span>);</p> <p>&nbsp;&nbsp;&nbsp; <span>Expect</span>.Call(mockView.PhoneNumber).Return(<span>&quot;555-1212&quot;</span>);</p> <p>&nbsp;&nbsp;&nbsp; mockView.Message = <span>&quot;Invalid Customer...&quot;</span>;</p> <p>&nbsp;&nbsp;&nbsp; mocks.ReplayAll();</p> <p>&nbsp;&nbsp;&nbsp; presenter.onAddCustomer();</p> <p>&nbsp;&nbsp;&nbsp; mocks.VerifyAll();</p> <p>}</p></div> <p>&nbsp;</p> <p>with say a view contract of:</p> <p>&nbsp;</p> <div> <p><span>public</span> <span>interface</span> <span>IAddCustomerView</span></p> <p>{</p> <p>&nbsp;&nbsp;&nbsp; <span>string</span> CustomerName { <span>get</span>; }</p> <p>&nbsp;&nbsp;&nbsp; <span>string</span> CustomerTitle { <span>get</span>; }</p> <p>&nbsp;&nbsp;&nbsp; <span>string</span> PhoneNumber { <span>get</span>; }</p> <p>&nbsp;&nbsp;&nbsp; <span>string</span> Message { <span>set</span>; }</p> <p>}</p></div> <p>&nbsp;</p> <p>The test just confirms that if the view&nbsp;provides an empty customer name that the view is notified with an &quot;Invalid Customer...&quot; message. No actual view was developed or harmed while implementing the expectation and I could move on to additional expectations <img src="http://codebetter.com/emoticons/emotion-1.gif" alt="Smile" /></p> <p>This felt good because I was able to start development immediately without a view, and I wasn&#39;t tied to the schedule of the&nbsp;designer who was doing the&nbsp;UI for the customer. Although I would rather do Model-View-Controller, the addition of the Presenter Class&nbsp;in Model-View-Presenter felt good in that I was able to get as close to the view as possible without actually having one. For the first time, I believe I actually started experiencing the value of the MVP Pattern during development which was quite eeeeery. Of course, it was Halloween after all.</p> <p>&nbsp;</p><img src="http://codebetter.com/aggbug.aspx?PostID=170531" width="1" height="1"> http://codebetter.com/blogs/david.hayden/archive/2007/11/01/mvp-in-asp-net-development-with-just-the-promise-of-a-view.aspx David Hayden [MVP C#] http://codebetter.com/blogs/david.hayden/archive/2007/11/01/mvp-in-asp-net-development-with-just-the-promise-of-a-view.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170531 Thu, 01 Nov 2007 08:37:00 GMT ALT.NET in Italy <p>Check it out:&nbsp; <a href="http://codeclimber.net.nz/archive/2007/10/31/An-ALT.NET-group-is-born-in-Italy.aspx">http://codeclimber.net.nz/archive/2007/10/31/An-ALT.NET-group-is-born-in-Italy.aspx</a></p> <p>Nothing stopping from doing your own, or setting up a SIG under your .Net user group.</p><img src="http://codebetter.com/aggbug.aspx?PostID=170523" width="1" height="1"> http://codebetter.com/blogs/jeremy.miller/archive/2007/11/01/alt-net-in-italy.aspx Jeremy D. Miller -- The Shade Tree Developer http://codebetter.com/blogs/jeremy.miller/archive/2007/11/01/alt-net-in-italy.aspx#comments d21fbbc9-c112-4f32-ad14-95939a2c53d4:170523 Thu, 01 Nov 2007 06:26:00 GMT