﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Design Patterns for .Net</title><link>http://www.DesignPatternsFor.Net</link><description>Software Design for Mere Mortals</description><copyright>© ArcSage 2000-2006, All rights reserved</copyright><item><title>WCF and WF, Like Birds of a Feather</title><description>&lt;P&gt;We all know that WCF is Microsoft’s technology for the creation of WS* and RESTful services. Then there’s WF for workflow modeling and development. These two technologies go together like, well you know, peanut butter and jelly. Join us in this session to see how to create WCF services that leverage WF in order to invoke asynchronous long-running processes. If time allows, we’ll also peer into the future to see what .Net 4.0 will bring to the table.&lt;BR&gt;&lt;BR&gt;&lt;A href="/presentations/WCFandWF.BirdsOfAFeather.Almost.pdf" target=_blank&gt;View the "WCF and WF, Like Birds of a Feather" presentation here&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;&lt;A href="/codesamples/2009.06.21.WCFandWF.BirdsOfFeather.zip" target=_blank&gt;View the "WCF and WF, Like Birds of a Feather" code here&lt;/A&gt;.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=131</link><pubDate>6/21/2009</pubDate></item><item><title>REST vs WS-Star Smackdown</title><description>&lt;P&gt;Two camps have risen in the SOA world, the RESTafarians and the WSDL-ites. Each has passionately argued that they are the one true path. Now they need battle no longer, for in .Net 3.5 they have been brought together into the same happy WCF family. In this session we’ll dive into the tenets of REST, and consider when to use it versus WS* types of services. Not only that, but we’ll see how the same service can be created in the REST and WS* styles with C# and WCF.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;&lt;A href="/presentations/RESTvsWSStarSmackdown.pdf" target=_blank&gt;View the "REST vs WS-Star Smackdown" presentation here&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;&lt;A href="/codesamples/2009.06.21.RESTvWSStarSmackdown.zip" target=_blank&gt;View the "REST vs WS-Star Smackdown" code samples for WCF here&lt;/A&gt;.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=130</link><pubDate>6/21/2009</pubDate></item><item><title>Two-Phase Commit is Evil !!!</title><description>&lt;P&gt;Distributed transactions have been a part of the developer’s toolkit for a long time. Many assume that when resources like databases are not centralized, we must use distributed transactions. However, there is a dark side we must be prepared to confront if we follow this path. In this session we’ll come face to face with the devil, and learn how to defeat him. We’ll delve into the CAP theorem, and present a few real-world examples that demonstrate the wisdom this theorem encapsulates. We’ll also explore several alternatives to distributed transactions, and review the trade-offs associated with these approaches. &lt;A href="/presentations/TwoPhaseCommitIsEvil.pdf" target=_blank&gt;View the "Two-PhaseCommit is Evil" presentation.&lt;/A&gt;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=129</link><pubDate>6/21/2009</pubDate></item><item><title>Service Design Patterns Book goes to Technical Review</title><description>&lt;p&gt;The book is moving to yet another critical stage.&amp;nbsp; We're off to technical review.&amp;nbsp; For those of you not familiar with the book-writing process, this means that the author puts his or her work in front of a highly selective group of experts in order to acquire feedback and suggestions for rework.&amp;nbsp; What we want is for them to find errors, omissions, new ways of looking at things, etc.&amp;nbsp; Such scrutiny helps to ensure that the work will have that high level of quality that is required by readers like you.&amp;nbsp; &lt;br&gt;&lt;br&gt;
So here's the thing that gets me really excited!&amp;nbsp; Our technical team for this book is comprised of rock-stars from the patterns and architecture communities, as well as thought-leaders in the areas of REST, W*, and "The Cloud".&amp;nbsp; Here are a few folks from our illustrious team that you might have heard of:&lt;br&gt;&lt;br&gt;
-&amp;nbsp;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/woolf" target="_blank"&gt;Bobby Woolf&lt;/a&gt;, co-author of &lt;a href="http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Addison-Wesley/dp/0321200683" target="_blank"&gt;Enterprise Integration Patterns&lt;/a&gt;&lt;br&gt;-&amp;nbsp;&lt;a href="http://www.ambysoft.com/scottAmbler.html" target="_blank"&gt;Scott Ambler&lt;/a&gt;, Practice Leader for Agile Development at IBM&lt;br&gt;-&amp;nbsp;&lt;a href="http://www.wirfs-brock.com/" target="_blank"&gt;Rebecca Wirfs-Brock&lt;/a&gt;, inventor of Responsibility-Driven-Design&lt;br&gt;-&amp;nbsp;Kent Brown, Program Manager for Biztalk and WCF at Microsoft&lt;br&gt;-&amp;nbsp;&lt;a href="http://www.reliablesoftware.com/" target="_blank"&gt;Michael Stiefel&lt;/a&gt;, member of the OASIS technical committee, former lecturer at MIT, and adjunct faculty at North Eastern University&lt;br&gt;&lt;br&gt;Stay tuned!
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=128</link><pubDate>6/17/2009</pubDate></item><item><title>Speaking at DevTeach in Vancouver, BC</title><description>&lt;P&gt;&lt;IMG alt="" hspace=0 src="/images/DevTeach.jpg" align=baseline border=0&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;I'm excited to&amp;nbsp;have been invited&amp;nbsp;to &lt;A href="http://en.wikipedia.org/wiki/Vancouver" target=_blank&gt;Vancouver&lt;/A&gt;, British Columbia in Canada from June 8 through June 12 2009&amp;nbsp;for &lt;A href="http://www.devteach.com/" target=_blank&gt;DevTeach&lt;/A&gt;, the International Developer's Conference for .Net.&amp;nbsp; I've always wanted to get out there; I hear it's a beautiful place. &lt;BR&gt;&lt;BR&gt;Here are the talks I'll be giving ...&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Two-Phase Commit is Evil&lt;/STRONG&gt;&lt;BR&gt;Distributed transactions have been a part of the developer’s toolkit for a long time. Many assume that when resources like databases are not centralized, we must use distributed transactions. However, there is a dark side we must be prepared to confront if we follow this path. In this session we’ll come face to face with the devil, and learn how to defeat him. We’ll delve into the CAP theorem, and present a few real-world examples that demonstrate the wisdom this theorem encapsulates. We’ll also explore several alternatives to distributed transactions, and review the trade-offs associated with these approaches. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;REST vs WS* Smackdown&lt;/STRONG&gt;&lt;BR&gt;Two camps have risen in the SOA world, the RESTafarians and the WSDL-ites. Each has passionately argued that they are the one true path. Now they need battle no longer, for in .Net 3.5 they have been brought together into the same happy WCF family. In this session we’ll dive into the tenets of REST, and consider when to use it versus WS* types of services. Not only that, but we’ll see how the same service can be created in the REST and WS* styles with C# and WCF.&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;WCF and WF, Like Birds of a Feather&lt;/STRONG&gt;&lt;BR&gt;We all know that WCF is Microsoft’s technology for the creation of WS* and RESTful services. Then there’s WF for workflow modeling and development. These two technologies go together like, well you know, peanut butter and jelly. Join us in this session to see how to create WCF services that leverage WF in order to invoke asynchronous long-running processes. If time allows, we’ll also peer into the future to see what .Net 4.0 will bring to the table. &lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Becoming an Architect&lt;/STRONG&gt;&lt;BR&gt;So you think you know what it means to be a software architect? Are you sure? Some people simply equate software architecture with the design of things like services, interfaces, applications, and so forth. In practice, software architecture and the responsibilities of the architect encompass much more than you might think. Join us in this session as we explore what it means to be a software architect from one who knows. We’ll take a look at the different species of architects, the work of the architect, the skills required to do the job, and some common issues the architect must confront. We’ll also attempt to answer the question, "Should architects code?" &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=127</link><pubDate>4/29/2009</pubDate></item><item><title>Service Design Patterns</title><description>&lt;P&gt;Here's a presentation I did on &lt;A href="/presentations/DomainServiceDesignPatterns.pdf" target=_blank&gt;Domain Service Design Patterns&lt;/A&gt; at SD West 2009.&lt;BR&gt;&lt;BR&gt;It's a pretty big file, so you'll want to save it to disk rather than load into your browser. Enjoy. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=126</link><pubDate>4/3/2009</pubDate></item><item><title>Becoming an Architect</title><description>&lt;P&gt;I've posted the most recent version of this presentation here: &lt;BR&gt;&lt;A href="/Presentations/BecomingAnArchitect.pdf"&gt;http://www.designpatternsfor.net/Presentations/BecomingAnArchitect.pdf&lt;/A&gt; &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=125</link><pubDate>4/3/2009</pubDate></item><item><title>Speaking at Dr Dobbs' SD West 2009</title><description>&lt;p&gt;
&lt;a href="http://www.sdexpo.com/?cid=SDW9_SPK" target="_blank"&gt;&lt;img src="/images/seemesdw.gif"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;I love &lt;a href="http://www.ddj.com/" target="_blank"&gt;Dr Dobbs&lt;/a&gt;.  They are vendor neutral, so you know that few here have &lt;a href="http://www.urbandictionary.com/define.php?term=drink+the+kool-aid" target="_blank"&gt;supped of the proverbial kool-aid&lt;/a&gt;. I am proud to announce that Dr Dobbs has asked me to speak at the prestigious &lt;a href="http://www.sdexpo.com/?cid=SDW9_SPK" target="_blank"&gt;SD West 2009 Conference &amp;amp; Expo&lt;/a&gt; which will be held from March 9–13 at the &lt;a href="http://www.santaclara.org/conventioncenter/" target="_blank"&gt;Santa Clara Convention Center&lt;/a&gt;, Santa Clara, CA (the heart of Silicon Valley).
&lt;br&gt;&lt;br&gt;
SD West is where the software development community gathers to learn about the latest business-critical technologies, network with peers, connect with innovative vendors and get inspiration from industry visionaries. The comprehensive conference program covers today’s most important topics including cloud computing, concurrent programming, dynamic languages, agile processes, security, testing and much more.  As a speaker, I can offer you an additional $100 off the VIP Pass. Simply register at &lt;a href="http://www.SDExpo.com" target="_blank"&gt;http://www.SDExpo.com&lt;/a&gt;  with the code &lt;b&gt;9ESPK &lt;/b&gt;to get your discount.  
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=123</link><pubDate>1/26/2009</pubDate></item><item><title>PLoP 2008 Recap and SOA Design Patterns Book Update</title><description>&lt;p&gt;Well, &lt;a href="http://hillside.net/plop/2008/" target="_blank"&gt;PLoP 2008&lt;/a&gt;
came and went all too quickly. This event was so much more fun and helpful than
I could have imagined. Thanks go out to many people including …&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=122</link><pubDate>12/1/2008</pubDate></item><item><title>SOA Design Patterns Book Chapters Accepted into PLoP Conference</title><description>&lt;P&gt;I am proud to announce that the &lt;A href="http://designpatternsfor.net/default.aspx?pid=107" target=_blank&gt;book chapters&lt;/A&gt;&amp;nbsp;which I submitted to &lt;A href="http://hillside.net/plop/2008/" target=_blank&gt;PLoP &lt;/A&gt;have been accepted into the &lt;A href="http://hillside.net/plop/2008/index.php?nav=activities#writersworkshops" target=_blank&gt;Writer’s Workshop&lt;/A&gt; for peer review. This is quite an honor, and I am humbled to be invited to converse&amp;nbsp;with such software legends as &lt;A href="http://st-www.cs.uiuc.edu/users/johnson/" target=_blank&gt;Ralph Johnson&lt;/A&gt; (co-author of the landmark book &lt;A href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612" target=_blank&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/A&gt;), &lt;A href="http://www.joeyoder.com/" target=_blank&gt;Joseph Yoder &lt;/A&gt;(co-author of the infamous &lt;A href="http://www.laputan.org/mud/" target=_blank&gt;Big Ball of Mud&lt;/A&gt;), &lt;A href="http://www.ibm.com/developerworks/blogs/page/woolf" target=_blank&gt;Bobby Woolf&lt;/A&gt; and &lt;A href="http://members.aol.com/kgb1001001/" target=_blank&gt;Kyle Brown&lt;/A&gt; (co-authors of &lt;A href="http://www.amazon.com/Enterprise-Integration-Patterns-Designing-Addison-Wesley/dp/0321200683" target=_blank&gt;Enterprise Integration Patterns&lt;/A&gt;). &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=120</link><pubDate>9/16/2008</pubDate></item><item><title>Speaking at Dr Dobb's Software Development Best Practices Conference 2008</title><description>&lt;P&gt;I'll be&amp;nbsp;pontificating&amp;nbsp; ;-)&amp;nbsp; about some of my favorite subjects at the &lt;A href="http://www.sdbestpractices.com/" target=_blank&gt;Dr Dobb's Software Development Best Practices 2008&lt;/A&gt; which is being held in Boston from October 27-30.&amp;nbsp;&amp;nbsp;Once again, Dr Dobbs has put together a great conference with a line-up of &lt;A href="https://www.cmpevents.com/SDe8/a.asp?option=G&amp;amp;V=2&amp;amp;CPid=155&amp;amp;Sortby=1&amp;amp;SPln=0" target=_blank&gt;speakers&lt;/A&gt;&amp;nbsp;that I can't get enough of myself. As a speaker, I am allowed to offer you an additional $100 off the VIP Pass. Simply use the&amp;nbsp;code&amp;nbsp;&lt;STRONG&gt;8ESPK&lt;/STRONG&gt; when you register at &lt;A href="http://www.sdbestpractices.com/" target=_blank&gt;http://www.SDBestPractices.com&lt;/A&gt;, but you gotta' do so by September 19 (sorry for the late notice). Here are the presentations I'll be doing ...&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=121</link><pubDate>9/16/2008</pubDate></item><item><title>Style and Zealotry</title><description>&lt;P&gt;I've watched from afar in amusement as a large software vendor and a contingent of developers that use their products have recently debated in a very public way design decisions regarding one of their products. To be sure, the protesters have some valid claims, and I am aligned with their "school of thought".&amp;nbsp; However, their approach leaves something to be desired.&amp;nbsp; If there's one hard lesson I've learned it's this … technology leaders and architects must be especially mindful of their style and learn how to check their zeal.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=119</link><pubDate>8/2/2008</pubDate></item><item><title>Behind the Data Mapper Pattern</title><description>&lt;P&gt;Well, I wrote this article on &lt;A href="http://martinfowler.com/eaaCatalog/dataMapper.html" target=_blank&gt;Data Mappers&lt;/A&gt; quite some time ago, and it turned out to be very popular. But now it’s time to update it to reflect the new experiences I’ve had since I originally wrote the article. So, I’ll be taking it offline for a while to give it an upgrade.&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;I've learned a lot since I wrote this article through my own personal experiences with teams that I’ve worked on, and by learning from others “out there” in the industry. For example, when I first wrote the article I worked with a team that primarily used “Hard-Coded” Data Mappers and “Code Generation” to produce mappers. Since then, I’ve worked with a team that uses &lt;A href="http://www.hibernate.org/343.html" target=_blank&gt;nHibernate&lt;/A&gt;, the .Net port of the popular Java &lt;A href="http://en.wikipedia.org/wiki/Object-relational_mapping" target=_blank&gt;Object-Relational Mapper&lt;/A&gt; ( &lt;A href="http://www.hibernate.org/" target=_blank&gt;Hibernate&lt;/A&gt;). There are a few observations I can offer at this time concerning the use of nHibernate.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=22</link><pubDate>7/31/2008</pubDate></item><item><title>Messaging Design Patterns for SOAP Services</title><description>SOAP has become the De facto standard for more complex service designs where there is a need for applications integration and collaboration. However, our use of WSDL and the wide-spread adoption of the Document-Literal-Wrapped pattern by SOAP toolkits have led to a proliferation of services that look remarkably like procedures and synchronous RPCs. That’s too bad, because SOAP is, at its core, a foundation for enabling one-way message exchanges. In order to more fully realize the benefits of SOA, we must reconsider the patterns we use when we design our services. Join us in this session to explore how we might evolve from a procedural orientation to a messaging orientation when using SOAP.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/MessagingOrientedDesignPatternsForSOAPServices.pdf</link><pubDate>7/28/2008</pubDate></item><item><title>Book Chapters Accepted for PLoP Shepherding</title><description>&lt;P&gt;Well, the book project (i.e. &lt;A href="/default.aspx?pid=107" target=_blank&gt;Addison Wesley book on SOA Design Patterns&lt;/A&gt;) continues to move along. Upon the recommendation of &lt;A href="http://www.ambysoft.com/scottAmbler.html" target=_blank&gt;Scott Ambler&lt;/A&gt;, and in&amp;nbsp;order to ensure the highest levels of quality, I&amp;nbsp;decided to follow the pattern (pun intended)&amp;nbsp;established by&amp;nbsp;many of the pattern authors that have preceded me. I have therefore submitted a few chapters from my book to the &lt;A href="http://hillside.net/plop/2008/" target=_blank&gt;Pattern Languages of Programming Conference&lt;/A&gt; put on by &lt;A href="http://hillside.net/" target=_blank&gt;Hillside.Net&lt;/A&gt;. This conference is the premier event for pattern authors and pattern enthusiasts to gather, discuss, learn more about patterns and software development, and acquire feedback from peers with the goal being to improve the patterns. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=118</link><pubDate>7/10/2008</pubDate></item><item><title>Speaking at IASA Architecture Connections</title><description>&lt;P&gt;I will be giving an updated version of the following talk at the &lt;A href="http://www.iasaconnections.com/shows/iasa2008fall/default.asp?s=119" target=_blank&gt;IASA Connections Architect Connections Conference&lt;/A&gt;.&amp;nbsp; This unique conference, devised especially for software architects, will be held in San Francisco from October 6-8, 2008.&amp;nbsp; I am honored to be included amongst a great bunch of &lt;A href="http://www.iasaconnections.com/shows/iasa2008fall/default.asp?c=2&amp;amp;s=119" target=_blank&gt;speakers&lt;/A&gt;, and am really looking forward to attending a number of the &lt;A href="http://www.iasaconnections.com/shows/iasa2008fall/default.asp?c=1&amp;amp;s=119" target=_blank&gt;presentations&lt;/A&gt;&amp;nbsp;myself.&amp;nbsp; Even if you can't make it to this conference, you may want to check out the &lt;A href="http://www.iasahome.org/web/home/home" target=_blank&gt;International Association of Software Architects&lt;/A&gt;.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=117</link><pubDate>7/10/2008</pubDate></item><item><title>Speaking at Dr Dobb's Architecture &amp; Design World 2008 </title><description>&lt;P&gt;I'm honored to have been selected to speak at the &lt;A href="http://www.drdobbsarchworld.com/" target=_blank&gt;Dr Dobb's Architecture and Design World 2008&lt;/A&gt;. The conference has another &lt;A href="https://www.cmpevents.com/SDUM8/a.asp?option=G&amp;amp;V=2&amp;amp;CPid=215&amp;amp;Sortby=1&amp;amp;SPln=0" target=_blank&gt;stellar cast&lt;/A&gt;&amp;nbsp;this year. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=116</link><pubDate>7/10/2008</pubDate></item><item><title>GO4 Patterns</title><description>&lt;P&gt;Web sites that discuss the &lt;I&gt;Gang of Four Design Patterns&lt;/I&gt; ...&lt;BR&gt;&lt;BR&gt;
&lt;H1&gt;About the Gang of Four&lt;/H1&gt;&lt;A href="http://hillside.net/patterns/gang_of_four.html" target=_blank&gt;About the Gang-of-Four&lt;/A&gt; 
&lt;H1&gt;Creational Patterns&lt;/H1&gt;&lt;SPAN class=textNormal&gt;These patterns provide solutions that encapsulate the logic to instantiate or create objects.&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://c2.com/cgi/wiki?CategoryCreationalPatterns" target=_blank&gt;Creational Patterns on C2 Wiki&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/singletondespatt.asp" target=_blank&gt;Exploring the Singleton Design Pattern&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/factopattern.asp" target=_blank&gt;Exploring the Factory Design Pattern&lt;/A&gt; 
&lt;H1&gt;Structural Patterns&lt;/H1&gt;&lt;SPAN class=textNormal&gt;These patterns describe how you can build increasingly complex and powerful classes and objects by combining classes or objects (respectively) together into larger entities.&lt;/SPAN&gt; &lt;BR&gt;&lt;BR&gt;&lt;A href="http://c2.com/cgi/wiki?CategoryStructuralPatterns" target=_blank&gt;Structural Patterns on C2 Wiki&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;BR&gt;
&lt;H1&gt;Behavioral Patterns&lt;/H1&gt;&lt;SPAN class=textNormal&gt;Behavioral patterns provide solutions that control how an object or object behave at run-time. These patterns focus on how objects communicate or interact, and how classes are assigned responsibilities.&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://c2.com/cgi/wiki?CategoryBehavioralPatterns" target=_blank&gt;Behavioral Patterns on C2 Wiki&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/observerpattern.asp" target=_blank&gt;Exploring the Observer Design Pattern &lt;/A&gt;&lt;BR&gt;&lt;BR&gt;
&lt;H1&gt;All Categories of GO4 Patterns&lt;/H1&gt;&lt;A href="http://www.dofactory.com/Patterns/Patterns.aspx" target=_blank&gt;Data and Object Factory - Design Patterns&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://msdn.microsoft.com/msdnmag/issues/05/07/DesignPatterns/" target=_blank&gt;Discover the Design Patterns You're Already Using in the .NET Framework &lt;/A&gt;&lt;BR&gt;&lt;BR&gt;
&lt;P&gt;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=4</link><pubDate>7/10/2008</pubDate></item><item><title>Who is this guy Rob Daigneau?</title><description>&lt;P&gt;You may have noticed that I've written a number of articles that provide my perspective on &lt;A href="/default.aspx?pid=5"&gt;what it means to be an architect&lt;/A&gt; and the issues the architect faces (re: &lt;A href="/default.aspx?pid=25"&gt;The Hard Skills are the Soft Skills&lt;/A&gt;, &lt;A href="/default.aspx?pid=53"&gt;The Many Species of Architects&lt;/A&gt;, &lt;A href="/default.aspx?pid=60"&gt;The Passage from Developer to Architect&lt;/A&gt;). Some of you may be wondering, "Who is this guy Rob Daigneau, and what qualifies him to make such statements and recommendations?". Well, maybe it's time that I tell you something about myself.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=61</link><pubDate>7/10/2008</pubDate></item><item><title>Have it Your Way - REST and SOAP in WCF Solutions</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="CodeSamples/RESTfulWCF.zip"&gt;Demo Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Two camps have risen in the SOA world, the RESTafarians, and the SOAP/WSDL-ites. Each has passionately argued that they are the one true path to SOA. Now they need battle no longer, for in .Net 3.5 they have been brought together into the same happy WCF family.&lt;br/&gt;&lt;br/&gt;In this session you’ll learn what REST is, when to use it vs SOAP/WSDL, and how to do it.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/REST.and.SOAP.pdf</link><pubDate>5/22/2008</pubDate></item><item><title>Asynchronous Messaging Patterns with WCF</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="CodeSamples/AsyncMessagingPatterns.zip"&gt;Demo Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;A client program calls a service and must wait for it to finish before moving on to do more work. We all know how to do synchronous calls; it’s as easy as writing a “Hello World” program. But how does one design a system where lots of work can be done in parallel?&lt;br/&gt;&lt;br/&gt;In this session you’ll see how to use WCF to do just that. You’ll learn about several patterns used in the world of asynchronous messaging including callbacks, store and forward, and conversations. This session will provide you an introduction to some of the fundamental concepts required to build distributed Event Driven Architectures.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/AsynchronousMessagingPatternsWithWCF.pdf</link><pubDate>5/22/2008</pubDate></item><item><title>Creating Custom WCF Behaviors</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="CodeSamples/WCF.CustomBehaviors.zip"&gt;Demo Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Custom behaviors provide a mechanism to modify the WCF runtime execution at the proxy (i.e. client) or dispatcher (i.e. service) via attributes or configurations. This powerful technique may be used to inject logic upon the Service, Contract, Endpoint, or Operation. While the commonly cited cases where behaviors are used include instance management, concurrency, and threading, the possibilities for this amazing WCF feature are endless.&lt;br/&gt;&lt;br/&gt;In this session we will explore how WCF custom behaviors might be leveraged to implement a concept similar to Aspects. You’ll learn how this powerful feature can be used to apply cross-cutting logic to your services in a manner that is both simple to understand and implement. You’ll also see that the concepts of SOA, OOP, and AOP (i.e. Aspect-Oriented Programming) should be thought of as being complementary rather than competing.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/CustomWCFBehaviors.pdf</link><pubDate>5/22/2008</pubDate></item><item><title>WCF Services, Data Contracts, and the Document/Literal/Wrapped Pattern</title><description>&lt;P&gt;It’s been some time since I wrote the article &lt;A href="/default.aspx?pid=99" target=_blank&gt;Patterns for Flexible WCF Services&lt;/A&gt;. In that article I show how “&lt;EM&gt;Data Contracts bloat your messages&lt;/EM&gt;” (my words) and how “&lt;EM&gt;WCF automatically wraps … parameters within … messages that it generates from the name of the operation&lt;/EM&gt;”. There is one thing I didn’t say in the article that I’ve been meaning to get back to. There is good reason for why Microsoft does this. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=115</link><pubDate>3/26/2008</pubDate></item><item><title>Have It Your Way – REST and SOAP in WCF Solutions</title><description>&lt;P&gt;I'll be giving this talk at &lt;A href="http://vslive.com/2008/orlando/" target=_blank&gt;VS Live in Orlando&lt;/A&gt; on May 14, 2008.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=113</link><pubDate>2/9/2008</pubDate></item><item><title>Asynchronous Messaging Patterns with WCF</title><description>&lt;P&gt;&lt;EM&gt;I'll be giving this presentation at &lt;A href="http://vslive.com/2008/sf/" target=_blank&gt;VS Live!&amp;nbsp;San Francisco&lt;/A&gt;&amp;nbsp;on April 2, 2008. &lt;/EM&gt;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=112</link><pubDate>2/9/2008</pubDate></item><item><title>Creating Custom WCF Behaviors</title><description>&lt;P&gt;&lt;EM&gt;I'll be giving a brand new version of this presentation at &lt;A href="http://vslive.com/2008/sf/" target=_blank&gt;VS Live! San Francisco &lt;/A&gt;on April 2, 2008. &lt;/EM&gt;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=111</link><pubDate>2/9/2008</pubDate></item><item><title>The Hardest Project I've Ever Taken On</title><description>&lt;P&gt;Well, I've been largely absent from the blogging world for many moons now. As I mentioned in &lt;A href="/default.aspx?pid=108" target=_blank&gt;The Near Term Future for this Site&lt;/A&gt;, I am spending what little free time I have writing a SOA Patterns book for Addison Wesley. Now, that's a big size project in and of itself, but around the same time that the contract came through two other big things happened in my life.&amp;nbsp;First ... I accepted a Chief Architect position at a software&amp;nbsp;company named Synxis ... and the really big news ... my wife and&amp;nbsp;I had a daughter in September. Life as I knew it has ceased to be in so many ways. &amp;nbsp;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=110</link><pubDate>2/4/2008</pubDate></item><item><title>Speaking at Dr Dobb's Software Development West Conference &amp; Expo 2008</title><description>&lt;P&gt;I'm honored to have been selected to speak at the &lt;A href="http://sdexpo.com/2008/west/" target=_blank&gt;Dr Dobb's Software Development Conference &amp;amp; Expo&amp;nbsp;West 2008&lt;/A&gt;. The event organizers have pulled together another stellar group with folks like &lt;A href="http://www.ambysoft.com/" target=_blank&gt;Scott Ambler&lt;/A&gt;, &lt;A href="http://www.elharo.com/" target=_blank&gt;Rusty Harold&lt;/A&gt;, &lt;A href="http://c2.com/cgi/wiki?JoshuaKerievsky" target=_blank&gt;Joshua Kerievsky&lt;/A&gt;, &lt;A href="http://www.objectmentor.com/omTeam/martin_r.html" target=_blank&gt;Robert Martin&lt;/A&gt;, and &lt;A href="http://www.research.att.com/~bs/" target=_blank&gt;Bjarne Stroustrup&lt;/A&gt;. Here are the presentations I'll be giving: &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=109</link><pubDate>11/22/2007</pubDate></item><item><title>Implementing SOA Design Patterns in WCF  ... Part II</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="CodeSamples/ImplementingSOAPatternsWithWCF.CreatingCustomWCFBehaviors.zip"&gt;Demo Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Both Service-Orientation and the Windows Communication Foundation (WCF) offer the promise of greater interoperability and ease of integration, but in order to realize benefits such as these we must evolve the way we architect solutions. While many of the lessons learned from Distributed Object-Oriented Architectures can be leveraged, much of what we did “back in the day” will not help us to achieve the goals of SOA even if we choose to use the WCF. In fact, many of the old ways have become Anti-Patterns. In this session you’ll see how the WCF can be leveraged to create extensible, versioned, responsive, interoperable, and easy-to-maintain services.&lt;br/&gt;&lt;br/&gt; Contains a lot of code samples demonstrating anti-patterns in contract design, message exchange patterns, and patterns for flexible service design.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/2007.09.04.ImplementingSOADesignPatternsWithWCF.Final.pdf</link><pubDate>11/11/2007</pubDate></item><item><title>The Near-term Future for this Site</title><description>&lt;P&gt;Some of you may have noticed that my frequency of postings has decreased throughout this year. Well, hopefully you’ll find my excuses to be acceptable. First, my “day job” places significant demands upon me, as does my family. These&amp;nbsp;must take priority. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=108</link><pubDate>11/5/2007</pubDate></item><item><title>Addison Wesley Book on SOA Design Patterns</title><description>&lt;P&gt;I am proud to announce that I have recently signed a contract with &lt;A href="http://www.aw-bc.com/catalog/academic/course/0,1143,70071,00.html" target=_blank&gt;Addison Wesley&lt;/A&gt; to create a book on SOA Design Patterns. The general concept is as follows ...&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=107</link><pubDate>9/18/2007</pubDate></item><item><title>Implementing SOA Design Patterns with WCF</title><description>&lt;P&gt;I'll be giving a &lt;STRONG&gt;brand new&lt;/STRONG&gt; version of this presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2007/lasvegas/default.aspx" target=_blank&gt;VS Live!&amp;nbsp;Las Vegas&amp;nbsp;&lt;/A&gt;on October 16, 2007. I'll be providing lots of new code examples demonstrating a number of patterns, and will de-emphasize the slides. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=105</link><pubDate>9/12/2007</pubDate></item><item><title>Creating Custom WCF Behaviors</title><description>&lt;P&gt;I'll be giving a &lt;STRONG&gt;brand new&lt;/STRONG&gt; version of this presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2007/lasvegas/default.aspx" target=_blank&gt;VS Live! Las Vegas&lt;/A&gt; on October 17, 2007. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=106</link><pubDate>9/12/2007</pubDate></item><item><title>Introducing Domain Services</title><description>&lt;P&gt;Service Oriented Architecture (SOA) currently means many things to many people. For some it is a way to offer software capabilities to different types of consumers (i.e. client software) usually via platform-independent mechanisms. For others it’s about systems integration, coordination, and collaboration. Unfortunately, these all-encompassing definitions have left many wondering what SOA really is. Some believe that the meaning of SOA has become so overloaded that the term has been rendered useless. After all, if we do not have a common understanding of what a phrase means, then what &lt;A href="http://www.imdb.com/title/tt0061512/quotes" target=_blank&gt;we’ve really got here is a failure to communicate&lt;/A&gt;. I too had been skeptical for quite some time, but after a fair amount of observation and contemplation, I came to believe that there is a way to classify services in a manner that will allow us to get unstuck and move forward. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=104</link><pubDate>8/18/2007</pubDate></item><item><title>Becoming an Architect</title><description>So you think you know what it means to be a software architect? Are you sure? Some people simply equate software architecture with the design of things like services, interfaces, applications, and so forth. In practice, software architecture and the responsibilities of the architect encompass much more than you might think. Join us in this session as we explore what it means to be a software architect from one who knows. We’ll take a look at the different species of architects, the work of the architect, the skills required to do the job, and some common issues the architect must confront. We’ll also attempt to answer the question, "Should architects code?"</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/BecomingAnArchitect.pdf</link><pubDate>8/10/2007</pubDate></item><item><title>Anti-Patterns in Software Projects … The Human Factor </title><description>The creation of software products is a highly complex endeavor. One methodology after the next is touted as being the solution to smoother project execution, but the pundits never seem to account for the chasm that exists between academia and reality in corporate world. This chasm exists because of the human factor, the ingredient which ultimately has the greatest influence upon the success of any software project. Join us in this session to see how people, teams, leadership styles, and politics can subvert the benefits that we should be realizing from strategic architecture plans, modern methodologies like Agile, and IT governance processes. We will identify some of the common anti-patterns attributable to people and organizations, and look at ways to address these self-defeating behaviors in positive manner.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/AntiPatternsInSoftwareProjects.TheHumanFactor.V2.pdf</link><pubDate>8/10/2007</pubDate></item><item><title>The False Destination Anti-Pattern</title><description>&lt;P&gt;Hey managers … want to know a sure-fire way of demoralizing your developers and possibly even convincing them to leave the company? Well, I’ve got the recipe to help you do just that. Give them a lofty goal to shoot for, but never commit to really seeing that objective come to fruition. Oh, and keep that to yourself; don’t let the troops know that you’re iffy about the direction. Also, tell them that this is one of the most important projects for the company; give them a sense of urgency. Encourage them to work hard to meet artificial deadlines. Make sure that they’ve built a working product they are proud of. If you let this go on for at least one year, you’ll get the best effect; in general, the longer you drag it out, the better. Then, when the time is just right, tell them that there’s been a change in strategy. You’ll want to have a camera with you to capture the looks on their faces when you tell them the good news! &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=103</link><pubDate>7/15/2007</pubDate></item><item><title>So You Want to be an Enterprise Architect? – Part II</title><description>&lt;P&gt;In &lt;A href="/Default.aspx?pid=101"&gt;Part I&lt;/A&gt; of this short series I related how difficult it is for the &lt;EM&gt;Enterprise Architect &lt;/EM&gt;to fulfill his mission. I explained how this type of architect may be held accountable, but may have little authority over matters he is concerned with. For organizations that choose not to empower the Enterprise Architect with decision-making authority, I suggested that this person is really an on-staff consultant. In this article I further distinguish the Enterprise Architect role from that of the Solution Architect. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=102</link><pubDate>7/13/2007</pubDate></item><item><title>So You Want to be an Enterprise Architect?</title><description>&lt;P&gt;A lot of developers seem to have this idealized vision of what it means to be an Enterprise Architect. They might see themselves as the man in charge riding in on the white horse, the person with all the answers whom everyone will follow. I hate to burst your bubble, but this is never the case. If you are designated to be a “real” Enterprise Architect, the problems confronting you will be countless, and most of these are not technical issues. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=101</link><pubDate>7/13/2007</pubDate></item><item><title>Introducing Agile Principles into Your Organization</title><description>&lt;P&gt;When it comes to software methodologies, the “new kid” on the block is &lt;A href="http://en.wikipedia.org/wiki/Agile_software_development" target=_blank&gt;Agile&lt;/A&gt;. This set of practices and principles, like its predecessors, has promised to alleviate many of the problems that are inherent to software development. The truth is that many of the Agile principles have been around for some time. If this is the case, then why are so many organizations resisting or struggling to adopt it? We’ll examine a few obstacles that confront the adoption of Agile in this article. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=100</link><pubDate>7/6/2007</pubDate></item><item><title>Patterns for Flexible WCF Services</title><description>&lt;BR&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;FONT face=Arial size=2&gt;&lt;BR&gt;While SOA promotes loose coupling at the transport layer and also facilitates platform independence between consumers and the services they interact with, we are still coupled to the interface as defined by the service’s contract. We’ve learned a lot about how to create loosely coupled systems over the last few decades, but how can we apply those lessons to services? This article expands upon Martin Fowler’s &lt;/FONT&gt;&lt;A href="http://www.martinfowler.com/eaaCatalog/serviceLayer.html"&gt;&lt;FONT face=Arial color=#800080 size=2&gt;Service Layer Pattern&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt;. It presents patterns that allow you to define descriptive, maintainable, yet extensible contracts specifically with Microsoft’s &lt;/FONT&gt;&lt;A href="http://msdn2.microsoft.com/en-us/netframework/aa663324.aspx"&gt;&lt;FONT face=Arial size=2&gt;WCF&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial size=2&gt; technology.&lt;/FONT&gt;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=99</link><pubDate>7/6/2007</pubDate></item><item><title>A Sample Code Review Template</title><description>&lt;P&gt;Whether you chose to do formal team code reviews or if you're into &lt;A href="http://en.wikipedia.org/wiki/Pair_programming" target=_blank&gt;pair programming &lt;/A&gt;, it can help to have a list&amp;nbsp;so that you can better remember some of the things you might want to check for. To that end, I developed the following code review template some time back in order to help my teams police themselves. If you chose to do formal code reviews, then one or more reviewers would fill in the "Observations" and "Suggestions" areas of the template below . If you use pair-programming, the typical thing is to &lt;A href="http://en.wikipedia.org/wiki/Refactoring" target=_blank&gt;refactor&lt;/A&gt; on the fly, however, you can always use a template like this to take notes so that you can return later to address any issues uncovered.&lt;BR&gt;&lt;BR&gt;Don't forget that &lt;A href="/default.aspx?pid=44"&gt;the manner in which you conduct code reviews &lt;/A&gt;can make all the difference.&lt;BR&gt;&lt;BR&gt;You can also download a Word document version of this template &lt;A href="/documents/CodeReviewTemplateOnlineVersion.doc" target=_blank&gt;here&lt;/A&gt;. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=95</link><pubDate>7/6/2007</pubDate></item><item><title>Interview with the University of Bolton, U.K.</title><description>&lt;P&gt;I recently had the pleasure to be interviewed by &lt;A href="http://www.integrationsolutions.co.uk/contact.htm" target=_blank&gt;Adil Fathelrahman&lt;/A&gt;, PhD E-Business Researcher, of the &lt;A href="http://www.bolton.ac.uk/" target=_blank&gt;University of Bolton Business School&lt;/A&gt; in the U.K. The research project for which I was contacted pertains to &lt;A href="http://www.integrationsolutions.co.uk/" target=_blank&gt;Software Design Patterns&lt;/A&gt;, and is being overseen by &lt;A href="http://www.integrationsolutions.co.uk/contact.htm" target=_blank&gt;Dr. Mathew Shafaghi&lt;/A&gt;, a &lt;EM&gt;Director of Research and Enterprise&lt;/EM&gt; at this fine institution. The stated goal of this project is "&lt;EM&gt;to investigate existing software design and implementation patterns of web services based solutions of Enterprise Applications Integration (EAI) with the aim of providing IT companies within small to medium sector with a better understanding of existing software design patterns , frameworks and templates and how to make use of software design patterns to help reduce cost, increase efficiency and improve speed of time to market. The above will be instrumental to assisting companies in the sector to work towards achieving a competitive advantage.&lt;/EM&gt;". What follows are the questions I was posed and my candid, and hopefully helpful answers.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=87</link><pubDate>7/6/2007</pubDate></item><item><title>When Flexibility in Service Contracts Goes Awry</title><description>&lt;P&gt;One of the central themes in Service-Orientation (SO) is the idea of the contract. While this concept is not new (e.g. COM components developed in C++ described their contracts with &lt;A href="http://en.wikipedia.org/wiki/Interface_Definition_Language" target=_blank&gt;Interface Definition Language&lt;/A&gt;, while the VB IDE hid the contract from developers), the way we document that contract is quite different when we use Service-Oriented principles. Most people probably know by now that web services, the most common way to implement the Service-Oriented style of design, uses &lt;A href="http://en.wikipedia.org/wiki/XSD" target=_blank&gt;XSD&lt;/A&gt; and &lt;A href="http://en.wikipedia.org/wiki/WSDL" target=_blank&gt;WSDL&lt;/A&gt; to define these contracts.&amp;nbsp; One of the most interesting developments that I've seen is how people are viewing these contracts. Most people, for obvious reasons, seems to prefer contracts that are explicit and self-describing. Many people, even those who espouse the "&lt;A href="http://msdn.microsoft.com/msdnmag/issues/05/05/ServiceStation/" target=_blank&gt;Contract First&lt;/A&gt;" concept, also want contracts that can be unilaterally altered in some way. The hope is that none of the consuming applications will break when these changes are introduced "under the radar". Recently, when considering all of this, I found myself reflecting upon what I learned about contracts in the few law classes I took back in my college days a long long time ago.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=69</link><pubDate>6/14/2007</pubDate></item><item><title>Chasing the Silver Bullet - SOA Myths and Opportunities</title><description>The benefits attributed to SOA have been trumpeted by many a pundit and vendor. We’ve heard that this architectural style will yield greater business agility and adaptability, reuse, productivity, interoperability, ease of application integration, better versioning, and even higher availability and performance. Is it really possible that SOA will be able to deliver upon such lofty goals, and is there anything inherent in this approach that ensures these desired outcomes? Join us in this session to see how some of the goals of SOA might realistically be achieved, and where we might want to reset our expectations. </description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/SOAMythsAndOpportunities.Final.pdf</link><pubDate>5/18/2007</pubDate></item><item><title>Creating Custom WCF Behaviors in the April 2007 Issue of the .Net Developer's Journal</title><description>&lt;P&gt;Check out the April 2007 Issue of the &lt;A href="http://dotnet.sys-con.com/read/367658.htm" target=_blank&gt;.Net Developer's Journal&lt;/A&gt;. It will be dedicated to the coverage of the &lt;EM&gt;Windows Communication Foundation&lt;/EM&gt;. I've got an article on Custom WCF Behaviors in there too! Here's the abstract:&lt;BR&gt;&lt;BR&gt;When building WCF services you’ll eventually encounter the need to integrate common logic that could be applied across a number of services, contracts, endpoints, or operations. Examples include logging, security, error handling, and message or parameter manipulation. Since this type of logic cuts across all of these concerns and must oftentimes be executed somewhere between the submission of a message from a client to the service, we are presented with an interesting design and programming challenge. Fortunately, WCF provides a feature called Custom Behaviors which allows us to inject common and “cross-cutting” logic into the WCF runtime at either the proxy (i.e. client) or dispatcher (i.e. service) in order to achieve such ends. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=88</link><pubDate>5/2/2007</pubDate></item><item><title>Politics and the Software Architect</title><description>&lt;P&gt;A lot of developers seem to have this idealized vision of what it’s like to be a software architect. They might see themselves as the man in charge riding in on the white horse, the person with all the answers whom everyone will follow. I hate to burst your bubble, but this is never the case. As a software&amp;nbsp;architect, the problems confronting you will be countless, and most of these will not be technical issues. Your biggest challenge will be influencing and persuading people to adopt your ideas. While you may have well founded, articulate, and even considerate messages, this may not be enough to sway those from whom you need to acquire buy-in. Software architects must be vigilant and continually hone their &lt;A href="/default.aspx?pid=25" target=_blank&gt;soft skills&lt;/A&gt; (also see &lt;A href="/Default.aspx?pid=93" target=_blank&gt;Architects and the Alpha Male Syndrome&lt;/A&gt;), and must also be aware of the political climate and culture of the organization they are working in. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=94</link><pubDate>4/27/2007</pubDate></item><item><title>Why Architects Should Keep Their Coding Skills Up to Par</title><description>&lt;P&gt;The question of whether or not architects should code in their daily work has spurred many a passionate debate. In my article, &lt;A href="/default.aspx?pid=60" target=_blank&gt;The Passage from Developer to Architect&lt;/A&gt;, I argued that coding limits the architect’s bandwidth and can prevent the architect from keeping an eye on the "big picture". In this article I’ll take what may appear to be a conflicting position. Architects should remain proficient in at least one programming language.&lt;/P&gt; </description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=92</link><pubDate>4/27/2007</pubDate></item><item><title>Architects and the Alpha Male Syndrome</title><description>&lt;P&gt;The ranks of software development are full of aggressive, competitive, and driven personalities, and architects are no exception. Given that the role of the architect is to lead and persuade, one would think that they would naturally be experts at the &lt;A href="/default.aspx?pid=25" target=_blank&gt;soft skills&lt;/A&gt;. Yet many of us, myself included, continue to struggle with these things. We probably know what social skills are helpful or hurtful, but repeatedly and inexplicably exhibit self-defeating behaviors that we later regret. For those of you who have been searching for answers, I’ve found a fantastic book that may help you understand yourself or others better. &lt;BR&gt;&lt;BR&gt;The &lt;A href="http://www.alphamalesyndrome.com/" target=_blank&gt;Alpha Male Syndrome&lt;/A&gt;, by Kate Ludeman and Eddie Erlandson, might just help those architects who are grappling with the soft skills. The authors explain how the traits that create great leaders (e.g. competitiveness, innovation, tenacity, skepticism, confidence) can paradoxically also be their greatest liabilities. To find out your strengths and weaknesses, visit the &lt;A href="http://www.alphaassessment.com/" target=_blank&gt;Alpha Assessment&lt;/A&gt;. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=93</link><pubDate>4/14/2007</pubDate></item><item><title>Leadership and the Software Architect</title><description>&lt;P&gt;Many would agree&amp;nbsp;that the role of software architect involves leadership. While there may be differences in the leadership styles for our profession when compared to others, the fundamental principles of leadership are relatively consistent regardless of your&amp;nbsp;profession or functional area. I will not attempt to define leadership; others have already done a much better job at this than I could ever do. I will, however, provide a reading list of some of my favorite books on the subject.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=68</link><pubDate>4/14/2007</pubDate></item><item><title>An Introduction to WCF</title><description>&lt;P&gt;Just when we were starting to get used to technologies like .Net Remoting, ASMX (i.e. web services), System.Messaging, and Enterprise Services, along comes WCF, a technology that is positioned to take the place of all of those things. How could they do this to us? Why did they do this to us?&lt;BR&gt;&lt;BR&gt;Come to this session to learn what the Windows Communication Foundation is all about. We’ll cover WCF’s high level architecture, its goals, and some of the basic concepts. You’ll see plenty of code and only a few powerpoint slides. Since this will be a very informal discussion, we’ll leave plenty of time for Q&amp;amp;A.&lt;BR&gt;&lt;BR&gt;I'll be giving this presentation at the &lt;A href="http://www.dotnetlearn.com/" target=_blank&gt;.Net Learning Group&lt;/A&gt; on Monday, April 16 at 7pm at the &lt;A href="http://www.microsoft.com/mscorp/info/usaoffices/newengland/waltham.mspx" target=_blank&gt;Microsoft facilities in Waltham, Massachusetts&lt;/A&gt;. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=91</link><pubDate>4/5/2007</pubDate></item><item><title>Implementing SOA Design Patterns in WCF</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="CodeSamples/2007.04.05.ImplementingSOADesignPatternsInWCF.And.CustomBehaviors.Code.zip"&gt;Demo Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;Both Service-Orientation and the Windows Communication Foundation (WCF) offer the promise of greater interoperability and ease of integration, but in order to realize benefits such as these we must evolve the way we architect solutions. While many of the lessons learned from Distributed Object-Oriented Architectures can be leveraged, much of what we did “back in the day” will not help us to achieve the goals of SOA even if we choose to use the WCF. In fact, many of the old ways have become Anti-Patterns. In this session you’ll see how the WCF can be leveraged to create extensible, versioned, responsive, interoperable, and easy-to-maintain services. We’ll also see how Microsoft’s “Web Service Software Factory” might help or hinder us in our efforts.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/ImplementingSOADesignPatternsWithWCF.Final.pdf</link><pubDate>4/5/2007</pubDate></item><item><title>Do You Feel like You’ve Peaked as a Software Developer?</title><description>&lt;P&gt;It happens to most software developers sooner or later. You get to that point in your career when it seems like you’ve gone as far as you can go. You know you’re there when it feels like you’re just doing the same thing over and over again. You might have pushed hard to learn new languages or tools over the years, but now you’ve got that sinking feeling like you’ve been there before and it’s just gotten boring. Perhaps when you started you had a real passion for the craft. Nowadays, however, you’re tired of it all, and it’s hard to motivate yourself to keep coding when you know that whatever you learn will probably be obsolete in a few years. You struggle to make sense of some new &lt;A href="http://en.wikipedia.org/wiki/API" target=_blank&gt;API&lt;/A&gt;, but the programs you write make you feel like Bill Murray in &lt;A href="http://imdb.com/title/tt0107048/" target=_blank&gt;Ground Hog Day&lt;/A&gt;. Uggghhh!!!! This is a time for reflection, a time to investigate where you want to take your career. You’ll undoubtedly consider whether your career as a developer is merely &lt;A href="/default.aspx?pid=41" target=_blank&gt;a way to earn money, a stepping stone on to something else, or a true calling&lt;/A&gt;. Some may be swayed by the traditional belief that you’ve got to move on to management. Be forewarned, that career path isn’t as rosy as you might think, and requires an entirely different set of skills. Others may still feel an attraction to writing software, but just don’t know how to bring the zest back again. This article is for those who want to breathe new life into their careers as software professionals. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=90</link><pubDate>3/10/2007</pubDate></item><item><title>Speaking at Dr Dobb's Architecture and Design World 2007</title><description>&lt;P&gt;I'm honored to have been selected to speak at the &lt;STRONG&gt;Dr Dobb's Architecture and Design World 2007&lt;/STRONG&gt;. The &lt;A href="https://www.cmpevents.com/SDUM7/a.asp?option=G&amp;amp;V=2&amp;amp;CPid=179&amp;amp;Sortby=1&amp;amp;SPln=0" target=_blank&gt;roster&lt;/A&gt; is really quite&amp;nbsp;exceptional with&amp;nbsp;people like &lt;A href="http://en.wikipedia.org/wiki/Ivar_Jacobson" target=_blank&gt;Ivar Jacobsen&lt;/A&gt;, &lt;A href="http://www.rgoarchitects.com/blog/" target=_blank&gt;Arnon Rotem-Gal-Oz&lt;/A&gt;, and a number of other thought-leaders in the architectural space.&amp;nbsp;Here are the presentations I'll be giving:&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=89</link><pubDate>3/9/2007</pubDate></item><item><title>Implementing SOA Design Patterns in WCF</title><description>&lt;P&gt;I'll be giving this presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2007/sf/default.aspx" target=_blank&gt;VS Live! San Francisco&lt;/A&gt; on March 27, 2007&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=82</link><pubDate>3/9/2007</pubDate></item><item><title>Anatomy of a Real Live ASP.Net 2.0 Web Site</title><description>&lt;P&gt;I'll be giving an updated version of this presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2007/sf/default.aspx" target=_blank&gt;VS Live! San Francisco&lt;/A&gt; on March 27, 2007&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=81</link><pubDate>3/9/2007</pubDate></item><item><title>Anti-Patterns in Software Projects ... The Human Factor</title><description>&lt;P&gt;I'll be giving the following presentation at &lt;A href="http://www.devteach.com/" target=_blank&gt;DevTeach 2007&lt;/A&gt; in Montreal, Canada.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=83</link><pubDate>3/9/2007</pubDate></item><item><title>Chasing the Silver Bullet - SOA Myths and Opportunities</title><description>&lt;P&gt;I'll be giving the following presentation at &lt;A href="http://www.devteach.com/" target=_blank&gt;DevTeach 2007&lt;/A&gt; in Montreal, Canada.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=84</link><pubDate>3/9/2007</pubDate></item><item><title>Creating Custom WCF Behaviors</title><description>&lt;P&gt;I'll be giving the following presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2007/sf/default.aspx" target=_blank&gt;VS Live! San Francisco&lt;/A&gt;&amp;nbsp;on March 28, 2007.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=85</link><pubDate>3/9/2007</pubDate></item><item><title>Are We Being Unrealistic?</title><description>&lt;P&gt;I’ve consulted for a number of organizations in several industries over the years and I keep seeing the same things. The issues are pretty well known and catalogued in a couple of Steve McConnell’s books (re: &lt;A href="http://www.stevemcconnell.com/rd.htm" target=_blank&gt;Rapid Development, Taming Wild Software Schedules&lt;/A&gt;, check out the chapter on &lt;A href="http://www.stevemcconnell.com/rdenum.htm" target=_blank&gt;Classic Mistakes&lt;/A&gt;; and &lt;A href="http://www.stevemcconnell.com/sg.htm" target=_blank&gt;Software Project Survival Guide, How to be Sure Your First Important Project Isn’t Your Last&lt;/A&gt;), so I won’t bother covering that ground again. Anyway, I was heavily influenced both by these writings and also by my schooling in computer science, and I developed an unshakeable belief that there was a “right way” to conduct software projects. This was further supported by my good fortune in occasionally finding my way on to teams where such principles were put into practice. I saw that this stuff actually did work, and both the developer teams and business customers were happier with the results. Regardless, time and again, I continued to witness organizations that kept making the same mistakes in software projects and have seemd to accept that this was just the way it was. Still, I held on to the belief that if I could just show the involved parties that there was a better way, then business-as-usual could change in a revolutionary way within those organizations. In recent times, however, I’ve come to think that maybe we technologists have been unrealistic all along.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=86</link><pubDate>3/1/2007</pubDate></item><item><title>Implementing SOA Design Patterns with .NET</title><description>&lt;P&gt;I'll be giving this presentation at the &lt;A href="http://beantowndotnet.org/" target=_blank&gt;BeanTown.Net&lt;/A&gt; User Group Meeting on February 1, 2007.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=80</link><pubDate>1/14/2007</pubDate></item><item><title>The Command Queue Pattern</title><description>&lt;P&gt;This is the second article in a two part series; the first&amp;nbsp;was &lt;A href="/default.aspx?pid=74" target=_blank&gt;Using Generics to Enable the Data Director Pattern&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;Context:&lt;BR&gt;&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;You decide to use the &lt;EM&gt;Data Director Pattern&lt;/EM&gt; in order to decouple the data model from the domain model (i.e. business objects), and also because you want to achieve a highly structured and consistent way to organize the mapping logic for all database &lt;A href="http://en.wikipedia.org/wiki/CRUD_(acronym)" target=_blank&gt;CRUD&lt;/A&gt; operations associated with individual business objects. 
&lt;LI&gt;You need to execute a set of data operations as one transaction (i.e. all of the data operations must complete successfully or they should all be rolled back). 
&lt;LI&gt;You would like the flexibility to easily swap in or out the data operations that should be executed within this transaction. 
&lt;LI&gt;You would like to eliminate all of the repetitive and tedious&amp;nbsp;&lt;A href="http://msdn2.microsoft.com/en-us/library/e80y5yhx(vs.80).aspx" target=_blank&gt;ADO.Net&lt;/A&gt; coding that we typically need to do when performing CRUD operations (i.e. creating connections, transactions, commands, executing queries, and committing or rolling back transactions). You would also like to simplify the manner in which parameters are mapped to and from properties on domain objects. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This article will present a pattern that allows you to queue up a set of &lt;A href="/Default.aspx?pid=22" target=_blank&gt;Data Mappers&lt;/A&gt; so that you may execute them as a unit&amp;nbsp;which must complete in its entirety. It is called the “Command Queue” pattern because Data Mapper operations also function as &lt;A href="http://en.wikipedia.org/wiki/Command_pattern" target=_blank&gt;Commands&lt;/A&gt; which may be added to a queue so that they may be executed sequentially. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=79</link><pubDate>1/14/2007</pubDate></item><item><title>Using Generics to Enable the Data Director Pattern</title><description>&lt;P&gt;Context:&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;You decide to use the &lt;A href="/Default.aspx?pid=22" target=_blank&gt;Data Mapper&lt;/A&gt; pattern because you’d like to decouple the data model from the domain model (i.e. business objects). &lt;BR&gt;
&lt;LI&gt;You decide not to use code generation for Object-Relational Mapping because you want more flexibility in the ways you work with domain objects. For example, you might want to flexibly build object hierarchies, or you might want to merge or split business object fields and and database columns. You might also&amp;nbsp;use &lt;A href="http://en.wikipedia.org/wiki/Continuous_integration" target=_blank&gt;continuous integration&lt;/A&gt; techniques to build&amp;nbsp;or check the validity of&amp;nbsp;your calls to stored procedures.&amp;nbsp;&amp;nbsp;&lt;BR&gt;
&lt;LI&gt;You decide not to use the reflective approach for Object-Relational Mapping because you want a higher degree of run-time performance.&lt;BR&gt;
&lt;LI&gt;You decide you’d rather not use a vendor product so that you may avoid &lt;A href="http://en.wikipedia.org/wiki/Vendor_lock-in" target=_blank&gt;vendor lock-in&lt;/A&gt;. &lt;BR&gt;
&lt;LI&gt;You want to minimize the amount of code required to map data from business objects to stored procedures and vice versa. &lt;BR&gt;
&lt;LI&gt;You want to achieve a highly structured and consistent way to organize the mapping logic for all database &lt;A href="http://en.wikipedia.org/wiki/CRUD_(acronym)" target=_blank&gt;CRUD &lt;/A&gt;operations for individual business objects or for lists of the same.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;BR&gt;This article will discuss a simple pattern that leverages the power of &lt;A href="http://msdn2.microsoft.com/en-us/library/512aeb7t.aspx" target=_blank&gt;Generics &lt;/A&gt;to achieve these ends.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=74</link><pubDate>1/14/2007</pubDate></item><item><title>The End is Near, So Start Planning</title><description>&lt;P&gt;So you're thinking about migrating to &lt;A href="http://msdn2.microsoft.com/en-us/netframework/default.aspx" target=_blank&gt;.Net 2.0&lt;/A&gt; or .&lt;A href="http://www.netfx3.com/" target=_blank&gt;Net 3.0&lt;/A&gt;? Have you thought about the future and how long Microsoft will support these frameworks? Architects need to think of these things because vendors never support their products forever ... that's a fact of life. It's in&amp;nbsp;the vendor's&amp;nbsp;interest to keep developing new things, and when they do&amp;nbsp;launch&amp;nbsp;a successor to something that you have&amp;nbsp;"bet the farm on", you can be sure they'll do everything in their power to convince you that&amp;nbsp;you really must move to that product or you'll be missing out on &lt;A href="http://en.wikipedia.org/wiki/The_Answer_to_Life,_the_Universe,_and_Everything" target=_blank&gt;the answer to life, the universe, and everything&lt;/A&gt;. Of course, they seem to forget that the prior version of that same&amp;nbsp;product was also "the answer", and they never seem to really understand the amount of effort we need to go through to adopt a technology. "Just run&amp;nbsp;your current software application&amp;nbsp;through our simple conversion doo-hickey-thing", they say, ", and everything will port without a hitch". I've never seen things go as smoothly as they suggest it should (I hope my friends in Redmond are listening ... wink). Anyway, now that I've vented a little bit, here are the dates on which mainstream support for the .Net frameworks will end. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=78</link><pubDate>1/7/2007</pubDate></item><item><title>What Does it Mean to be a Software Architect? - Part III</title><description>&lt;P&gt;Some people equate software architecture with the detailed design of things like services, classes,&amp;nbsp;database tables, and so forth. In practice, software architecture actually encompasses much more, and the role of the architect oftentimes involves aspects of other competencies. Unfortunately, for organizations that are unfamiliar with the function of architecture, problems can arise when the architect’s daily work leads them to become involved in functions that are traditionally performed by project managers, business analysts, and developers. This article takes an in depth look at some of the things architects do, where problems can arise between architects and other groups within an organization, and ways that the architect can become effective in their role. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=75</link><pubDate>1/7/2007</pubDate></item><item><title>Logical vs. Physical Design</title><description>&lt;P&gt;From my earliest memories of programming, I was taught that we should do some level of design before coding. Somewhere along the way I started hearing the phrases &lt;EM&gt;logical design&lt;/EM&gt; and &lt;EM&gt;physical design&lt;/EM&gt;, but when I asked people what the difference was between the two, I seldom got an answer that satisfied me.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=77</link><pubDate>12/20/2006</pubDate></item><item><title>Pay Now or Pay Later: The Value of Architecture</title><description>&lt;P&gt;Some believe that the act of architecting is a luxury. I’ve even seen some try to position architecture activities to be "off the &lt;A href="http://en.wikipedia.org/wiki/Critical_path" target=_blank&gt;critical path&lt;/A&gt;" of a project. I find these positions to be not only interesting and amusing but also naïve. The builders of the &lt;A href="http://en.wikipedia.org/wiki/Great_Pyramids" target=_blank&gt;Great Pyramids&lt;/A&gt;, the &lt;A href="http://en.wikipedia.org/wiki/Taj_mahal" target=_blank&gt;Taj Mahal&lt;/A&gt;, the &lt;A href="http://en.wikipedia.org/wiki/Brooklyn_bridge" target=_blank&gt;Brooklyn Bridge&lt;/A&gt;, and other notable works of engineering clearly understood the value of architectural processes, while the people behind the &lt;A href="http://en.wikipedia.org/wiki/Leaning_tower_of_pisa" target=_blank&gt;Leaning Tower of Pisa&lt;/A&gt; obviously didn’t. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=76</link><pubDate>12/9/2006</pubDate></item><item><title>Software Architect</title><description>&lt;P&gt;Web sites that discuss the role of the &lt;I&gt;Software Architect&lt;/I&gt; ... &lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.bredemeyer.com/" target=_blank&gt;Bredemeyer.com - Resources for Software Architects&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.bredemeyer.com/Architect/RoleOfTheArchitect.htm" target=_blank&gt;Bredemeyer.com - Architect Role and Skills&lt;/A&gt; 

&lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.cutter.com/offers/greatarchitect.html" target=_blank&gt;What It Takes to Be a Great Enterprise Architect&lt;/A&gt; 

&lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.softwarearchitectures.com/one/Discipline/default.aspx" target=_blank&gt;SoftwareArchitecture.com - Software Architecture Discipline&lt;/A&gt; 

&lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.wwisa.org/wwisamain/role.htm" target=_blank&gt;Worldwide Institute of Software Architects - Role of Software Architect&lt;/A&gt; &lt;BR&gt;&lt;BR&gt;&lt;A href="http://www.wwisa.org/wwisamain/index.htm" target=_blank&gt;Worldwide Institute of Software Architecture&lt;/A&gt; &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=8</link><pubDate>12/2/2006</pubDate></item><item><title>Software Architecture</title><description>&lt;P&gt;W</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=9</link><pubDate>12/2/2006</pubDate></item><item><title>Looking at Coupling Using the "Old Definition"</title><description>&lt;P&gt;Proponents of Service Oriented Architectures (SOA) oftentimes argue that one of its primary benefits is loose coupling. Some contend that services are inherently loosely coupled, and therefore make it easier than ever before to build complex applications by simply integrating their functions into a cohesive whole in order to achieve some larger objective. The skeptic in me recalls similar promises made in the past, so I have to ask will the mere adoption of such an architectural approach guarantee loose coupling? This article will explore the concept of coupling within the context of services&amp;nbsp;by referring to an older definition of the term.&amp;nbsp;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=38</link><pubDate>9/9/2006</pubDate></item><item><title>Implementing SOA Design Patterns with .NET</title><description>&lt;P&gt;I'll be giving this presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2006/boston/default.aspx" target=_blank&gt;VS Live! Boston&lt;/A&gt; on October 25, 2006, and at &lt;A href="http://www.ftponline.com/conferences/vslive/2006/dallas/agenda.aspx" target=_blank&gt;VS Live! Dallas&lt;/A&gt; on November 15, 2006.&lt;BR&gt;&lt;BR&gt;&lt;EM&gt;Service-Orientation&lt;/EM&gt; offers the promise of greater interoperability and ease of integration, but in order to realize its benefits we must evolve the way we architect solutions.&amp;nbsp; While many of the lessons learned from &lt;EM&gt;Distributed Object-Oriented Architectures&lt;/EM&gt; can be leveraged, much of what we did “back in the day” will not help us to achieve the goals of SOA. In fact, many of the old ways have become Anti-Patterns. Join us in this session to learn how the .Net platform and Microsoft’s new “&lt;EM&gt;Web Service Software Factory&lt;/EM&gt;” can be leveraged to rapidly deliver versioned, interoperable, extensible, and easy-to-maintain web services. All concepts will be presented with an eye towards the &lt;EM&gt;Windows Communication Foundation&lt;/EM&gt; (a.k.a. Indigo). &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=63</link><pubDate>8/29/2006</pubDate></item><item><title>Must All Technology Recommendations Provide Tangible and Quantifiable Business Value?</title><description>&lt;P&gt;This is not a trick question; rather, it is a question that all architects will continuously be challenged by. Business leaders and developers constantly ask us to prove the value for our recommendations. On the other hand, architects might wonder why their constituents can't simply accept their advice because, to them, the reasons to follow through on their suggestions seem so obvious.&amp;nbsp; Unfortunately for the architect, there are many suggestions that are very difficult to tie to predictable outcomes. Usually the people who challenge us want to know how some technology or technique will increase productivity and revenue, or perhaps decrease costs. It's totally within their rights to ask, but can we always honestly defend our positions with solid data or a rationale that others can relate to? The truth is that there are many times when we can not, yet we know (or more accurately believe) that, should the skeptical accept our counsel, they will reap the benefits in the future. So how does one go about helping the naysayer understand the sometimes intangible, hard to quantify, or hard to express benefits of our technology and process recommendations? &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=67</link><pubDate>8/16/2006</pubDate></item><item><title>Buy, Borrow, or Build</title><description>&lt;P&gt;When planning for the architecture of a new system, many of us miss the opportunity to take advantage of one of the best forms of software reuse. This reuse can be realized when we integrate into our solutions products that can be purchased from 3rd parties or licensed from open-source communities. Instead, we oftentimes want to design every minute aspect of the system and build it ourselves. This oversight has its roots in several misconceptions including ideas like:&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;"We can do it better; if we didn't design and write it ourselves, then it must be inferior" (a.k.a. the "&lt;A href="http://en.wikipedia.org/wiki/Not_Invented_Here" target=_blank&gt;Not Invented Here Syndrome&lt;/A&gt;")&lt;BR&gt;&lt;BR&gt;&amp;nbsp;...&amp;nbsp;&amp;nbsp;and...&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;"Our requirements are so unique, no product could possibly fit our needs" &lt;BR&gt;&lt;BR&gt;At other times we may be guilty of seeking to promote our own agendas, building monuments to our egos, or simply not considering that there are options other than building something from the ground up. These mistaken views oftentimes result in "&lt;A href="http://en.wikipedia.org/wiki/Reinventing_the_wheel" target=_blank&gt;reinventing the wheel&lt;/A&gt;". &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=66</link><pubDate>7/26/2006</pubDate></item><item><title>Anatomy of a Real Live ASP.Net 2.0 Web Site</title><description>&lt;P&gt;I'll be giving this presentation at &lt;A href="http://www.ftponline.com/conferences/vslive/2006/boston/default.aspx" target=_blank&gt;VS Live! Boston&lt;/A&gt; on October 26, 2006, and at &lt;A href="http://www.ftponline.com/conferences/vslive/2006/dallas/agenda.aspx" target=_blank&gt;VS Live! Dallas&lt;/A&gt; on November 16, 2006.&lt;BR&gt;&lt;BR&gt;If you're a developer, you probably like to take things apart to see how they work. There's no better way to learn languages and concepts than to see these things in a real product, but how often does one get that opportunity? In this session you'll see how a real Web site was developed using .Net 2.0 and Visual Studio 2005. We'll cover a broad range of topics, from how various .Net components and classes are used, to the architecture and design patterns used. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=64</link><pubDate>7/25/2006</pubDate></item><item><title>Technical Resumes from a Hiring Manager’s Point of View</title><description>&lt;P&gt;I get swamped with resumes from people looking for a job … totally and utterly swamped! If I were to print out just the short list of resumes screened by our Human Resources department for the basic buzzwords, that stack of paper would easily reach a few feet tall. So what can a smart, ambitious, and talented individual like you do to stand out from the crowd? 
&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=65</link><pubDate>7/23/2006</pubDate></item><item><title>What Does it Mean to be a Software Architect? – Part II</title><description>&lt;P&gt;In this installment I’ll attempt to identify what I think are the primary concepts that all architects should have some familiarity with. There are, of course, countless topics in the field of software architecture, but I believe that these are the foundational concepts we should all become acquainted with ...&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=19</link><pubDate>7/22/2006</pubDate></item><item><title>The Passage from Developer to Architect</title><description>&lt;P&gt;Those who have been software developers for any length of time are probably familiar with the fabled crossroads where we must choose between a managerial path and a technical one. There is yet another crossroads we might encounter. When we are asked to play the role of architect, we must choose whether or not we will act as a "pure architect" who focuses on the world of abstract ideas, or if we will also continue to code (i.e. become a developer/architect). The compulsion to pitch in and help with the programming effort can indeed be strong. Most developers who want to be architects or think of themselves as such probably love coding, as do I, and leaving your love is hard. But if your goal is to become a professional architect, especially the &lt;A href="/default.aspx?pid=53"&gt;enterprise species&lt;/A&gt; of architect, then you might have to consider leaving your beloved behind, at least in the workplace. &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=60</link><pubDate>6/29/2006</pubDate></item><item><title>Architectural Decisions and Their Consequences - Part II</title><description>&lt;P&gt;In the &lt;A href="/default.aspx?pid=58"&gt;last article &lt;/A&gt;on this topic, I identified a number of characteristics or attributes that we might want our systems to possess. I suggested that empirical data has shown that we can not achieve all goals equally within a given project, and&amp;nbsp;that when we are considering the degree to which we choose to optimize for a given goal, we&amp;nbsp;should also consider the impact the corresponding efforts would have upon the project’s schedule, cost, and complexity of the resulting solution. I also hinted that some goals actually compete against each other and may be difficult to achieve in unison. This article explores the&amp;nbsp;impact that architectural goals have upon each other.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=59</link><pubDate>6/3/2006</pubDate></item><item><title>Architectural Decisions and Their Consequences</title><description>&lt;P&gt;Our customers continually challenge us to design and produce systems that are characterized by a plethora of adjectives. We’ve all heard the wish-list so many times, "We need a system that is agile, scalable, highly available, secure ..." and so forth. While our hearts are certainly in the right place in our efforts to achieve such things for our customers, oftentimes we can be somewhat naïve concerning our own abilities to attain all goals equally on a given project. The truth is that we can’t have it all, and as architects we must carefully weigh the trade-offs and consequences of choosing to optimize for a given goal. It then follows that the difficulty of evaluating the consequences of our design decisions will only compound as the number of goals increase.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=58</link><pubDate>6/3/2006</pubDate></item><item><title>Becoming an Architect on ARCast</title><description>&lt;p&gt;I recently had the pleasure of meeting &lt;A href="http://www.ronjacobs.com/" target=_blank&gt;Ron Jacobs&lt;/A&gt; at the &lt;EM&gt;Microsoft U.S. National Architect Forum&lt;/EM&gt; held in April 2006. Ron was extremely gracious with his time, and spent several hours sharing his thoughts with me on all things related to architecture and the emerging role of the Architect. As it so happened, he was also conducting interviews for his wonderful &lt;A href="http://channel9.msdn.com/Shows/ARCast_with_Ron_Jacobs" target=_blank&gt;ARCast&lt;/A&gt; series. I was quite honored when Ron invited me to relate my perspective with his audience ...&lt;BR&gt;&lt;BR&gt;&lt;STRONG&gt;Podcast Summary&lt;/STRONG&gt; &lt;BR&gt;What is an architect? What do they do? What kind of skills do I need to become an architect? These are the questions that are on the minds of so many developers today. Perhaps you have thought about becoming an architect and you want to know these answers. Well my friend, you are in luck because today we have Robert Daigneau Director of Platform Architecture for &lt;A href="http://www.monster.com/" target=_blank&gt;Monster.com &lt;/A&gt;here with us to find out if you have what it takes.&lt;BR&gt;&lt;BR&gt;You can download this podcast in &lt;A href="http://channel9.msdn.com/Podcasts/195719_ARCast04202006-BecomingAnArchitect.wma" target=_blank&gt;wma &lt;/A&gt;or &lt;A href="http://channel9.msdn.com//Podcasts/195719_ARCast04202006-BecomingAnArchitect.mp3" target=_blank&gt;mp3&lt;/A&gt; formats.&lt;/p&gt; </description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=57</link><pubDate>5/22/2006</pubDate></item><item><title>The Scoop on OOP in 90 minutes</title><description>&lt;P&gt;I'll be giving a presentation on OOP fundamentals at the &lt;A href="http://www.dotnetlearn.com/" target=_blank&gt;.Net Learning Group&lt;/A&gt; on Monday, May 15 at 7pm at the &lt;A href="http://www.microsoft.com/mscorp/info/usaoffices/newengland/waltham.mspx" target=_blank&gt;Microsoft facilities in Waltham, Massachusetts&lt;/A&gt;.&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=56</link><pubDate>5/13/2006</pubDate></item><item><title>The Scoop on OOP in 90 Minutes</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="CodeSamples/TheScoopOnOOPDemoCode.zip"&gt;Demo Code&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;The .Net framework offers significant benefits in terms of performance, productivity, and ease of maintenance, but the cost of admission to the party is a basic understanding of Object-Oriented Programming. This session will provide you the fast-path to OOP you've been seeking. You'll see that everyone can do OOP.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/TheScoopOnOOPin90Minutes.pdf</link><pubDate>5/13/2006</pubDate></item><item><title>Anti-Patterns in Software Projects … The Human Factor</title><description>&lt;P&gt;The creation of software products is a highly complex endeavor. Technology and programming are the easy part. The hard part is the human factor, the ingredient which ultimately has the greatest influence upon the success of any software project. Join us in this session to see how we can be our own worst enemies, and even subvert the benefits that we should be realizing from methodologies like Agile.&lt;BR&gt;&lt;BR&gt;The talk will be given at &lt;A href="http://blogs.msdn.com/trobbins/archive/2006/03/08/546180.aspx" target=_blank&gt;Code Camp 5: Code Frenzy!&lt;/A&gt; &lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=48</link><pubDate>5/6/2006</pubDate></item><item><title>Is SOA Our Savior?</title><description>&lt;P&gt;Have you heard? An end is coming to&amp;nbsp;the suffering, wailing, and gnashing of teeth. No longer will businesses&amp;nbsp;be disappointed by&amp;nbsp;the speed at which software solutions are delivered, because there is an answer that will enable greater business agility. No more will we create the same solution over and over again, because there is a path that ensures re-use. Never again need we be concerned about the availability of some remote software function, for such worries are a thing of the past ... if we just believe! And if you believe&amp;nbsp;such promises&amp;nbsp;attributed to&amp;nbsp;&lt;EM&gt;Service-Oriented Architecture&lt;/EM&gt; (SOA), then I've got a deal on bridge in Brooklyn&amp;nbsp;for you!&amp;nbsp;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=54</link><pubDate>5/2/2006</pubDate></item><item><title>The Many Species of Architects</title><description>&lt;p&gt;
One of the reasons why there is so much disagreement over the definition of the word &lt;i&gt;Architect&lt;/i&gt; is that those engaged in the debate seem to be reaching for one comprehensive definition for this professional label. The reality is that there are many species or types of architects, each with different concerns and responsibilities.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=53</link><pubDate>4/20/2006</pubDate></item><item><title>Code Camp 5: Code Frenzy</title><description>&lt;p&gt;
May 6/7, 2006&lt;br/&gt;
Microsoft New England District Office&lt;br/&gt;
201 Jones Road&lt;br/&gt;
Waltham, Ma&lt;br/&gt;&lt;br/&gt;
Are you a developer interested in improving your .NET skills? Then this is the event to attend. Code Camp 5: Code Frenzy! promises to be both bigger and better than anything we have done before. This free two day seminar is designed as a series of intensive code related demos and technical sessions to guide the developer to the next skill level. The continuing goal of the Code Camps is to provide an intensive developer to developer learning experience that is fun and technically stimulating. The focus is on delivering programming information and sample code that can be used immediately. All training, slides, manuals and demo code is provided free!&lt;br/&gt;&lt;br/&gt;

This two day camp is hosted in our Waltham facility. The leading technical camp counselors from both Microsoft and the New England Developer Community will share their technical expertise and experiences. Each track starts with a “get the code” basics before advancing to more advanced topics.&lt;br/&gt;&lt;br/&gt; 

&lt;a href="http://www.thomscontent.com/codecamp5/" target=_blank&gt;Prelimary Session List&lt;/a&gt;&lt;br/&gt;&lt;br/&gt; 

&lt;a href="http://blogs.msdn.com/trobbins/commentrss.aspx?PostID=561007" target=_blank&gt;Rss Feed&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;


&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=47</link><pubDate>4/3/2006</pubDate></item><item><title>The Spirit of Code Reviews</title><description>&lt;p&gt;
For many, code reviews are a thing that are akin to a visit to the dentist. Some organizations focus on things that don’t necessarily translate into something that either has business value or helps the teams do what they do better. For example, undue attention is oftentimes paid to certain coding styles (e.g. where to declare instance fields, order of these declarations, naming of variables, and other minutia). &lt;b&gt;Every developer has a different style and needs to be creative&lt;/b&gt;, and while, within a given organization, we hope to achieve a similar "look and feel" to our code, &lt;b&gt;our goal shouldn’t be to make their code identical to what we would have produced ourselves&lt;/b&gt;. Attention to such matters probably isn’t the best use of everyone's time and won’t provide the "value add" that would justify the review itself.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=44</link><pubDate>3/22/2006</pubDate></item><item><title>Agile Methodologies</title><description>&lt;p&gt;
Agile is an umbrella for a number of concepts and approaches that may be used in software development. Here are few links you may find helpful ...&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.agilealliance.org:8080/home" target=_blank&gt;The Agile Alliance&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.extremeprogramming.org/" target=_blank&gt;Extreme Programming: A gentle introduction&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.extremeprogramming.org/rules.html" target=_blank&gt;The Rules and Practices of Extreme Programming&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.martinfowler.com/articles/newMethodology.html" target=_blank&gt;The New Methodology&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.agilemodeling.com/" target=_blank&gt;Agile Modeling&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://en.wikipedia.org/wiki/Agile_software_development" target=_blank&gt;Agile Software Development&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.controlchaos.com/" target=_blank&gt;Scrum&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.featuredrivendevelopment.com/" target=_blank&gt;Feature Driven Develpment&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.agiledata.org/essays/tdd.html" target=_blank&gt;Introduction to Test Driven Develpment&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.testdriven.com/modules/news/" target=_blank&gt;Test Driven Develpment&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.testdriven.net/" target=_blank&gt;TestDriven.Net - A tool for running unit tests within Visual Studio&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.poppendieck.com/" target=_blank&gt;Lean Software Development&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://msdn.microsoft.com/vstudio/teamsystem/msf/msfagile/" target=_blank&gt;Visual Studio 2005:MSF for Agile Software Development&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;


&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=45</link><pubDate>3/22/2006</pubDate></item><item><title>T-SQL Changes in SQL Server 2005</title><description>&lt;p&gt;
Little by little I'll be rolling out search functionality for this site using SQL Server's &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/acdata/ac_8_qd_15_3rqg.asp" target=_blank&gt;Full-text Search&lt;/a&gt;. I've still got a few kinks to work out, so you might get some wrong results, but at least you'll get them quickly :)  The one thing that annoyed me a little on this mini-project concerns some changes that have occurred in &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_tsqlcon_6lyk.asp" target=_blank&gt;T-SQL&lt;/a&gt;. Since my site is hosted by an ISP, I can't use SQL Server 2000's Enterprise Manager or &lt;a href="http://msdn2.microsoft.com/en-US/library/ms174173.aspx" target=_blank&gt;SQL Server 2005's Management Studio&lt;/a&gt; to create the various database objects required for full-text searches. Instead, I have to write T-SQL to accomplish these things; that should be no big deal, right? Well, yes and no.  
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=43</link><pubDate>3/20/2006</pubDate></item><item><title>Surviving in IT</title><description>&lt;p&gt;
Some of us make the effort to look at our own work critically and learn from the results. Others don’t assess their work with the same honesty, and subsequently history repeats itself. It’s sad that many within our ranks make their lives and the lives of their co-workers more difficult than it has to be because they don’t push themselves to keep growing. In the global marketplace such lethargy can be fatal to one’s career. Your motivation will likely have the greatest impact upon your longevity in our field. One must not only continue to grow their programming skills, one must also add value in ways that don’t involve software development. Those who remain focused solely on programming are at a greater risk of becoming commodities, and commodities can easily be provided from many different sources. 
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=41</link><pubDate>1/28/2006</pubDate></item><item><title>Patterns-Oriented Sites</title><description>&lt;p&gt;
Web sites that are pattern-oriented ...&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://hillside.net/patterns/" target="_blank" &gt;Hillside Patterns&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.cetus-links.org/oo_patterns.html" target="_blank" &gt;Cetus Links - Architecture &amp;amp; Design Patterns &lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html" target="_blank" &gt;Patterns and Software Essential Concepts and Terminology&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://msdn.microsoft.com/practices/" target="_blank"&gt;Microsoft Patterns and Practices Home&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.martinfowler.com/articles.html#id2251279" target="_blank"&gt;Martin Fowler: Enterprise Application Architecture&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.martinfowler.com/articles/enterprisePatterns.html" target="_blank"&gt;Martin Fowler: Patterns in Enterprise Software&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.enterpriseintegrationpatterns.com/
" target="_blank"&gt;Patterns and Best Practices for Enterprise Integration&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.patternshare.org" target="_blank"&gt;Patterns Share.Org&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.pnplive.com/" target="_blank"&gt;Microsoft Patterns and Practices Live!&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.gotdotnet.com/codegallery/codegallery.aspx?id=67f659f6-9457-4860-80ff-0535dffed5e6" target="_blank"&gt;Web Service Security: Scenarios, Patterns, and Implementation Guidance: Home&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.cmcrossroads.com/bradapp/docs/patterns-nutshell.html" target="_blank"&gt;Brad Appleton's Patterns in a Nutshell&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=2</link><pubDate>12/25/2005</pubDate></item><item><title>Some Can't See the Forest for the Trees</title><description>&lt;p&gt;
I recently took part in Microsoft’s launch event for Visual Studio 2005. &lt;a href="http://blogs.msdn.com/trobbins/" target=_blank&gt;Thom Robbins&lt;/a&gt;, a Microsoft Developer Evangelist in the Boston area, asked that I, along with a number of folks from the community, man the "Ask the Experts" lounge (Ok, hold down the uncontrollable laughter please ;) ... I appreciate the humorous juxtaposition of that word being used in the same proximity as a reference to myself). Anyway, upon registration for the event I was given a blue shirt with the word Microsoft emblazoned over the left breast pocket. Upon donning the uniform for the day I became keenly aware of how that symbol was akin to painting a large bulls-eye on my chest.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=39</link><pubDate>12/20/2005</pubDate></item><item><title>Remembering John Vlissides</title><description>&lt;p&gt;
&lt;a href="http://www.research.ibm.com/people/v/vlis/bio.html" target=_blank&gt;John Vlissides&lt;/a&gt; passed away on Thursday, November 24, 2005, after a lengthy illness. John may be best remembered as one of the &lt;a href="http://c2.com/cgi/wiki?GangOfFour" target=_blank&gt;Gang of Four&lt;/a&gt;. 
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=37</link><pubDate>12/12/2005</pubDate></item><item><title>Inversion of Control, Dependency Injection, and the Service Locator on Blah Blah Architecture</title><description>&lt;p&gt;I recently spoke with 
&lt;a href="http://www.mariocardinal.com/" target=_blank&gt;Mario Cardinal&lt;/a&gt;
, a Microsoft MVP (Solutions Architect), about the concept of &lt;i&gt;Inversion of Control&lt;/i&gt;. We discussed the &lt;i&gt;Dependency Injection&lt;/i&gt; and &lt;i&gt;Service Locator&lt;/i&gt; patterns at a high level within the context of a scenario where an Order object uses or is dependent upon a Shipper object.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=36</link><pubDate>12/7/2005</pubDate></item><item><title>User Interface Patterns</title><description>&lt;p&gt;
Web sites that present &lt;i&gt;User Interface Pattners&lt;/i&gt; ...&lt;br /&gt;&lt;br /&gt;
&lt;a href="http://www.visi.com/~snowfall/InteractionPatterns.html" target="_blank" &gt;The Interaction Design Patterns Home Page&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://www.cs.helsinki.fi/u/salaakso/patterns/" target="_blank" &gt;User Interface Design Patterns Introduction&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=3</link><pubDate>11/16/2005</pubDate></item><item><title>The Volatile State Management Facade</title><description>&lt;p&gt;
    Most people who develop web applications for .Net are familiar with 
    the various ways of managing temporary or volatile state. The primary .Net classes which address state management include 
