<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Don Smith</title><link>http://blogs.msdn.com/donsmith/default.aspx</link><description>The message is king ... and the contract is queen</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>What's the deal between Devs and DBAs?</title><link>http://blogs.msdn.com/donsmith/archive/2009/07/01/what-s-the-deal-between-devs-and-dbas.aspx</link><pubDate>Wed, 01 Jul 2009 18:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9811656</guid><dc:creator>donsmith</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/9811656.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=9811656</wfw:commentRss><description>&lt;P&gt;As part of this Data Access Guidance project I'm workin on (which I'll blog more about soon), we're having a discussion with our advisors about the contention between the influence a Developer has on an enterprise solution and the influence a DBA has on the same solution. Because one of the deliverables of this project will be some written guidance, this seemed like a great opportunity to help each side identify with the other perspective so they both can have maximum impact on the solution. This will likely have a considerable effect on the architecture of the solution too. &lt;/P&gt;
&lt;P&gt;I've created a &lt;A title="wiki page" href="http://dataguidance.codeplex.com/Wiki/View.aspx?title=DevsAndDBAs&amp;amp;referringTitle=Home" mce_href="http://dataguidance.codeplex.com/Wiki/View.aspx?title=DevsAndDBAs&amp;amp;referringTitle=Home"&gt;wiki page&lt;/A&gt; on the project's CodePlex site so we can capture your experinece. Please pop over and drop us a line. We'll incorporate the comments into the draft over time. Thanks!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9811656" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/data+access/default.aspx">data access</category></item><item><title>EntLib is listening ... be heard now to influence the next rev</title><link>http://blogs.msdn.com/donsmith/archive/2009/03/30/entlib-is-listening-be-heard-now-to-influence-the-next-rev.aspx</link><pubDate>Mon, 30 Mar 2009 17:52:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9519783</guid><dc:creator>donsmith</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/9519783.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=9519783</wfw:commentRss><description>&lt;A title="Grigori Melnik" href="http://blogs.msdn.com/agile" mce_href="http://blogs.msdn.com/agile"&gt;Grigori&lt;/A&gt;, the PM for &lt;A title="Enterprise Library" href="http://entlib.codeplex.com/" mce_href="http://entlib.codeplex.com/"&gt;Enterprise Library&lt;/A&gt;, just posted version 5's tentative backlog stories and is giving you the chance to influence the priority of the stories. So don't waste anymore time here,&amp;nbsp;&lt;A title="EntLib story prioritization" href="http://blogs.msdn.com/agile/archive/2009/03/27/enterprise-library-5-0-tentative-product-backlog-published-story-feature-prioritization-is-open-your-participation-is-invited.aspx" mce_href="http://blogs.msdn.com/agile/archive/2009/03/27/enterprise-library-5-0-tentative-product-backlog-published-story-feature-prioritization-is-open-your-participation-is-invited.aspx"&gt;head over,&amp;nbsp;get more details, and be heard&lt;/A&gt;.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9519783" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/EntLib/default.aspx">EntLib</category></item><item><title>On the subject of Software Factories ... </title><link>http://blogs.msdn.com/donsmith/archive/2009/02/25/on-the-subject-of-software-factories.aspx</link><pubDate>Wed, 25 Feb 2009 18:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9444523</guid><dc:creator>donsmith</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/9444523.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=9444523</wfw:commentRss><description>&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;Overview&lt;/SPAN&gt; 
&lt;P&gt;As many of you know, the patterns &amp;amp; practices team has been involved in Software Factories for a number of years now. As a team who is responsible for a number of Factories and the technologies that many of them depend on (GAT/GAX), we are committed to the scenarios that benefit from their use. Okay, that was subtle, so let me repeat it for adequate emphasis. We are committed to the scenarios that have proven over time to benefit from the use of Factories. Now you'll probably hear these scenarios defined differently depending on who you hear them from, so this is what is sounds like coming from p&amp;amp;p: &lt;I&gt;Software Factories have shown to add the value of consistency, quality, predictability, and productivity when a team must build a specific type of application multiple times.&lt;/I&gt;&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;And?&lt;/SPAN&gt; 
&lt;P&gt;The point of this post is to communicate our commitment to these scenarios by way of the p&amp;amp;p roadmap for our Factories and the GAT/GAX technology. I'll share our roadmap for the near-term and let you know when you can expect us to refine this roadmap with more details and precision.&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;The Smart Client, Web Client, and Web Service Software Factories&lt;/SPAN&gt; 
&lt;P&gt;Today these factories are available, are being supported, and are adding value to many customers. We're not actively adding new features to them right now because we wanted to give the teams using them to use them and deploy real apps with them so we can get their feedback that will influence their next versions. And honestly, we really needed to address some other very pressing things (like SharePoint, Silverlight, and the Application Architecture Guide). It wouldn't be wise to consider these deliverables dead. We're continuing to invest in sustained engineering and we'll be updating each of them for Visual Studio 2010. Which segues into ...&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;Visual Studio 2010&lt;/SPAN&gt; 
&lt;P&gt;Some of you might remember we were a bit slow to get updated versions of these Factories out when VS2008 was released. We learned our lesson ;) From now until the VS2010 beta 2 timeframe, we'll use the time to get a sense of the work involved in updating GAT/GAX to the new development platform. Around the VS2010 beta 2 timeframe we'll begin the work of updating each of these factories to VS2010 so we can release updated versions of them within a month after VS2010 ships.&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;New Features&lt;/SPAN&gt; 
&lt;P&gt;With your help we have identified a number of useful features in the Web Client and Web Service Software Factories - thank you for all the feedback. We'll communicate our roadmap for these factories in the coming months. We are also planning to bring the Mobile Client Software Factory back to life (we deprecated it last year) and add new features to it. More on this later too.&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;Blueprints&lt;/SPAN&gt; 
&lt;P&gt;Many of you are aware of the Blueprints project that Microsoft's Developer &amp;amp; Platform Evangelism (DPE) team has been releasing for the past year. Today, the patters &amp;amp; practices team does not own and has never contributed to this technology. Sometime around the middle of the calendar year, we'll do a technical assessment of Blueprints as a candidate technology to use in the future. Obviously we'll have more on this later too.&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;How you can help&lt;/SPAN&gt; 
&lt;P&gt;Help us understand the most important scenarios for you. Right now we &lt;EM&gt;think&lt;/EM&gt; that includes:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The ability to create and unfold solution templates (multiple projects) in Visual Studio&lt;/LI&gt;
&lt;LI&gt;The ability to gather information from devs and architects in Visual Studio (via a wizard, DSL, etc.)&lt;/LI&gt;
&lt;LI&gt;The ability to invoke T4 templates and generate code&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;We also know there is a need for building/authoring these "factories", but we need specifics. We also need more details around the 3 high level features above.&lt;/P&gt;&lt;SPAN style="FONT-WEIGHT: bold; FONT-SIZE: medium"&gt;That's all for now&lt;/SPAN&gt; 
&lt;P&gt;There are a lot of teams in Microsoft that are extending Visual Studio to help you get the most of out of their products (WF, ADO.NET Entity Framework, ASP.NET, etc). It's going to be very interesting to see how all of this can come together to help you address the Software Factory scenarios. And even more interesting to see where patterns &amp;amp; practices can help make the experience even better. Expect us to refine this roadmap in August 2009 after we've made some assessments and received more of your feedback.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9444523" width="1" height="1"&gt;</description></item><item><title>Early Christmas: Sticky Notes</title><link>http://blogs.msdn.com/donsmith/archive/2008/12/22/early-christmas-sticky-notes.aspx</link><pubDate>Mon, 22 Dec 2008 22:04:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9248441</guid><dc:creator>donsmith</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/9248441.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=9248441</wfw:commentRss><description>&lt;p&gt;My good friend &lt;a href="http://www.clariusconsulting.net/blogs/pga/"&gt;Pablo Galiano&lt;/a&gt; just let me know that &lt;a href="http://stickynotes4code.com"&gt;Sticky Notes&lt;/a&gt; is ready for primetime. WooHoo! It’s not my decision, but I’m going to try to talk &lt;a href="http://blogs.msdn.com/mpuleio/"&gt;Mike&lt;/a&gt; into letting us use it on the data access guidance project I’ll be talking more about real soon. Of course, even if Mike doesn’t want to use it, I can still use it for personal sticky notes since they aren’t checked into source control, unlike the team sticky notes which are. This image shows how I might do that. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/donsmith/WindowsLiveWriter/EarlyChristmasStickyNotes_C5DA/sticky_2.png"&gt;&lt;img title="sticky" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="404" alt="sticky" src="http://blogs.msdn.com/blogfiles/donsmith/WindowsLiveWriter/EarlyChristmasStickyNotes_C5DA/sticky_thumb.png" width="634" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Pablo was a dev on all versions of the &lt;a href="http://msdn.com/servicefactory"&gt;Service Factory&lt;/a&gt; and has done a ton of work for us in p&amp;amp;p. In addition to being a great human being, he walks on water when it comes to Visual Studio extensibility. Which is just one of the reasons you owe it to yourself to check out Sticky Notes. &lt;a href="http://stickynotes4code.com/Videos/Video01.wmv"&gt;This video&lt;/a&gt; is where I started. Have fun and happy holidays. Thanks Pablo!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9248441" width="1" height="1"&gt;</description></item><item><title>A Data Access Discussion at the Summit</title><link>http://blogs.msdn.com/donsmith/archive/2008/11/06/a-data-access-discussion-at-the-summit.aspx</link><pubDate>Thu, 06 Nov 2008 08:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9047900</guid><dc:creator>donsmith</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/9047900.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=9047900</wfw:commentRss><description>&lt;P&gt;I&amp;nbsp;spoke this morning at the &lt;A class="" href="http://pnpsummit.com/" mce_href="http://pnpsummit.com"&gt;patterns &amp;amp; practices Summit&lt;/A&gt; about data access. As I described this morning, I've mostly been working in the area of Web Services for the past number of years and didn't keep up too much with the advances in data access and UI development. I'm going to be kicking off &lt;A class="" href="http://codeplex.com/dataguidance" mce_href="http://codeplex.com/dataguidance"&gt;a p&amp;amp;p project&lt;/A&gt; in the coming weeks focusing squarely on your options for dealing with data in your .NET applications.&lt;/P&gt;
&lt;P&gt;As I've come to appreciate in many aspects of my life, once you get your head in the right place ...&amp;nbsp;you know, that place where everything is just resonating ... well, if you can get there, everything just seems to go smoother. So I wanted to share with everyone where my head was around data access, so they could help it get to the right place.&lt;/P&gt;
&lt;P&gt;The premise of the talk was a correlation I made between 2 core qualities we all have as software builders (creativity &amp;amp; resourcefulness) and 2 major forces that have influenced software construction for decades (more abstraction layers &amp;amp; separating concerns). In other words, you only have to look at 2 of our strengths to understand why we've choosen these approaches (zooming out &amp;amp; pulling apart) in order to address increasing complexity. &lt;/P&gt;
&lt;P&gt;When you look at the specific advances that are the result of our creativity and resourcefulness, you find Dependency Injection, Aspect Oriented Programming, Domain Driven Design, Test Driven Development, etc. It could just be my perspective, but it feels like Object Relational Mapping, Repositories, etc are lagging behind. I understand it's a difficult space to get right. So, that was my justification for being excited about the opportunity to make a difference in it.&lt;/P&gt;
&lt;P&gt;I enjoyed giving the talk. They were a great group&amp;nbsp;and it was a good discussion (and&amp;nbsp;it's still going). Hopefully, I was thought-provoking enough ...&amp;nbsp;but&amp;nbsp;even if they just sat there wondering how I get my hair to stick up like that ...&amp;nbsp;I guess that's okay too.&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9047900" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/pnpsummit2008/default.aspx">pnpsummit2008</category></item><item><title>On coupling and dependencies</title><link>http://blogs.msdn.com/donsmith/archive/2008/09/19/on-coupling-and-dependencies.aspx</link><pubDate>Fri, 19 Sep 2008 09:27:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8958484</guid><dc:creator>donsmith</dc:creator><slash:comments>15</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/8958484.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=8958484</wfw:commentRss><description>&lt;p&gt;For my whole software development career I’ve been focused on the enterprise app dev space. (I did try to join the Zune team at one point, but that’s the topic of another post ;) While some people baulk at the term “enterprise” it does actually carry certain connotations to many of us. This blog entry is an inquiry - a checkpoint if you will - into that space to see if things have changed recently.&lt;/p&gt;  &lt;p&gt;One of the things that has been consistent in almost all of the enterprise implementations I’ve written and seen customer write is the assurance that custom code be very separated from vendor technology. When you have millions of dollars invested in a [multi-year] solution, the last thing you want is for a vendor that you’ve taken a dependency on (yes, Microsoft is a vendor in this context) to change something that causes an unexpected investment in revisions.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Don, where are you going with this?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Well, I’m in the process of starting a guidance project that deals with data access – specifically, using the latest Microsoft data access technologies. Since the patterns &amp;amp; practices team focuses primary on enterprise scenarios, to me, this means “how to build the most appropriate data access layer (DAL) for your scenario.” &lt;em&gt;(as always, please correct me if I should think about this differently)&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;In preparation for this guidance project, I’m going through and trying to get smart about things like LINQ to SQL, the ADO.NET Entity Framework, and what it means to use them to build a DAL. In the process, it looks like the creators of these technologies expect the developers (you) to NOT isolate their code from vendor code (LINQ to SQL is integrated into the actual C# and VB.NET languages and EF expects you to use the entity classes directly from your business logic). &lt;/p&gt;  &lt;p&gt;So my question is … are you okay with this? In using LINQ to SQL and/or EF, are you okay with the dependencies you have to take in your DAL or are you jumping through hoops trying to avoid it?&lt;/p&gt;  &lt;p&gt;Of course I’m mostly asking to try to assess what you would expect from the guidance. Thanks for your help.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8958484" width="1" height="1"&gt;</description></item><item><title>Pair doc writing</title><link>http://blogs.msdn.com/donsmith/archive/2008/04/30/pair-doc-writing.aspx</link><pubDate>Wed, 30 Apr 2008 20:51:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8444909</guid><dc:creator>donsmith</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/8444909.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=8444909</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/donsmith/WindowsLiveWriter/Pairdocwriting_C2F0/Pair%20doc%20writing_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="Pair doc writing" src="http://blogs.msdn.com/blogfiles/donsmith/WindowsLiveWriter/Pairdocwriting_C2F0/Pair%20doc%20writing_thumb.jpg" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That's write folks! (haha) Just minutes ago I heard through the wall what I've come to recognize as &amp;quot;productivity in action&amp;quot; and I thought it might be valuable to capture and share with you. In this photograph we're witnessing a first hand account of a dev lead, Bob Brumfield (left), a product planner, Glenn Block (center), and a technical writer, Nelly Delgado (right) huddled around a monitor talking about the best way to structure the documentation on &lt;a href="http://codeplex.com/prism"&gt;Prism&lt;/a&gt;. I love seeing this level of teamwork and common purpose.&lt;/p&gt;  &lt;p&gt;But what I love about this picture is how it illustrates Nelly's complete mastery of her role as a tech writer (relaxed, in a director capacity, letting someone else do the manual stuff): getting the others to do some writing. Well, I guess she could be manifesting complete and utter frustration at Glenn's incessantly obstinate comportment ... nah. Go Team!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8444909" width="1" height="1"&gt;</description></item><item><title>WCF Security Guidance</title><link>http://blogs.msdn.com/donsmith/archive/2008/03/31/wcf-security-guidance.aspx</link><pubDate>Mon, 31 Mar 2008 21:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8346636</guid><dc:creator>donsmith</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/8346636.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=8346636</wfw:commentRss><description>&lt;P&gt;If you're looking for pragmatic guidace for securing your WCF services, look no further. The WCF Security project has been posting how-to documents and videos on its &lt;A class="" href="http://codeplex.com/wcfsecurity" mce_href="http://codeplex.com/wcfsecurity"&gt;community site&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;Now is the perfect time to give the team feedback. They aren't done yet and are completely willing, able, and even looking forward to apply your feedback so this can be the best resource on the 'net for WCF security questions.&lt;/P&gt;
&lt;P&gt;If you want more details about the project, check out &lt;A class="" href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx" mce_href="http://blogs.msdn.com/jmeier/archive/2008/03/27/patterns-and-practices-wcf-security-guidance-now-available.aspx"&gt;J.D.'s post&lt;/A&gt;&amp;nbsp;before you head over to &lt;A class="" href="http://codeplex.com/wcfsecurity" mce_href="http://codeplex.com/wcfsecurity"&gt;get&amp;nbsp;the goods&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8346636" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Web+Service+Security/default.aspx">Web Service Security</category></item><item><title>Using MessageContracts and DataContracts</title><link>http://blogs.msdn.com/donsmith/archive/2008/03/10/using-messagecontracts-and-datacontracts.aspx</link><pubDate>Tue, 11 Mar 2008 02:10:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8142209</guid><dc:creator>donsmith</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/8142209.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=8142209</wfw:commentRss><description>&lt;P&gt;Users of the &lt;A href="http://msdn.com/servicefactory" mce_href="http://msdn.com/servicefactory"&gt;Service Factory&lt;/A&gt; often ask about the rationale behind the required use of MessageContracts even though the use of MessageContracts aren't mandated by WCF. I've answered this question in other venues, but it seemed like a good thing to put here in case I need to point others to it in the future.&lt;/P&gt;
&lt;P&gt;If you ask the WCF product team when you should use a MessageContract versus a DataContract, their guidance usually revolves around the level of control you need over the message - like when you need to use custom SOAP headers*. You can find more detail in &lt;A href="http://msdn2.microsoft.com/en-us/library/ms730255.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/ms730255.aspx"&gt;this topic&lt;/A&gt; of the WCF documentation. Their guidance makes complete sense if you think about the motivation they had when building WCF: to unify all of the Microsoft communication mechanisms into a single approach that is relevant to all scenarios. This is great for someone who has traditionally only done object-oriented or component-oriented development. They can be successful without understanding the nuances of building Web services. &lt;/P&gt;
&lt;P&gt;In our experience one of the biggest hurdles for many developers who are new to Web services has been the concept of the &lt;STRONG&gt;message&lt;/STRONG&gt; - rather than just passing around types like they've always done. You can characterize this distinction as implicit versus explicit message design. We have a topic in the Service Factory documentation that touches on this distinction. I think there is some room for improvement on this topic, but you can find it &lt;A href="http://msdn2.microsoft.com/en-us/library/cc304802.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/cc304802.aspx"&gt;here&lt;/A&gt; nevertheless. &lt;/P&gt;
&lt;P&gt;However, the confusion over a message isn't the only reason we elevate the importance of the message and recommend these usage patterns. We intentionally draw a clear distinction between types (both primitive types like string, and complex types like Customer) and messages (like ProcessExpenseReportRequest). From our perspective, DataContracts represent types and types are reusable. Messages are not used as types but rather the payload a method operates on - and it is not reusable since they are specific to the operation they are passed to and from. This level of distinction provides architects and lead developers a means of achieving better consistency throughout their organization by being more prescriptive about reusability. &lt;/P&gt;
&lt;P&gt;I am aware that Juval's position is that MessageContracts are rarely needed. And, I hold Juval in the highest regard - I've not yet had an opportunity to learn what is motivating him to take this position. Some might argue that MessageContracts are just an additional (unnecessary) level of redirection. I can understand this point of view. We just feel the benefits greatly outweigh this nominal cost, and the feedback we've received from customers has been completely supportive of this approach. &lt;/P&gt;
&lt;P&gt;&lt;EM&gt;* In my opinion, there is only one reason you would need to create a custom SOAP header that isn't already defined by a standards body like WS-*. (hint: if it's already defined elsewhere, you should use it to ensure interoperability, instead of "rolling your own") And, that reason is if you need to pass around localization information (like "en-us"). I don't think this is covered by any WS-* or other spec.&lt;/EM&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8142209" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Service+Factory/default.aspx">Service Factory</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category></item><item><title>Pretty Impressive Management</title><link>http://blogs.msdn.com/donsmith/archive/2008/02/24/pretty-impressive-management.aspx</link><pubDate>Mon, 25 Feb 2008 05:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7888532</guid><dc:creator>donsmith</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/7888532.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=7888532</wfw:commentRss><description>&lt;P&gt;&lt;EM&gt;I was pretty impressed by something my manager did recently. I've shared it with a few other people, but I think this is noteworthy enough for a blog entry. My hopes are that other mangers will be equally impressed and carry out similar acts.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;My manager (we'll call him Shaun ... since that's his name) and I were talking about career development during one of our weekly one-on-ones about 8 months ago and I mentioned to him that I would really like to take on some direct reports and more responsibilities at the group-level (of patterns &amp;amp; practices). I've always enjoyed seeing people succeed and am ready for my job to allow me to have a more direct opportunity to influence that more. I've also been in p&amp;amp;p for almost 3 years now and feel I have a deep understanding of what we do and how we do it. &lt;/P&gt;
&lt;P&gt;I really shared this with him so he would know what I was thinking - not because I expected him to do anything about it. Actually, I didn't think he could do anything about it. You see, p&amp;amp;p is a small group - only about 30 full-time Microsoft employees. In other words, there is no way for me to move up and stay in p&amp;amp;p unless another manager slot opens up, which isn't likely, or Shaun leaves his position, which I also didn't think was likely. Shaun was basically the second employee of p&amp;amp;p - he and Mike Kropp founded the group.&lt;/P&gt;
&lt;P&gt;Of course Shaun also knew there wasn't anywhere for me to go if I wanted to stay in the group (which he knew I absolutely wanted to do). Imagine my surprise when I found out that it was around this time that he began looking for other opportunities outside of p&amp;amp;p. Fast forward to today. Shaun has found a very challenging role in another group in Microsoft and has named me acting* Senior Product Planner. After this week, I will be honored to have &lt;A href="http://blogs.msdn.com/gblock/" mce_href="http://blogs.msdn.com/gblock/"&gt;Glenn&lt;/A&gt;, and &lt;A href="http://blogs.msdn.com/agile/" mce_href="http://blogs.msdn.com/agile/"&gt;Grigori&lt;/A&gt; reporting to me and I'll have to hire my replacement (let me know if you're interested).&lt;/P&gt;
&lt;P&gt;When he told me that it was my desire to move up that caused him to reevaluate his situation, I was more than impressed. Yes, Shaun has been a fantastic manager (Glenn and Grigori agree) and it is this kind of act that speaks volumes about the kind of person and manager he is. I'm not so naive to think that my desires are the only thing that motivated him to move on, but knowing it was a factor is impressive enough. It's very different from the "yeah, I'll get to move up when Joey Stayput dies" situation we always hear about.&lt;/P&gt;
&lt;P&gt;Thank you Shaun. I have some great shoes to fill and I promise do my best.&lt;/P&gt;
&lt;P&gt;* Right now p&amp;amp;p doesn't have a leader. Once one is appointed (hopefully in the next 2 weeks) he will decide if I take on the role completely or if he would rather hire someone else into it. So until then, I'm just "acting".&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7888532" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category></item><item><title>Roger joins the fray ... w00t!</title><link>http://blogs.msdn.com/donsmith/archive/2008/02/13/roger-joins-the-fray-w00t.aspx</link><pubDate>Wed, 13 Feb 2008 17:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7678144</guid><dc:creator>donsmith</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/7678144.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=7678144</wfw:commentRss><description>&lt;P&gt;My good friend &lt;A class="" title="Roger Lamb" href="http://blogs.msdn.com/rogerla" mce_href="http://blogs.msdn.com/rogerla"&gt;Roger Lamb&lt;/A&gt; has just joined the blogsphere and I assure you that if you are interested in anything remotely related to Sharepoint, you'll want to subscribe now. Check out &lt;A class="" href="http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx" mce_href="http://blogs.msdn.com/rogerla/archive/2008/02/12/sharepoint-2007-and-wss-3-0-dispose-patterns-by-example.aspx"&gt;his first post&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;You see how I just did that? How I increased&amp;nbsp;your expectation, and thus, his commitment around his blog?&lt;/EM&gt; &lt;/P&gt;
&lt;P&gt;Isn't the blogsphere wonderful? haha&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Welcome to the chaos bro!&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7678144" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Rambling/default.aspx">Rambling</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Personal+Stuff/default.aspx">Personal Stuff</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category></item><item><title>Influence MSF guidance</title><link>http://blogs.msdn.com/donsmith/archive/2007/09/27/influence-msf-guidance.aspx</link><pubDate>Thu, 27 Sep 2007 16:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5170474</guid><dc:creator>donsmith</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/5170474.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=5170474</wfw:commentRss><description>My colleague, Andrew Delin, is making the process of developing software real for development teams. However, he doesn't want to do it in a vacuum. If you think you know anything about development processes, I'm sure he'd love to hear from you. &lt;A href="http://blogs.msdn.com/processblog/archive/2007/09/25/so-tell-us-what-you-think-about-the-msf-guidance.aspx"&gt;http://blogs.msdn.com/processblog/archive/2007/09/25/so-tell-us-what-you-think-about-the-msf-guidance.aspx&lt;/A&gt;. Thanks.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5170474" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category></item><item><title>Service Factory Customization Workshop </title><link>http://blogs.msdn.com/donsmith/archive/2007/07/16/service-factory-customization-workshop.aspx</link><pubDate>Mon, 16 Jul 2007 16:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3897737</guid><dc:creator>donsmith</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/3897737.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=3897737</wfw:commentRss><description>Microsoft Main Campus (Building 20)&lt;BR&gt;July 30th – Aug 1st 2007&lt;BR&gt;Redmond, WA&lt;BR&gt;&lt;BR&gt;
&lt;H2&gt;Description &lt;/H2&gt;Many software factories being built today use a number of different technologies, which include the Guidance Automation Extensions (GAX), the Domain Specific Language (DSL) Toolkit, Visual Studio extensibility components, and a few other additional utilities. This is definitely true for the Web Service Software Factory: Modeling Edition. Much of the feedback we’ve received about these technologies, with regard to building and modifying software factories, revolves around the difficulty of customizing them. More than 40% of all users of the Service Factory will change it in some way before using it to build Web services. Typically, this is done to specialize it for some additional requirement or customize it towards a specific customer domain (i.e. industry vertical). Requiring development teams to know these technologies at any technical depth, beyond what the factory itself provides, justifies any effort to make the customizations as easy as possible.&lt;BR&gt;&lt;BR&gt;This 3 day workshop will walk you through the comprehensive process of adding a new model (an entity model) to the Service Factory: Modeling Edition. You will become very familiar will all aspects of the factory infrastructure: DSL models, recipe automation, model validation, cross-model references, model views, project mapping, technology extenders, code generation, and factory deployment. Because the workshop will be hosted by the Service Factory team and other Software Factory experts, you will also have the opportunity to ask questions, and get a glimpse into the future of the software factory platform.&lt;BR&gt;&lt;BR&gt;
&lt;H2&gt;Purpose &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;Transfer knowledge from factory experts to attendees about building software factories on today’s technologies with insights on how these technologies are changing in the future. 
&lt;LI&gt;Transfer knowledge from the attendees to factory experts about the most important and common types of modifications necessary to build other software factories. 
&lt;LI&gt;Design hands-on exercises for others in the software factory community to learn from &lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;
&lt;H2&gt;Prerequisites &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;This should be considered an advanced workshop. It is highly recommended you have a working knowledge of GAX and the DSL toolkit. There will be some introductory content around the technologies, but there will be a heavy focus on writing C# source code. It is recommended you have reviewed the source code of the most recent Service Factory v3 pre-release (v3b87). 
&lt;LI&gt;You must bring a laptop and a VPC will be provided. If you can have Microsoft Virtual PC installed ahead of time, it will save you from having to install it after you arrive. This will prevent you from having any other system requirements on the machine. 
&lt;LI&gt;If you plan on attending, please have a number of changes you would like to make to the factory in mind. One of the main reasons we’re hosting this workshop is to be sure we understand what the most common and important customizations are (so we can make it as easy as possible). We will ask you to define your scenarios at some point while you are here. &lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;
&lt;H2&gt;Agenda &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;DSL modeling 
&lt;LI&gt;Recipe automation (GAX) 
&lt;LI&gt;Model validation 
&lt;LI&gt;Cross-model references 
&lt;LI&gt;Model views (tool windows) 
&lt;LI&gt;Implementation project mapping 
&lt;LI&gt;Technology extenders 
&lt;LI&gt;Code generation framework 
&lt;LI&gt;Factory deployment 
&lt;LI&gt;Factory futures &lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;
&lt;H2&gt;Cost &lt;/H2&gt;
&lt;UL&gt;
&lt;LI&gt;There is no registration fee for the workshop. 
&lt;LI&gt;Attendees are responsible for making and paying for their own travel to and from bldg 20 in Redmond, WA. 
&lt;LI&gt;Attendees are responsible for their lodging accommodations during the workshop. Suggestions can be provided after registering. 
&lt;LI&gt;Breakfast and lunch will be provided on all 3 days and a dinner event will be provided on Tuesday night (July 31st). &lt;/LI&gt;&lt;/UL&gt;&lt;BR&gt;
&lt;H2&gt;Registering &lt;/H2&gt;We apologize for the short notice, but please register by July 27th so we can ensure your ability to attend. Attendance is limited to 60 people so please RSVP by sending an email to &lt;A class=externalLink href="mailto:don.smith@microsoft.com"&gt;Don Smith&lt;SPAN class=externalLinkIcon&gt;&lt;/SPAN&gt;&lt;/A&gt; as soon as possible. In the email, please provide the following information about each attendee:&lt;BR&gt;
&lt;UL&gt;
&lt;LI&gt;Full name 
&lt;LI&gt;Company name 
&lt;LI&gt;Email address (required for internet access) 
&lt;LI&gt;If a vegetarian or high-protein lunch is required &lt;/LI&gt;&lt;/UL&gt;Please email Don if you have any questions.&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=3897737" width="1" height="1"&gt;</description></item><item><title>A time for reflection and assessment</title><link>http://blogs.msdn.com/donsmith/archive/2007/05/07/a-time-for-reflection-and-assessment.aspx</link><pubDate>Tue, 08 May 2007 06:15:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2475307</guid><dc:creator>donsmith</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/2475307.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=2475307</wfw:commentRss><description>&lt;P&gt;Wow, it's hard to believe it has been almost a&amp;nbsp;year since the patterns &amp;amp; practices team released&amp;nbsp;our first software factories.&amp;nbsp;Remember when the early customer previews were called Baseline Architecture Toolkits? Oh, the nostalgia :) We could have had so much fun with the BAT acronym ... haha.&lt;/P&gt;
&lt;P&gt;So that means now&amp;nbsp;is a perfect time to take a quick assessment on how we're doing so far ... that's right, a survey. &lt;STRONG&gt;Now hold on a second!&lt;/STRONG&gt; At least hear me out for the rest of the paragraph. I can't&amp;nbsp;devulge too much detail yet, but some team in Microsoft might be in the middle of building some serious software factory infrastructure for a future version of Visual Studio - that's right, much better than GAX and DSL tools. Do you want it to suck? Do you think software factories are just a pipe dream and would rather they build something else? If you're thinking, "Oh no Don, I like software factories, especially the Service Factory (okay, I'm embellishing - haha)," then I would ask you to keep reading. I promise we've tried to optimize the survey to allow you the highest level of impact in the least amount of time possible.&lt;/P&gt;
&lt;P&gt;Whew, you're still reading ... excellent! Okay, so you're only looking at 9 generic questions and 9 questions for each software factory you've evaluated/used. This survey covers the 4 factories released by p&amp;amp;p (&lt;A class="" title="Web Service Software Factory" href="http://msdn2.microsoft.com/en-us/library/aa480534.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/aa480534.aspx"&gt;web service&lt;/A&gt;, &lt;A class="" title="Smart Client Software Factory" href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/aa480482.aspx"&gt;smart client&lt;/A&gt;, &lt;A class="" title="Web Client Software Factory" href="http://msdn2.microsoft.com/en-us/library/bb264518.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/bb264518.aspx"&gt;web client&lt;/A&gt;, and &lt;A class="" title="Mobile Client Software Factory" href="http://msdn2.microsoft.com/en-us/library/aa480471.aspx" target=_blank mce_href="http://msdn2.microsoft.com/en-us/library/aa480471.aspx"&gt;mobile client&lt;/A&gt;). The first 8 questions will take no more than a minute or two. The 9 questions for each factory shouldn't take more than 10 minutes each and you will only see the questions for the factories you choose. The last question is an anything-else-you-want-to-share question - you can take as long as you want on it. That's it ... super quick-n-easy.&lt;/P&gt;
&lt;P&gt;Here is the URL you need to&amp;nbsp;take the survey: &lt;A href="http://www.zoomerang.com/survey.zgi?p=WEB2266YYVWSKP"&gt;http://www.zoomerang.com/survey.zgi?p=WEB2266YYVWSKP&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;We're really looking forward to your feedback so&amp;nbsp;we can help&amp;nbsp;the future&amp;nbsp;include some truly kick-ass factories.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2475307" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Service+Factory/default.aspx">Service Factory</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category></item><item><title>First Service Factory v3 Community Drop</title><link>http://blogs.msdn.com/donsmith/archive/2007/04/06/first-service-factory-v3-community-drop.aspx</link><pubDate>Sat, 07 Apr 2007 06:28:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2044125</guid><dc:creator>donsmith</dc:creator><slash:comments>26</slash:comments><comments>http://blogs.msdn.com/donsmith/comments/2044125.aspx</comments><wfw:commentRss>http://blogs.msdn.com/donsmith/commentrss.aspx?PostID=2044125</wfw:commentRss><description>&lt;P&gt;Okay, we're off and running now. Earlier today I posted the first of many community drops for Service Factory v3 - don't let "build 19" fool you - this is the first one. It took us longer than expected to get this one&amp;nbsp;out the door, but we're all set now. &lt;/P&gt;
&lt;P&gt;I suspect the first question you have is "&lt;EM&gt;What is so specially about this release?&lt;/EM&gt;"&amp;nbsp;Fair enough question. Well, probably the biggest thing is the addition of models. This alone accounts for most of the improvements over v2. I'm not going to go into too much detail here (there will be plenty of time for that later), but here are the high points:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Now Visual Studio has a memory about&amp;nbsp;your decisions. In v2&amp;nbsp;you&amp;nbsp;place your decisions&amp;nbsp;in wizards. In addition to models, there are still wizards, but it's the model that "remembers" so you can generate code anytime you like.&lt;/LI&gt;
&lt;LI&gt;Now you have a visualization of the application you are building. The designers provide this. Right now there are 2 designers/models.&amp;nbsp;The first screen shot below shows the one for service contracts and the one after that shows data contracts.&lt;/LI&gt;
&lt;LI&gt;Now you can delay the platform decision (WCF/ASMX/etc) and the language decision (C#/VB/etc) until as late as you like (way after you define all the service, message, and data interfaces.&lt;/LI&gt;
&lt;LI&gt;With this version there is also no assumption that you have already define the service contract before you start using the factory. You can either approach the solution from a capability perspective (dropping operations on the service contract designer) or from a data perspective (dropping data contracts on its designer).&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Here is what they look like (I added the thin red boxes):&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Service Contract Designer" alt="Service Contract Designer" src="http://dev4net.members.winisp.net/images/sc.png" mce_src="http://dev4net.members.winisp.net/images/sc.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG title="Data Contract Designer" alt="Data Contract Designer" src="http://dev4net.members.winisp.net/images/dc.png" mce_src="http://dev4net.members.winisp.net/images/dc.png"&gt;&lt;/P&gt;
&lt;P&gt;I'm trying something new during this release&amp;nbsp;by including a "start here" document and a&amp;nbsp;"walkthrough" document for each drop. I'm hoping this will:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Save you lots of time in evaluating this drop. &lt;/LI&gt;
&lt;LI&gt;Set your expectations around how much time you will need to evaluate the drops.&lt;/LI&gt;
&lt;LI&gt;Provide you a very directed way to provide feedback about the drop.&lt;/LI&gt;
&lt;LI&gt;Give you an easy way to see what the new features are every 2 weeks.&lt;/LI&gt;
&lt;LI&gt;Let you know what the known issues are with each drop.&lt;/LI&gt;
&lt;LI&gt;Get me more high quality feedback so I'll know we're building the best, most appropriate Service Factory we can for you.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So please use these docments and give me your thoughts about them. &lt;/P&gt;
&lt;P&gt;You can expect new community drop every other Friday until the end of October (unless something really unexpected happens of course).&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.codeplex.com/servicefactory/Release/ProjectReleases.aspx?ReleaseId=2928" mce_href="http://www.codeplex.com/servicefactory/Release/ProjectReleases.aspx?ReleaseId=2928"&gt;&lt;STRONG&gt;Download Service Factory v3 Community Drop 19 here&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;Looking forward to your feedback ...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2044125" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/donsmith/archive/tags/Web+Services/default.aspx">Web Services</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Service+Factory/default.aspx">Service Factory</category><category domain="http://blogs.msdn.com/donsmith/archive/tags/Work+Related/default.aspx">Work Related</category></item></channel></rss>