<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Udi Dahan - The Software Simplist</title><subtitle type="html">For more information, visit www.UdiDahan.com - my main blog.</subtitle><id>http://blogs.microsoft.co.il/blogs/udidahan/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/" /><link rel="self" type="application/atom+xml" href="http://blogs.microsoft.co.il/blogs/udidahan/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.20917.1142">Community Server</generator><updated>2006-10-19T22:05:00Z</updated><entry><title>WCF Everywhere? Not on my watch.</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/12/29/wcf-everywhere-not-on-my-watch.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/12/29/wcf-everywhere-not-on-my-watch.aspx</id><published>2007-12-29T15:06:00Z</published><updated>2007-12-29T15:06:00Z</updated><content type="html">&lt;div class="entry"&gt;
&lt;p&gt;&lt;a href="http://udidahan.weblogs.us/wp-content/uploads/smoking-gun1.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;MARGIN:0px 20px 20px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="139" alt="smoking-gun" src="http://udidahan.weblogs.us/wp-content/uploads/smoking-gun-thumb1.jpg" width="113" align="right" border="0" /&gt;&lt;/a&gt; The other day I was at &lt;a href="http://www.idesign.net/"&gt;Juval’s&lt;/a&gt; presentation where the main message was WCF is a better .NET. In other words, if you use WCF on every one of your classes, you’ll benefit. I don’t know about you, but I’m quite wary of silver bullets - they tend to inflict quite a bit of pain when used indiscriminately. This post is my response to all the people who came up to me at the end of the presentation and wanted to know if I agreed with these far-reaching architectural statements.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://udidahan.weblogs.us/wp-content/uploads/oz1.jpg"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;MARGIN:0px 20px 20px 0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="137" alt="oz" src="http://udidahan.weblogs.us/wp-content/uploads/oz-thumb1.jpg" width="134" align="left" border="0" /&gt;&lt;/a&gt;&amp;nbsp; First of all let me say that Juval is indeed a master presenter. The “looks like a class, walks like a class, quacks like a class” bit was excellent. I could tell that most people didn’t notice the speedy hands quickly deleting all attributes from the classes before the “looks like a class…” bit. At times, I got flashbacks from the Wizard of Oz - “pay no attention to the man behind the curtain”. If all attributes in WCF only went on the interfaces, then this might actually fly, but we all know that that’s not the case.&lt;/p&gt;
&lt;p&gt;One of the interesting comparisons Juval made with WCF was the introduction of .NET. Few people in the audience seemed to remember (or maybe were just professionally younger than .NET’s 8 years), but when it came out .NET was marketed as being mainly about XML Web Services. Juval stated that this was done to play down the fact that .NET made the previous Windows programming technologies obsolete. He then drew the same conclusion about WCF - that it’s as much .NET 3.0 as .NET was the next version of MFC; besides being written in a language that resembles the previous technology, it’s really all different. I don’t think that anyone would argue the difference, but is it really a “plain .NET” killer?&lt;/p&gt;
&lt;p&gt;&lt;a class="" href="http://udidahan.weblogs.us/2007/12/29/wcf-everywhere-not-on-my-watch/#answer"&gt;The answer seemed to come around the overhead of WCF...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=46516" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author><category term="Architecture" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Architecture/default.aspx" /><category term=".Net 2.0 3.0 WPF WCF WF" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/.Net+2.0+3.0+WPF+WCF+WF/default.aspx" /></entry><entry><title>More SOA stuff for the DotNet Rocks crowd</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/08/15/More-SOA-stuff-for-the-DotNet-Rocks-crowd.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/08/15/More-SOA-stuff-for-the-DotNet-Rocks-crowd.aspx</id><published>2007-08-14T21:46:00Z</published><updated>2007-08-14T21:46:00Z</updated><content type="html">&lt;P&gt;Now that the show I did with Carl and Richard is &lt;A href="http://dotnetrocks.com/default.aspx?showID=268"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;online&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;, I just wanted to let the new visitors to my blog know about all the other podcasts that I’ve done on SOA.&lt;/P&gt;
&lt;P&gt;Here are some of the more popular ones:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://udidahan.weblogs.us/2006/06/02/podcast-does-an-soa-require-an-esb/"&gt;&lt;STRONG&gt;Ask Udi Podcast #001 - Does an SOA Require an ESB?&lt;/STRONG&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://udidahan.weblogs.us/2006/08/28/podcast-business-and-autonomous-components-in-soa/"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Ask Udi Podcast #005 - Business and Autonomous Components in SOA&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://udidahan.weblogs.us/2007/03/28/podcast-datasets-web-services/"&gt;&lt;STRONG&gt;Ask Udi Podcast #011 - Datasets &amp;amp; Web Services&lt;/STRONG&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;And there’s always the &lt;A href="http://udidahan.weblogs.us/ask-udi/"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;archives&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt; with a total of 25 shows up.&lt;/P&gt;
&lt;P&gt;If you are a new visitor and are looking for more information on NServiceBus, you can find it all &lt;A href="http://udidahan.weblogs.us/category/nservicebus/"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;here&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;. You might also want to take a moment to &lt;A href="http://feeds.feedburner.com/UdiDahan-TheSoftwareSimplist"&gt;&lt;STRONG&gt;subscribe&lt;/STRONG&gt;&lt;/A&gt; so that you don’t miss out on any of the updates. And, as always, please do feel free to ping me about these topics via &lt;A href="mailto:info@UdiDahan.com"&gt;&lt;STRONG&gt;email&lt;/STRONG&gt;&lt;/A&gt; or in the comments below.&lt;/P&gt;
&lt;P&gt;Thanks for dropping by.&lt;/P&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=22349" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author><category term="SOA" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/SOA/default.aspx" /><category term="Web Services" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Web+Services/default.aspx" /><category term="Architecture" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Architecture/default.aspx" /></entry><entry><title>Team Leadership course now open</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/06/24/Team-Leadership-course-now-open.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/06/24/Team-Leadership-course-now-open.aspx</id><published>2007-06-23T22:17:00Z</published><updated>2007-06-23T22:17:00Z</updated><content type="html">&lt;P&gt;If you’re interested in avoiding Steve McConnell’s &lt;A href="http://blogs.construx.com/blogs/stevemcc/archive/2007/06/15/Classic-Mistakes-Updated.aspx"&gt;36+7 classic mistakes of project management&lt;/A&gt; in your projects, I have just the course for you. Besides being a straight-perfectly evaluated course, this is just what new team leads need.&lt;/P&gt;
&lt;P&gt;Combining enough project management philosophy with practical design techniques, attendees learn how to do project planning, and why the plan is never “done”; what kind of testing is appropriate for which project, and when each kind should occur; what it means to actually go into production and how to manage multiple versions of a software effort concurrently; how to use certain simple design techniques to enable outsourcing non-core elements of the project and how to manage those efforts; and more.&lt;/P&gt;
&lt;P&gt;While this course won’t magically give you the experience you need to manage multi-million dollar projects, it will keep you from making those costly mistakes that can derail your project or even your career.&lt;/P&gt;
&lt;P&gt;The course opens this July 29th at MediaTech in Haifa. Contact Belle for registration - via email &lt;A href="mailto:Bell@mediatech.co.il"&gt;Bell@mediatech.co.il&lt;/A&gt;, or phone 04-881-3332.&lt;/P&gt;
&lt;P&gt;If you’re interested in having me come to your company and provide this training on-site, that option is available as well. Just send me an email to &lt;A href="mailto:TeamLeadCourse@UdiDahan.com"&gt;TeamLeadCourse@UdiDahan.com&lt;/A&gt; and we’ll work something out.&lt;/P&gt;
&lt;P&gt;The course is based on Microsoft’s “Analyzing Requirements and Defining Microsoft .NET Solution Architectures” course number 2710 and as such counts towards your MCAD/MCSD - were you interested in certification.&lt;/P&gt;
&lt;P&gt;Here’s the syllabus:&lt;/P&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 1: Introduction to Designing Business Solutions&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Overview of Microsoft Solutions Framework &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Phases in the MSF Process Model &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Introducing the Case Study—Adventure Works Cycles Application &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 2: Gathering and Analyzing Information&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Using Modeling Notations &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Gathering Information &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Analyzing Information &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Creating Use Cases and Usage Scenarios &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 3: Envisioning the Solution&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;The Envisioning Phase &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Creating a Vision/Scope Document &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Creating the Project Structure Document &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Analyzing Risks &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 4: Creating the Conceptual Design&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;An Introduction to the Planning Phase &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;An Overview of the Functional Specification &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;An Overview of the Conceptual Design Process &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Building the Conceptual Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Optimizing the Conceptual Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 5: Creating the Logical Design&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;An Overview of Logical Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Creating a Logical Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Documenting Logical Design Output &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Optimizing Logical Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 6: Creating the Physical Design&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;An Overview of Physical Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Physical Design Analysis &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Physical Design Rationalization &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Physical Design Implementation &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 7: Designing the Presentation Layer&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Basics of User Interface Design &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Designing the User Interface &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Designing User Process Components &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 8: Designing the Data Layer&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Designing the Data Store &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Optimizing Data Access &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Implementing Data Validation &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 9: Designing Security Specifications&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Overview of Security in Application Development &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Planning for Application Security &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Using the .NET Framework Security Features &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Designing Authorization, Authentication, and Auditing Strategies &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 10: Completing the Planning Phase&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Incorporating Design Considerations &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Planning for Administrative Features &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Planning for Future Phases &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Creating the Technical Specifications &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Module 11: Stabilizing and Deploying the Solution&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;The MSF Stabilizing Phase &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Testing and Piloting for Stabilization &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;The MSF Deploying Phase &lt;/FONT&gt;&lt;/DIV&gt;
&lt;DIV style="DIRECTION:ltr;unicode-bidi:embed;TEXT-ALIGN:left;"&gt;&lt;SPAN style="FONT-SIZE:10pt;"&gt;§&lt;SPAN style="FONT:7pt 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3&gt;Deploying to a Production Environment &lt;/FONT&gt;&lt;/DIV&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=16180" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author></entry><entry><title>Advanced Distributed Systems Design - R U Ready?</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/06/04/Advanced-Distributed-Systems-Design-_2D00_-R-U-Ready_3F00_.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/06/04/Advanced-Distributed-Systems-Design-_2D00_-R-U-Ready_3F00_.aspx</id><published>2007-06-03T22:34:00Z</published><updated>2007-06-03T22:34:00Z</updated><content type="html">&lt;P&gt;My good friends Eyal Vardi and Ohad Israeli, the guys behind &lt;A href="http://experts4d.com/"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Experts 4D&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt; are putting together one heck of a conference this July in Israel: &lt;A href="http://experts4d.com/events/ruready08/"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;R U Ready 2008&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Although the timetable isn’t set in stone yet, I’m going to be doing a full day course on July 2nd, so mark your calendars. The official link is &lt;A href="http://experts4d.com/events/ruready08/Course.aspx?Course=001"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;here&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;, but I’ve got the full information below. Here’s the &lt;A href="http://experts4d.com/events/ruready08/Registration.aspx"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;registration page&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;By the way, if you’re interested in having me give this course to your team, give me &lt;A href="mailto:training@UdiDahan.com"&gt;&lt;STRONG&gt;a shout&lt;/STRONG&gt;&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;H3&gt;Course Description:&lt;/H3&gt;
&lt;P&gt;Designing large-scale distributed systems is hard. New technologies make it easier to comply with today’s communications and security standards, but don’t auto-magically give you a robust and scalable system. Join Udi for a day packed with the wisdom of companies like SUN, Amazon, and EBay. Tried-and-true theories and fallacies will be shown, keeping you from making those same costly mistakes today. Communications patterns like publish/subscribe and correlated one-way request/response will be used in conjunction with advanced object-oriented state management practices for long-running workflows. If you enjoy deep architectural discussion, if you are in charge of building a large-scale distributed system, if you want to know more about how the big guys run their systems, this day is for you.&lt;/P&gt;
&lt;H3&gt;Course Content:&lt;/H3&gt;
&lt;H4&gt;Module 1: Distributed Systems Theory&lt;/H4&gt;
&lt;P&gt;Decades of distributed systems development have taught us many lessons. In this module we’ll cover many historical mistakes as well as proven best practices for scalable and robust design. Topics include: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;8 fallacies of distributed systems 
&lt;LI&gt;Transactions &lt;/LI&gt;&lt;/UL&gt;
&lt;H4&gt;Module 2: Identifying Coupling in Distributed Systems&lt;/H4&gt;
&lt;P&gt;Loose coupling has become the watchword of complex systems development, yet few understand its multiple dimensions. In the module we’ll be covering the three different dimensions of coupling as well as patterns for dealing with them. &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Platform Coupling – XML/SOAP 
&lt;LI&gt;Temporal Coupling – Synchronous/Asynchronous 
&lt;LI&gt;Spatial Coupling – Endpoints/Topics &lt;/LI&gt;&lt;/UL&gt;
&lt;H4&gt;Module 3: Asynchronous Messaging Patterns&lt;/H4&gt;
&lt;P&gt;Although scalability is achieved through the use of asynchronous message passing, more advanced message exchange patterns are required to handle today’s complex integration scenarios. This module will cover the most commonly used patterns: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;One way 
&lt;LI&gt;Correlated Request/Response 
&lt;LI&gt;Publish/Subscribe &lt;/LI&gt;&lt;/UL&gt;
&lt;H4&gt;Module 4: Bus and Broker Architectural Styles&lt;/H4&gt;
&lt;P&gt;Enterprise Service Buses are all the rage these days. In this module we’ll be covering what’s the difference between the Bus architectural style, and the more well-known Broker, found commonly in many EAI projects. Topics will include: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Architectural advantages and disadvantages 
&lt;LI&gt;Technological advantages and disadvantages &lt;/LI&gt;&lt;/UL&gt;
&lt;H4&gt;Module 5: Long running work flows&lt;/H4&gt;
&lt;P&gt;The distributed communications patterns wouldn’t be complete without a discussion on orchestration. In this module we’ll see how to manage the state of long-running distributed communication flows as well as: &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;How to encapsulate work flow logic 
&lt;LI&gt;Advantages and disadvantages of orchestration &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;
&lt;HR&gt;