the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpapplicationstatememberstopic.asp" target=_blank&gt;HttpApplicationState class&lt;/a&gt;, the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebsessionstatehttpsessionstatememberstopic.asp" target=_blank&gt;HttpSessionState class&lt;/a&gt;, the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpcookiecollectionmemberstopic.asp" target=_blank&gt;HttpCookieCollection&lt;/a&gt;, and the 
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebcachingcachememberstopic.asp" target=_blank&gt;Cache class&lt;/a&gt;. 

Unfortunately, when you have a Web application of a respectable 
size, and the code base is shared amongst team members, a number of 
thorny issues can manifest themselves when using any of these state 
management approaches ...
&lt;ul&gt;
&lt;li&gt;It can be difficult to enforce a consistent approach to getting or setting specific
    data for one or many applications.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;    
&lt;li&gt;You may need to duplicate the code which sets or gets this data. As this duplicated
        code proliferates, maintenance becomes more difficult. If, for example, you decide
       that you want to store some type of data in session state rather than in cookies,
    making those code changes across one or many applications can be a tedious endeavor
    that introduces new problems.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Subtle bugs may appear when some data entity is incorrectly stored in the wrong
    state variable because of incorrect or mistyped key names.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;    
&lt;li&gt;Developers have to write a significant amount of code in order to test for nulls
    when data is retrieved, they will probably have to
      cast data to the appropriate target data types over and over again, and they may want to set default values when
    data can't be found in the volatile state data store. If this type of code is duplicated
    across one or many applications, maintenance can become a nightmare.&lt;/li&gt;&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;It can be very challenging to quickly determine exactly what data is stored in volatile
      state.&lt;/li&gt;
&lt;/ul&gt;  
&lt;span class="textNormal"&gt;    
This article will present a design pattern that 
addresses all of these concerns.&lt;/span&gt;&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=34</link><pubDate>11/12/2005</pubDate></item><item><title>Improving Upon the XQuery Example Shown on Channel 9</title><description>
&lt;p&gt;
&lt;a href="http://sqljunkies.com/weblog/mrys/" target=_blank&gt;Michael Rys&lt;/a&gt;, a Program Manager for the SQL Server Engine team, recently contacted me about a
&lt;a href="http://channel9.msdn.com/Showpost.aspx?postid=125367" target=_blank&gt;webcast&lt;/a&gt; (also see 
&lt;a href="http://www.designpatternsfor.net/default.aspx?pid=23" target=_blank&gt;Using XQuery to Process a Batch of Inserts, Updates, and Deletes in a Stored Procedure&lt;/a&gt;
) I did on 
&lt;a href="http://www.w3.org/TR/xquery/" target=_blank&gt;XQuery&lt;/a&gt; for 
&lt;a href="http://channel9.msdn.com/" target=_blank&gt;Channel 9&lt;/a&gt;.
He cordially reminded me of a few issues which I either did not address (e.g. performance of Value() vs. Exist(), using XML or VarBinary data types for input parameters rather than TEXT, code page and encoding issues ), or was unaware of (e.g. potential data corruption attributable to code page and XML encoding). Thanks for the corrections Michael!!!&lt;br/&gt;&lt;br/&gt;
Here's a couple of related articles from Michael's site ...&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://sqljunkies.com/WebLog/mrys/archive/2005/10/10/17097.aspx" target=_blank&gt;Changes to the default encoding handling of XML when passing XML from the client to the server.&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://sqljunkies.com/WebLog/mrys/archive/2005/10/10/17098.aspx" target=_blank&gt;XML related changes to the September CTP&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
... and a few from the MSDN ...&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sql2k5xml.asp" target=_blank&gt;XML Support in Microsoft SQL Server 2005&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://msdn.microsoft.com/xml/buildingxml/xmlanddatabase/default.aspx?pull=/library/en-us/dnsql90/html/sqloptxml.asp" target=_blank&gt;Performance Optimizations for the XML Data Type in SQL Server 2005&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsql90/html/sql25xmlbp.asp" target=_blank&gt;XML Best Practices for Microsoft SQL Server 2005&lt;/a&gt;&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=33</link><pubDate>11/9/2005</pubDate></item><item><title>Top 10 Reasons Enterprise Architects Might Prefer Business Objects Over Datasets</title><description>&lt;p&gt;
Our western culture for some reason can't shake the concept of duality. That is, we are conditioned to believe that something is either good or bad, white or black, true or false. Eastern philosophies like Taoism do not assign such binary labeling as do we. In this article I will attempt to describe why I fall into the "Business Object" (aka Domain Object) camp, yet I'll remind you up front that nothing is all good or bad. There is room enough in this world for the &lt;i&gt;DataSet people&lt;/i&gt; and the &lt;i&gt;OOP people&lt;/i&gt;. The difference between us is largely in how we look at the world. When I look at a problem I think in terms of objects, while others might think of tables first. Suitability of a technology for a given purpose should be driven by the context of the situation. That being said, when I speak of &lt;i&gt;The Enterprise&lt;/i&gt; I'm referring to &lt;i&gt;Data Access Solutions&lt;/i&gt; whose scope cuts across a wide swath of a given company's applications and systems. Datasets can work quite well in departmental solutions because their needs are very different.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=30</link><pubDate>10/28/2005</pubDate></item><item><title>November 21 at the Visual Studio User's Group Montreal</title><description>&lt;p&gt;
I'll be presenting &lt;i&gt;Data Access Patterns for a SOA World&lt;/i&gt; at the 
&lt;a href="http://www.guvsm.net/Default.aspx?tabid=57" target=_blank&gt;Visual Studio User's Group Montreal&lt;/a&gt;. 
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=29</link><pubDate>10/28/2005</pubDate></item><item><title>The Hard Skills are the Soft Skills</title><description>&lt;p&gt;
I was recently asked what I considered to be the three most important characteristics 
of a good software architect. I had to think long and hard. 
"How can I possibly boil it down to three essential attributes?", I pondered. 
I recalled some of the things that I wrote about in the articles 
&lt;a href="http://www.designpatternsfor.net/default.aspx?pid=5" target=_blank&gt;
What Does it Mean to be a Software Architect? - Part I&lt;/a&gt; and 
&lt;a href="http://www.designpatternsfor.net/default.aspx?pid=19" target=_blank&gt;
What Does it Mean to be a Software Architect ? - Part II&lt;/a&gt;. Finally I reluctantly 
answered stating that I thought architects should have a good understanding of the business 
problem domain including its general strategies and tactics, the fundamentals of 
abstraction and modeling both business and technical concepts, and how to assess the 
trade-offs involved when recommending an approach. Later in the day, after having reflected 
upon the question at length, I realized that I had missed a critical category. Software Architects 
must also be adept at the &lt;i&gt;soft skills&lt;/i&gt; if they are to be effective in their position. Social 
skills are essential to success in this career path, and they are much harder for 
most of us techies to learn than are the &lt;i&gt;hard skills&lt;/i&gt; like producing well written software.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=25</link><pubDate>10/20/2005</pubDate></item><item><title>Are Code Comments an AntiPattern ?</title><description>&lt;p&gt;
Professors, books, managers, vendors, and colleagues have, since the beginning 
of our craft, urged us to comment our code. These recommendations still echo like 
a song that we can’t get out of our heads. Once upon a time when languages mandated 
brevity in the naming of variables and methods, and the tools were less capable, this 
advice was irrefutable. These days, however, perhaps comments are an Anti-Pattern?
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=24</link><pubDate>10/20/2005</pubDate></item><item><title>Using XQuery to Process a Batch of Inserts, Updates, and Deletes in a Stored Procedure</title><description>&lt;p&gt;
The link below is to an .avi that demonstrates how an XML document containing a batch of Inserts, Updates, and Deletes can be received and processed within a T-SQL stored procedure by using XQuery.&lt;br/&gt;&lt;br/&gt;
&lt;a href="http://www.designpatternsfor.net/demos/UsingXQueryToProcessABatchInAStoredProc.avi" target=_blank&gt;Using XQuery to Process a Batch&lt;/a&gt;
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=23</link><pubDate>10/9/2005</pubDate></item><item><title>How to Adapt a List of Domain Objects for Use In a Bound DataTable</title><description>&lt;p&gt;
Let's say that you have received an array of &lt;i&gt;Domain Objects&lt;/i&gt; (a.k.a. Business Objects) from a web service or other type of remote call. You would like to keep these domain objects as simple as possible, and would rather not extend their basic functionality. Maybe you can't change or extend them because they come from another company or are received from a non .Net platform. This article shows you how to adapt an array of domain objects for use by a  &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatadatasetclasstopic.asp" target=_blank&gt;DataSet&lt;/a&gt; so that you can leverage its easy-to-use data-binding capabilities, its ability to track Added, Modified, and Deleted Rows, and its other advanced features like search, sort, and filter. I'll also show you how to produce a &lt;a href="http://msdn2.microsoft.com/en-us/library/6sh2ey19" target="_blank"&gt;List&lt;/a&gt; of domain objects that represents the &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemdatadatarowclassrowstatetopic.asp" target=_blank&gt;&lt;i&gt;Added&lt;/i&gt;, &lt;i&gt;Modified&lt;/i&gt;, and &lt;i&gt;Deleted&lt;/i&gt;&lt;/a&gt; rows tracked by the DataSet's DataTables.
&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=21</link><pubDate>9/28/2005</pubDate></item><item><title>Data Access Patterns for a SOA World</title><description>&amp;nbsp;&amp;nbsp;&lt;a href="http://www.DesignPatternsFor.Net/CodeSamples/UsingTheTableAdapterToReturnDataTo.NetAndNon.NetClients.zip"&gt;Demo 1&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://www.DesignPatternsFor.Net/CodeSamples/WebServicesWithoutDatasets.zip"&gt;Demo 2&lt;/a&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;We all know and love the Dataset and the various data-oriented wizards that abound in Visual Studio. These items provide very powerful functions and facilitate the speed of development, but in their use are we being shortsighted? &lt;/p&gt;&lt;p&gt;In this session you’ll learn about data access patterns that will help you evolve your object and database models independently. We’ll also explore data-access oriented design patterns that contribute to superior application performance. &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Related Articles&lt;/strong&gt;&lt;br/&gt;&lt;a href="http://www.designpatternsfor.net/default.aspx?pid=21" &gt;How to Adapt a List of Domain Objects for Use In a Bound DataTable&lt;/a&gt;&lt;br/&gt;&lt;a href="http://www.designpatternsfor.net/default.aspx?pid=22" &gt;Behind the Data Mapper Pattern&lt;/a&gt;&lt;/P&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/DataAccessPatternsv2.pdf</link><pubDate>9/27/2005</pubDate></item><item><title>AntiPatterns, The Top 10 List</title><description>Design Patterns are in vogue these days, but unfortunately Anti-Patterns seem to prevail. Here's a light-hearted and satirical look at the common ways architects and developers shoot themselves in the foot.</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/Presentations/AntiPatternsTheTopTenList.pdf</link><pubDate>6/16/2005</pubDate></item><item><title>History of Patterns</title><description>&lt;p&gt;
Web sites that present a history of design patterns &lt;br/&gt;&lt;br/&gt;...
&lt;a href="http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html#History" target="_blank"&gt;A Bit of Patterns History&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;

&lt;a href="http://c2.com/cgi-bin/wiki?HistoryOfPatterns" target="_blank"&gt;A History of Patterns&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;

&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=7</link><pubDate>6/2/2005</pubDate></item><item><title>What Does it Mean to be a Software Architect? - Part I</title><description>&lt;p&gt;One of the goals of this site is to help you develop those skills that will enable you to play the role of a &lt;i&gt;software architect&lt;/i&gt;  on a project. In order to help you meet that goal, we should probably provide a definition for the word architect.&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=5</link><pubDate>6/2/2005</pubDate></item><item><title>A Short History of Design Patterns</title><description>&lt;p&gt;The idea of design patterns is not new. Ever since there were engineers, design patterns have existed. The architects of the great pyramids must have used design patterns to envision and eventually build one of the most durable testimonies to quality engineering.&lt;/p&gt;</description><link>HTTP://WWW.DESIGNPATTERNSFOR.NET/default.aspx?pid=1</link><pubDate>4/29/2005</pubDate></item></channel></rss>