&lt;P&gt;&lt;/P&gt;
&lt;P&gt;If you’re interested in the full 2-day course which includes SOA topics, check it out. &lt;A href="http://udidahan.weblogs.us/2006/07/08/advanced-distributed-systems-design-with-soa/"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;Advanced Distributed Systems Design with SOA&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt; - learn from the mistakes of others, succeed in your SOA project.&lt;/P&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=14098" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author></entry><entry><title>Using spaces with web services</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/05/11/Using-spaces-with-web-services.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/05/11/Using-spaces-with-web-services.aspx</id><published>2007-05-10T22:03:00Z</published><updated>2007-05-10T22:03:00Z</updated><content type="html">&lt;P&gt;Willam Brogden has an article up on SearchWebServices.com on &lt;A href="http://searchwebservices.techtarget.com/tip/0,289483,sid26_gci1251765,00.html?track=NL-449&amp;amp;ad=586258&amp;amp;asrc=EM_NLT_1307248&amp;amp;uid=5532089"&gt;&lt;STRONG&gt;&lt;FONT color=#0000ff&gt;How Web Services can use JavaSpaces&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/A&gt;. I don’t want all the Microsoft folks tuning out now that they’ve heard the “J” word, so let me just say that there are technologies out there for .NET too.&lt;/P&gt;
&lt;P&gt;A “JavaSpace” is really just a &lt;A href="http://udidahan.weblogs.us/2007/01/20/space-based-architectural-thinking/"&gt;&lt;STRONG&gt;space&lt;/STRONG&gt;&lt;/A&gt;, which is, at the end of the day, a queryable distributed in-memory hashtable. Something many of us are already doing for caching. The reason you shouldn’t be doing this yourself is simple. While keeping a single hashtable in memory on a single computer and synchronizing it against changes to your database is simple, doing that in a highly available manner across multiple servers is not. Vendors providing solutions in this space include:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://www.gigaspaces.com/"&gt;&lt;STRONG&gt;Gigaspaces&lt;/STRONG&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.ibm.com/developerworks/websphere/downloads/objectgrid/"&gt;&lt;STRONG&gt;IBM ObjectGrid&lt;/STRONG&gt;&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.alachisoft.com/ncache/index.html"&gt;&lt;STRONG&gt;Alachisoft’s NCache &lt;/STRONG&gt;
&lt;LI&gt;&lt;A href="http://www.gemstone.com/"&gt;GemStone&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://www.tangosol.com/coherence-.net.jsp"&gt;&lt;STRONG&gt;Tangosol’s Coherence&lt;/STRONG&gt;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;But there are others as well. Bottom line: don’t develop one of your own. Do a proof of concept with your short list of vendors and go from there.&lt;/P&gt;
&lt;P&gt;The article sums it up nicely like this:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Although JavaSpaces servers are not trivial to set up, they are much easier than any other type of grid computing server. Furthermore, the simplicity of the interface makes the learning curve easier. The greatest advantage of the JavaSpaces approach is the ease with which additional workers can be added to the grid. &lt;/P&gt;
&lt;P&gt;It should be clear from the example that there is a lot of extra communication traffic in a JavaSpaces solution so the only reason to use JavaSpaces or any other form of grid computing in support of a Web service is a requirement for computing power or special resources that are not feasible to supply on the server directly. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I have this to add to it. Whereas most traditional systems keep the idea of &lt;A href="http://udidahan.weblogs.us/category/pubsub/"&gt;message-based communication&lt;/A&gt; and &lt;A href="http://udidahan.weblogs.us/category/caching/"&gt;data caching&lt;/A&gt; separate, spaces allow you to kill two birds with one stone. Even if you don’t go the whole &lt;A href="http://udidahan.weblogs.us/category/space-based-architecture/"&gt;Space-Based Architecture&lt;/A&gt; route, you’ll find that spaces will fit nicely in your distributed architecture toolkit - I know I did.&lt;/P&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=13136" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author><category term="Web Services" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Web+Services/default.aspx" /><category term="Architecture" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Architecture/default.aspx" /></entry><entry><title>Service Component Architecture, Service Data Objects, and my bus</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/04/30/Service-Component-Architecture_2C00_-Service-Data-Objects_2C00_-and-my-bus.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/04/30/Service-Component-Architecture_2C00_-Service-Data-Objects_2C00_-and-my-bus.aspx</id><published>2007-04-30T15:10:00Z</published><updated>2007-04-30T15:10:00Z</updated><content type="html">&lt;P&gt;There’s been quite a flurry of activity around Service Component Architecture (SCA) and Service Data Objects (SDO) in the non-Microsoft community. These specs have been sent for OASIS ratification and have garnered support from the Open Service Oriented Architecture (OSOA) organization - a collaboration of a dozen top software vendors including IBM.&lt;/P&gt;
&lt;P&gt;I’ve been getting some questions on how these upcoming standards correspond to what I’ve been describing about SOA. Specifically, how does SCA relate to &lt;A href="http://udidahan.weblogs.us/2006/08/28/podcast-business-and-autonomous-components-in-soa/"&gt;the Business Components and Autonomous Components I podcasted about&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;First of all, I’d say that the SDO thing is, in my opinion, “much ado about nothing”. These are “merely” the messages that are sent between services. We don’t need further standardization there, if the WS-Splat has taught us anything it’s that more is definitely not better.&lt;/P&gt;
&lt;P&gt;In terms of SCA, it’s components seem to correspond to the &lt;A href="http://udidahan.weblogs.us/2007/04/01/service-layer-separation-of-concerns/"&gt;Service Layer&lt;/A&gt; of an Autonomous Component.&lt;/P&gt;
&lt;P&gt;What does all this have to do with Web Services? Well, in both the SCA/SDO case and in my ESB/SOA case, we add constraints and guidelines on top of the generic ways WSDL has been mangled by the tooling.&lt;/P&gt;
&lt;P&gt;In all cases, we still need to discuss what makes a good contract - what is good message design. I’ll be dealing with that in the next coming days.&lt;/P&gt;
&lt;P&gt;More information:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.ibm.com/developerworks/blogs/page/woolf?entry=service_component_architecture_sca"&gt;Info from IBM on SCA.&lt;/A&gt;&lt;BR&gt;&lt;A href="http://www.ibm.com/developerworks/blogs/page/woolf?entry=service_data_objects_sdo"&gt;Info from IBM on SDO.&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=12659" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author><category term="SOA" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/SOA/default.aspx" /><category term="Web Services" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Web+Services/default.aspx" /></entry><entry><title>How to structure .NET Solutions and Components - Podcast</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/04/21/How-to-structure-.NET-Solutions-and-Components-_2D00_-Podcast.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2007/04/21/How-to-structure-.NET-Solutions-and-Components-_2D00_-Podcast.aspx</id><published>2007-04-20T22:02:00Z</published><updated>2007-04-20T22:02:00Z</updated><content type="html">&lt;DIV class=entry&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE:12pt;FONT-FAMILY:'Times New Roman','serif';mso-fareast-font-family:'Times New Roman';mso-ansi-language:EN-US;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;FONT face=Tahoma size=2&gt;Hello World, and welcome to “Ask Udi”, the podcast where listeners get their questions on IT Architecture answered. This is your host, Udi Dahan, bringing you the cold, hard facts you need to make decisions about SOA, Web Services, Domain Driven Design, Object Relational Mapping, Smart Clients – well, you get the picture. If it’s IT, it’s fair game. I am “The Software Simplist”, helping you Keep It Simple.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;This week’s question comes from Mike who asks:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;Hi Udi,&lt;/P&gt;
&lt;P&gt;I was wondering if you could help me out or point me in the right direction. I’ve been programming on the .Net framework for several years now and want to move towards an architecture role. Additionally, I have been reading up on WCF and related .Net 3.0 technologies, but have more questions than answers.&lt;/P&gt;
&lt;P&gt;1. Do you have guidelines/best-practices for how to structure a .Net solution and related assemblies? Also, guidelines as to how to factor the various namespaces and what goes where would be helpful.&lt;/P&gt;
&lt;P&gt;2. How should components be factored, i.e. one component to an assembly or multiple components to an assembly? I’ve read several different articles that go back and forth, but never really got a straight answer.&lt;/P&gt;
&lt;P&gt;3. How do components relate to services from an SOA perspective?&lt;/P&gt;
&lt;P&gt;4. Does application scope/size impact the decision to use SOA? And,&lt;/P&gt;
&lt;P&gt;5. Do you have any resources that I could use to learn more about SOA and .Net?&lt;/P&gt;
&lt;P&gt;I appreciate the help and any answers that you can provide.&lt;/P&gt;
&lt;P&gt;Mike &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Get it &lt;A href="http://ddj.com/dept/webservices/199100693"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Additional References&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://udidahan.weblogs.us/2006/06/24/one-wrong-dll-3-months-gone/"&gt;On the importance of splitting up projects and DLLs &lt;/A&gt;
&lt;LI&gt;&lt;A href="http://www.martinfowler.com/articles/injection.html"&gt;Inversion of Control Containers and the Dependency Injection pattern&amp;nbsp;&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Dependency Injection Tools:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;[.NET] &lt;A href="http://www.springframework.net/"&gt;Spring Framework &lt;/A&gt;
&lt;LI&gt;[.NET] &lt;A href="http://structuremap.sourceforge.net/Default.htm"&gt;StructureMap&lt;/A&gt; 
&lt;LI&gt;[Java] &lt;A href="http://www.springframework.org/"&gt;Spring Framework &lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Podcasts:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://udidahan.weblogs.us/2006/09/05/podcast-autonomous-services-and-pubsub/"&gt;Podcast on Autonomous Services and Pub/Sub &lt;/A&gt;
&lt;LI&gt;&lt;A href="http://udidahan.weblogs.us/2006/08/28/podcast-business-and-autonomous-components-in-soa/"&gt;Podcast on Business and Autonomous Components in SOA &lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Want more? Go to the &lt;A href="http://udidahan.weblogs.us/ask-udi"&gt;“Ask Udi” archives&lt;/A&gt;.&lt;/P&gt;&lt;/DIV&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=12300" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author></entry><entry><title>.Net 2.0 no big deal?</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2006/10/22/.Net-2.0-no-big-deal_3F00_.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2006/10/22/.Net-2.0-no-big-deal_3F00_.aspx</id><published>2006-10-21T22:39:00Z</published><updated>2006-10-21T22:39:00Z</updated><content type="html">&lt;P&gt;&lt;A href="http://udidahan.weblogs.us/archives/036964.html"&gt;[Copied from my main blog]&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Jesse seems to be swallowing the Microsoft party line without missing a drop in his latest post &lt;A href="http://weblogs.asp.net/jezell/archive/2006/10/05/Screw-2.0_2C00_-I_2700_m-Going-Straight-to-3.0.aspx"&gt;&lt;FONT color=#003366&gt;Screw 2.0, I'm Going Straight to 3.0&lt;/FONT&gt;&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;From his post:&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;BR&gt;"The 2.0 framework doesn't really give you a massive amount of really new really cool features. There is one-click, which we probably wouldn't use anyway, generics (which are useful as a time saver, but don't really do much that you can't do without them), and some other little features... but the best part about the 2.0 framework is probably the IDE/dev experience, not what customers get out of it."&lt;BR&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;Granted, One-Click is nothing to write home about, but the runtime level additions, they just totally changed the way I write code. I'm talking about generics, anonymous methods, delegate inference, and the rest. The rest of 2.0, like the enhancements of the provider model in ASP.Net, well you would have developed the same kind of framework yourself if you were doing serious web development.&lt;/P&gt;
&lt;P&gt;The whole 3.0 story, I've got to tell you, I'm pretty underwhelmed. Everybody seems to be jumping up and down about WPF, and yes, it's new and shiny, but there still the clunkety Windows message pump in the background. No real changes in how you're going to write multi-threaded UIs, which seem to be the real future given the rise in multi-core processing. The visual aspects of client side code in the systems I write run at around 5% of the overall effort. So the UI will look better, I dunno, 4D buttons and stuff, sorry for not falling over with enthusiasm.&lt;/P&gt;
&lt;P&gt;And then there's WCF. Ah, wait, no publish/subscribe. Bummer, most of my systems being asynchronous in nature are built on the pub/sub model. An OO interface for interprocess communication? Who wants it - I need a message-based interface.&lt;/P&gt;
&lt;P&gt;Don't forget WF - what was that for again? The main place where WF can fit my needs is for handling long-running workflows between systems, since I don't use Biztalk. But the performance of WF doesn't seem to fit this environment, it seems to be more suited for human workflow times. &lt;/P&gt;
&lt;P&gt;If anything, I'd have to say that .Net 2.0 was a relatively big deal. 3.0 will probably be just as important with the runtime level enhancements like lambda expressions, extension methods, anonymous types, and implicitly typed variables. All the rest of the hyped up stuff in 3.0, I don't really expect it to change anything in how I work today.&lt;/P&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=3982" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author><category term=".Net 2.0 3.0 WPF WCF WF" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/.Net+2.0+3.0+WPF+WCF+WF/default.aspx" /></entry><entry><title>Udi Dahan - The Software Simplist</title><link rel="alternate" type="text/html" href="http://blogs.microsoft.co.il/blogs/udidahan/archive/2006/10/19/Udi-Dahan-_2D00_-The-Software-Simplist.aspx" /><id>http://blogs.microsoft.co.il/blogs/udidahan/archive/2006/10/19/Udi-Dahan-_2D00_-The-Software-Simplist.aspx</id><published>2006-10-19T20:05:00Z</published><updated>2006-10-19T20:05:00Z</updated><content type="html">&lt;P&gt;Hello, my name is Udi. Some of you already know me, and my blog (&lt;A href="http://udidahan.weblogs.us"&gt;http://udidahan.weblogs.us&lt;/A&gt;, and it's alias &lt;A href="http://www.UdiDahan.com"&gt;http://www.UdiDahan.com&lt;/A&gt;).&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.microsoft.co.il/blogs/yosit/default.aspx"&gt;Yosi&lt;/A&gt;&amp;nbsp;has been after me for some time now to start posting here, so here I am.&lt;/P&gt;
&lt;P&gt;To tell you the truth, I'm not even sure what I'm going to talk about. Besides my main blog, I have another blog focusing specifically on SOA and Web Services on the Dr. Dobb's site: &lt;A href="http://www.ddj.com/dept/webservices"&gt;http://www.ddj.com/dept/webservices&lt;/A&gt; , with the details &lt;A href="http://www.ddj.com/blog/webservicesblog/archives/freelancer_blog/index.html"&gt;here&lt;/A&gt;. You can also find the "Ask Udi" podcast at the Dr. Dobb's site, subscribe &lt;A href="http://syndication.sdmediagroup.com/feeds/public/cmp_podcast_udi.xml"&gt;here&lt;/A&gt;.&amp;nbsp;I post more generic architecture type content can be found on the International Association of Software Architects (IASA) blog &lt;A href="http://www.iasahome.org/iasaweb/appmanager/home/content?_nfpb=true&amp;amp;_pageLabel=content_blog_page"&gt;here&lt;/A&gt;. Beyond the online stuff, you can find me speaking at events like the VS2005 launch, as well as TechEd Developers Europe this year.&lt;/P&gt;
&lt;P&gt;So, I guess I'll just open this up. What would you like to hear from an overbearing loudmouth&amp;nbsp;who can't type&amp;nbsp;worth sh!+ in Hebrew?&lt;/P&gt;&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=3933" width="1" height="1"&gt;</content><author><name>UdiDahan</name><uri>http://blogs.microsoft.co.il/members/UdiDahan.aspx</uri></author><category term="SOA" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/SOA/default.aspx" /><category term="Web Services" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Web+Services/default.aspx" /><category term="Architecture" scheme="http://blogs.microsoft.co.il/blogs/udidahan/archive/tags/Architecture/default.aspx" /></entry></feed>