<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Wouter Crooy</title><link>http://weblogs.asp.net/woutercrooy/default.aspx</link><description>Adventures in .NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Presenting @ BTUG NL</title><link>http://weblogs.asp.net/woutercrooy/archive/2010/01/17/presenting-btug-nl.aspx</link><pubDate>Sun, 17 Jan 2010 11:41:20 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7313471</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=7313471</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2010/01/17/presenting-btug-nl.aspx#comments</comments><description>&lt;p&gt;It has been a while ago since I found the time to post some blogs. So hopefully a new ‘fresh’ start :-)&lt;/p&gt;  &lt;p&gt;Next Tuesday (Jan. 19th 2010) I’ll give a presentation about using BizTalk RFID with the ESB Toolkit 2.0.    &lt;br /&gt;My presentation will be about how to start with BizTalk RFID and to use it together with the ESB Toolkit 2.0.     &lt;br /&gt;And if you start using the ESB Toolkit 2.0 in which ways can you implement it.&lt;/p&gt;  &lt;p&gt;Hope to see you there.&lt;/p&gt;  &lt;p&gt;More info can be found at &lt;a title="http://www.btug.biz/Home/NL/tabid/81/Default.aspx" href="http://www.btug.biz/Home/NL/tabid/81/Default.aspx"&gt;http://www.btug.biz/Home/NL/tabid/81/Default.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7313471" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2009/default.aspx">BizTalk 2009</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB+Toolkit/default.aspx">ESB Toolkit</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/RFID/default.aspx">RFID</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Presentations/default.aspx">Presentations</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BTUG/default.aspx">BTUG</category></item><item><title>DevDays presentation: BizTalk 2009 &amp; ESB Guidance 2.0 in een Event Driven Architecture</title><link>http://weblogs.asp.net/woutercrooy/archive/2009/08/26/devdays-presentation-biztalk-2009-amp-esb-guidance-2-0-in-een-event-driven-architecture.aspx</link><pubDate>Wed, 26 Aug 2009 08:53:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7181748</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=7181748</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2009/08/26/devdays-presentation-biztalk-2009-amp-esb-guidance-2-0-in-een-event-driven-architecture.aspx#comments</comments><description>&lt;P&gt;I just remembered today that I haven’t uploaded my presentation on &lt;A href="http://www.devdays.nl/" target=_blank mce_href="http://www.devdays.nl/"&gt;Dev Days 2009&lt;/A&gt;. So I just did :-)&lt;/P&gt;
&lt;P&gt;You can find the presentation at this: &lt;A href="http://conducido.nl/blog/wp-content/uploads/2009/08/devdaysbts2009esb2ined.pdf"&gt;link&lt;/A&gt;. Unfortunately the presentation text is in Dutch.&lt;/P&gt;
&lt;P&gt;If you’ve got any further question let me know.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7181748" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2009/default.aspx">BizTalk 2009</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB+Toolkit/default.aspx">ESB Toolkit</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>ESB Toolkit 2.0 released!</title><link>http://weblogs.asp.net/woutercrooy/archive/2009/06/09/esb-toolkit-2-0-released.aspx</link><pubDate>Tue, 09 Jun 2009 16:33:51 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7114746</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=7114746</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2009/06/09/esb-toolkit-2-0-released.aspx#comments</comments><description>&lt;p&gt;Since today Microsoft has released the ESB Toolkit 2.0 (formally known as ESB Guidance 2.0) This is good news, as soon as I got my hands into it I’ll let you know :-)&lt;/p&gt;  &lt;p&gt;The features (cut-and-pasted from Microsoft ESB Toolkit site)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Endpoint run-time discovery and virtualization.&lt;/strong&gt; The service consumer does not need to be aware of the service provider location and endpoint details; a new or modified service provider can be added to the ESB, without interruptions to the service consumer. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Loosely coupled service composition&lt;/strong&gt;. The service provider and service consumer do not need to be aware of service interaction style. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dynamic message transformation and translation.&lt;/strong&gt;The mapping definition between distinct message structure and semantics is resolved at run time. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dynamic routing.&lt;/strong&gt; Run-time content-based, itinerary-based, or context-based message routing. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Centralized exception management.&lt;/strong&gt; Exception management framework, services, and infrastructure elements that make it possible to create, repair, resubmit, and compensate fault messages that service consumers or BizTalk components submit. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Quality of service.&lt;/strong&gt; An asynchronous publish/subscribe engine resolves different levels of service availability and provides high availability, scalability, and message traceability for ESB implementations. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Protocol transformation.&lt;/strong&gt; Providing the ability for service provider and service consumer to interact via different protocols including WS-* standards for Web Services. For example, a service provider can send an HTTP Web Service request, which will result in sending a message via Message Queuing. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Extensibility.&lt;/strong&gt; Provides multiple extensibility points to extend functionality for endpoint discovery, message routing, and additional BizTalk Server adapters for run time and design time. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;According to the ESB Toolkit website the source will also be released in the (I hope near) future.&lt;/p&gt;  &lt;p&gt;The following links can be useful:&lt;/p&gt; &lt;a href="http://go.microsoft.com/fwlink/?LinkId=153186" target="_blank"&gt;ESB Tookit download&lt;/a&gt;   &lt;br /&gt;  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=153186" target="_blank"&gt;ESB Toolkit documentation download&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=153187" target="_blank"&gt;ESB Toolkit online documentation&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/user/forums" target="_blank"&gt;ESB Toolkit Forum&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/esb/default.aspx" target="_blank"&gt;ESB Guidance Team blog&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://esb.codeplex.com/" target="_blank"&gt;ESB @ Codeplex&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7114746" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2009/default.aspx">BizTalk 2009</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB/default.aspx">ESB</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB+Toolkit/default.aspx">ESB Toolkit</category></item><item><title>Sample code from my DevDays 2009 presentation available</title><link>http://weblogs.asp.net/woutercrooy/archive/2009/06/03/sample-code-from-my-devdays-2009-presentation-available.aspx</link><pubDate>Wed, 03 Jun 2009 16:33:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7107195</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=7107195</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2009/06/03/sample-code-from-my-devdays-2009-presentation-available.aspx#comments</comments><description>&lt;P&gt;I enjoyed giving my first presentation at the DevDays. I hope you did as well!&lt;/P&gt;
&lt;P&gt;The first part of my sample source code is available. (The demo about using Itineraries in BizTalk ESB Guidance 2.0)&lt;/P&gt;
&lt;P&gt;The second part (EDA in action) will come tomorrow.&lt;/P&gt;
&lt;P&gt;If you’ve got any questions feel free to drop me a note.&lt;/P&gt;
&lt;P&gt;You can get the sample code here: &lt;A href="http://conducido.nl/blog/wp-content/uploads/2008/09/sourcesbts2009esb2part1.zip" mce_href="http://conducido.nl/blog/wp-content/uploads/2008/09/sourcesbts2009esb2part1.zip"&gt;Sourcecode&lt;/A&gt;&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7107195" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2009/default.aspx">BizTalk 2009</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB+Toolkit/default.aspx">ESB Toolkit</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>Presenting @ DevDays 2009</title><link>http://weblogs.asp.net/woutercrooy/archive/2009/05/28/presenting-devdays-2009.aspx</link><pubDate>Wed, 27 May 2009 23:08:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:7098997</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=7098997</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2009/05/28/presenting-devdays-2009.aspx#comments</comments><description>&lt;P&gt;Thursday the 28th of May. I’ll be presenting at the DevDays 2009 The Netherlands. &lt;/P&gt;
&lt;P&gt;I’m going to talk about using BizTalk 2009 &amp;amp; ESB Guidance(Toolkit) 2.0 in a Event Driven Architecture. &lt;BR&gt;The presentation is about Event Driven Architecture and I’ll give an insight to the ESB Guidance(Toolkit) 2.0.&lt;/P&gt;
&lt;P&gt;Hope to see you there.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=7098997" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2009/default.aspx">BizTalk 2009</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB+Toolkit/default.aspx">ESB Toolkit</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/DevDays09/default.aspx">DevDays09</category></item><item><title>BizTalk 2009 &amp; ESB Guidance 2.0 are released Beta</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/12/10/biztalk-2009-amp-esb-guidance-2-0-are-released-beta.aspx</link><pubDate>Wed, 10 Dec 2008 21:58:18 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6777290</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6777290</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/12/10/biztalk-2009-amp-esb-guidance-2-0-are-released-beta.aspx#comments</comments><description>&lt;p&gt;Since last Monday BizTalk 2009 is released for Beta testing. (&lt;a href="http://blogs.msdn.com/biztalk_server_team_blog/archive/2008/12/08/biztalk-server-2009-beta-and-rfid-mobile-ga.aspx" target="_blank"&gt;BizTalk Server Team Blog newspost&lt;/a&gt; ) Also &lt;a href="http://www.codeplex.com/esb" target="_blank"&gt;ESB Guidance 2.0&lt;/a&gt; has been released CTP.&amp;#160; So stay tuned the coming weeks for more information about this new release.&lt;/p&gt;  &lt;p&gt;What's new in BizTalk 2009&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for .NET Framework 3.5 SP1 and Visual Studio 2008 SP1 - take advantages of the latest developer tools. &lt;/li&gt;    &lt;li&gt;Support for Windows Server 2008 and SQL Server 2008 &amp;#8211; full support of Hyper-V, and increased performance and scale.&lt;/li&gt;    &lt;li&gt;EDI - enhanced out of the box support for the most commonly used EDI schema and trading partner management tools.&lt;/li&gt;    &lt;li&gt;Simplify development of mobile applications that expose relevant, real-time business information (RFID Mobile).&lt;/li&gt;    &lt;li&gt;ALM &amp;#8211; new support is provided for Team Foundation Server (TFS), allowing development teams to leverage the integrated source control, bug tracking, support for team development, Project Server integration and support for automating builds via MSBuild.&lt;/li&gt;    &lt;li&gt;Enhanced Developer Productivity &amp;#8211; improved underlying project system enhances debugging support for artifacts, pipeline components and orchestrations, and enables support for unit testing.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;To get the new bits from BizTalk: &lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=218"&gt;https://connect.microsoft.com/site/sitehome.aspx?SiteID=218&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To get the new bits from ESB 2.0: &lt;a href="http://www.codeplex.com/esb"&gt;http://www.codeplex.com/esb&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6777290" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk/default.aspx">BizTalk</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2009/default.aspx">BizTalk 2009</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/ESB/default.aspx">ESB</category></item><item><title>WCF 4.0 Building WCF Services with WF in .NET 4.0</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/29/wcf-4-0-building-wcf-services-with-wf-in-net-4-0.aspx</link><pubDate>Wed, 29 Oct 2008 12:23:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6723412</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6723412</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/29/wcf-4-0-building-wcf-services-with-wf-in-net-4-0.aspx#comments</comments><description>&lt;P&gt;Today I was at the session WCF 4.0 Building WCF Service with WF in .NET 4.0&lt;/P&gt;
&lt;P&gt;Many new and very interesting features are being built into WCF &amp;amp; WF 4.0.&lt;/P&gt;
&lt;P&gt;Nowadays in WF it's kind of challenging to make a choice between synchronous and a-synchronous:&lt;/P&gt;
&lt;P&gt;Synchronous = Simple to author and maintain performs poorly &lt;BR&gt;Asynchronous = Performs well call can be made in parallel, difficult to author and maintain&lt;/P&gt;
&lt;P&gt;WF / WCF 4.0 makes that live a bit easier. The configuration and development in WF 4.0 to call asynchronous services is quite a lot easier (Soon with examples!)&lt;/P&gt;
&lt;P&gt;The designer for configuring endpoints and WCF activities looks a bit smoother. As far as I can see it 'pre-scans' the *.config file which endpoint to choose, or create your new endpoint.&lt;/P&gt;
&lt;P&gt;Correlation is now also with content, so you can relate to values inside the message. You can still use the contexttoken (as in .NET 3.5) but now you have the option to do xpath queries and select based on which kind of content you would like to continue the instance. Only I question myself why xpath? Can't I use objects since it's a datacontract? (Maybe later more info on this.)&lt;/P&gt;
&lt;P&gt;Also I saw a live demonstration on Dublin the new hosting platform for WF. Dublin is an extension on IIS. It's some very cool features like:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Routing connect the right message with the correct version &lt;/LI&gt;
&lt;LI&gt;monitor al running workflows (with tracking enabled), restart, stop &lt;/LI&gt;
&lt;LI&gt;Lookback workflows &lt;/LI&gt;
&lt;LI&gt;See event details on activities in the tracking tool &lt;/LI&gt;
&lt;LI&gt;More info will come soon. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Conclusion very cool times ahead for WF and WCF.&lt;/P&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6723412" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/PDC+2008/default.aspx">PDC 2008</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/WWF/default.aspx">WWF</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category></item><item><title>Architecting and more in-depth information about Cloud Services / Azure</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/29/architecting-and-more-in-depth-information-about-cloud-services-azure.aspx</link><pubDate>Wed, 29 Oct 2008 01:25:04 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6723557</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6723557</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/29/architecting-and-more-in-depth-information-about-cloud-services-azure.aspx#comments</comments><description>&lt;p&gt;From the session Architecting Cloud Services at the &lt;a href="http://www.microsoftpdc.com"&gt;PDC 2008&lt;/a&gt;. Not only which design consideration you might want to take, there's also a lot of more in-depth information about how Windows Azure works is designed.&lt;/p&gt;  &lt;p&gt;Yesterday I blogged about the &lt;a href="http://conducido.nl/blog/2008/10/27/windows-azure-announced-on-pdc-2008/"&gt;announcement of Windows Azure&lt;/a&gt;, and the insight of Azure comes more and more clear. The SDK it out so the information is dropping in step by step.&lt;/p&gt;  &lt;p&gt;I think Windows Azure is more then just a Cloud Service. It's remote hosting. All your applications which do something with the Web, can be hosted in the cloud.&lt;/p&gt;  &lt;p&gt;The bold and underlines remarks are questions I try to answer later on, because these question I have as well.&lt;/p&gt;  &lt;p&gt;I'm sorry that this blogpost seems a bit '&lt;em&gt;stacato' &lt;/em&gt;they are almost a direct note of my sessionnotes.&lt;/p&gt;  &lt;p&gt;A nice thing about Windows Azure is that it does '&lt;em&gt;eat you own dogfood' , &lt;/em&gt;for example the storage service makes use of Windows Azure.&lt;/p&gt;  &lt;p&gt;So what are characteristics of Cloud computing?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scale-out not scale-up &lt;/li&gt;    &lt;li&gt;Add and remove capacity on demand &lt;/li&gt;    &lt;li&gt;Pay for what you use as you go &lt;/li&gt;    &lt;li&gt;Automation is key to reducing cost &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Windows Azure goal is to automate life cycle as much as possible&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;As a developer you develop your service, then you get your Azure service provisioned, after that Azure helps you to pick up your code.      &lt;br /&gt;Like:       &lt;ul&gt;       &lt;li&gt;Mapping and deploying to actual hardware &lt;/li&gt;        &lt;li&gt;Network configuration &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Maintain goal state:      &lt;ul&gt;       &lt;li&gt;Monitoring (Done by Azure) &lt;/li&gt;        &lt;li&gt;React to events &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Service model Guides Automation      &lt;ul&gt;       &lt;li&gt;Describes service as distributed entities          &lt;ul&gt;           &lt;li&gt;Authored by service developer &lt;/li&gt;            &lt;li&gt;Configured by service deployer &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Logical description of the services          &lt;ul&gt;           &lt;li&gt;Same model used for testing and production              &lt;ul&gt;               &lt;li&gt;Where is development / test / staging (user acceptance test environment) / production?                  &lt;br /&gt;WJC: As far as I can see at this moment there's only staging and production. &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Windows Azure Service Model elements      &lt;br /&gt;Just a bit like WCF these are the elements which needs to defined in some sort of way.       &lt;ul&gt;       &lt;li&gt;Service          &lt;ul&gt;           &lt;li&gt;That's the set of roles, groups and channels &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;Role &lt;/li&gt;        &lt;li&gt;Group &lt;/li&gt;        &lt;li&gt;Endpoint &lt;/li&gt;        &lt;li&gt;Channel &lt;/li&gt;        &lt;li&gt;Interface &lt;/li&gt;        &lt;li&gt;Contract? &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Update domain dictate the order of how the updates are being, this gives you the control which what to and when to update. Even rollback en rollforward.&lt;/p&gt;  &lt;p&gt;Dynamic Configuration Settings&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;There is no registry for services &lt;/li&gt;    &lt;li&gt;Application configuration settings are declared by the developer (declarative) and can be set finally by the deployer &lt;/li&gt;    &lt;li&gt;System configuration Settings      &lt;ul&gt;       &lt;li&gt;Pre-declared, same kinds for all roles &lt;/li&gt;        &lt;li&gt;Assigned by the system. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Windows Azure Automation&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Fabric Controller (This is the brain of the system)      &lt;ul&gt;       &lt;li&gt;Maps declarative service specs to available resources &lt;/li&gt;        &lt;li&gt;Manages service life cycle starting from bare metal &lt;/li&gt;        &lt;li&gt;Maintains system health and satisfies SLA &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;What's special about it?      &lt;ul&gt;       &lt;li&gt;Model driven service management &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Windows Azure push button deployment      &lt;ul&gt;       &lt;li&gt;This is a an almost automated process, there's some manual intervention needed, for example assign the fault domains and the update domains &lt;/li&gt;        &lt;li&gt;It's can send an message back when an update failed and will rollback. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There's a medium trust code access policy.&lt;/p&gt;  &lt;p&gt;Windows Azure is designed highly available.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Network redunded designed &lt;/li&gt;    &lt;li&gt;Services are deployed across fault domains &lt;/li&gt;    &lt;li&gt;Load balancers route traffic to active nodes only &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;A thing to think about is how Microsoft is going to manage updates on the cloud servers. In some cases it might happens that an update depreciated some code of you. At this moment only security patches are being applied. But I'm very curiously about the strategy for updating.&lt;/u&gt;&lt;/strong&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The roadmap:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure PDC release:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Automated service deployment from bare metal &lt;/li&gt;    &lt;li&gt;Subset of service model simple set of service templates &lt;/li&gt;    &lt;li&gt;Changing number of running instances &lt;/li&gt;    &lt;li&gt;Simple service upgrades or downgrades &lt;/li&gt;    &lt;li&gt;Automated service failure discovery and recovery &lt;/li&gt;    &lt;li&gt;Hardware management &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;2009+:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Expose more of underlying service model &lt;/li&gt;    &lt;li&gt;Richer service lifecycle managing &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Design considerations when developing a Cloud hosted Service / Application&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Characteristics of Cloud computing&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scale-out not scale-up &lt;/li&gt;    &lt;li&gt;Add and remove capacity on demand &lt;/li&gt;    &lt;li&gt;Pay for what you use as you go &lt;/li&gt;    &lt;li&gt;Automation is key to reducing costs &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Cloud services design considerations&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Failure of any given node is expected      &lt;ul&gt;       &lt;li&gt;View each node as a cache &lt;/li&gt;        &lt;li&gt;State has to be replicated &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;No one-time install step      &lt;ul&gt;       &lt;li&gt;Application need to reinitialize on restarts &lt;/li&gt;        &lt;li&gt;Do not assume previous local state is available          &lt;ul&gt;           &lt;li&gt;You have to create some sort of state management, because you can't do any asumptions on in &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Configuration changes due to load or failures      &lt;ul&gt;       &lt;li&gt;Handle dynamic configuration changes &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Services are always running      &lt;ul&gt;       &lt;li&gt;Service rolling upgrades/downgrades &lt;/li&gt;        &lt;li&gt;Services must handle data schema changes &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Services are built using multiple nodes/roles      &lt;ul&gt;       &lt;li&gt;Document your Service Architecture &lt;/li&gt;        &lt;li&gt;Document your communication paths of elements          &lt;br /&gt;Other wise nobody doesn't what where, why and how. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Services can grow very large      &lt;ul&gt;       &lt;li&gt;Careful state management at scale is needed          &lt;ul&gt;           &lt;li&gt;Some should be available as standard with Azure. &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Benefits of adhering to Windows Azure Design Point    &lt;br /&gt;What does Azure does for you?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Azure manages services not just servers      &lt;ul&gt;       &lt;li&gt;Tell it what you want and it will automate the details          &lt;ul&gt;           &lt;li&gt;Please show me more of that :-) &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;      &lt;ul&gt;       &lt;li&gt;System manages services, nodes and network &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Automates service life-cycle management &lt;/li&gt;    &lt;li&gt;Consider where to focus on      &lt;br /&gt;&lt;strong&gt;&lt;u&gt;If your service becomes big, what is better / more cost effective. Invest in usage or just scale-our.&lt;/u&gt;&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;&lt;u&gt;But this is also very depended of the pricing model Microsoft is going to have.&lt;/u&gt;&lt;/strong&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So this is again really a lot of information, but it sounds promising, blog ya soon :-)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6723557" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/PDC+2008/default.aspx">PDC 2008</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Azure/default.aspx">Azure</category></item><item><title>A first look into Oslo and more insight to "M"</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/29/a-first-look-into-oslo-and-more-insight-to-quot-m-quot.aspx</link><pubDate>Tue, 28 Oct 2008 23:24:36 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6723580</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6723580</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/29/a-first-look-into-oslo-and-more-insight-to-quot-m-quot.aspx#comments</comments><description>&lt;p&gt;While being at the &lt;a href="http://www.microsoftpdc.com/"&gt;PDC 2008&lt;/a&gt;, a got a first approach on Oslo.&lt;/p&gt;  &lt;p&gt;In short Oslo is a large modelling environment which has connections to almost every aspect of .NET development. This seems kind of radical and it probably is. The whole of it still has to be processed in my brains (Which is now running double overtime :-) )&lt;/p&gt;  &lt;p&gt;The Oslo platform can be divided in:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&amp;quot;M&amp;quot;      &lt;br /&gt;This is the language where the textual DSL magic happens. &lt;/li&gt;    &lt;li&gt;&amp;quot;Quadrant&amp;quot;      &lt;br /&gt;The tool for authoring the model visually. &lt;/li&gt;    &lt;li&gt;Repository      &lt;br /&gt;For the storage of the models which has been created. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So much magic happens at this moment in the M language. It's used to build your textual DSLs.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Textual what?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Yes what I was used to was DSL with squares, round, connectors etc etc. (Singleminded me :-) ) It's kind of cool and also a bit complex. You create your DSL with the M language.&lt;/p&gt;  &lt;p&gt;After that you have you environment (Maybe even pseudo language) to give input to your domain model.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More about &amp;quot;M&amp;quot;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;See an example of the &amp;quot;M&amp;quot; language:&lt;/p&gt;  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 250px; background-color: #f4f4f4"&gt;   &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;     &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;module&lt;/span&gt; Microsoft.Samples &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; { &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;   type MusicItem &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;   { &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;     Id: Integer64 = AutoNumber(); &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     Album : Text; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     Artist : Text; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     Rating : Integer32 &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; &lt;span style="color: #0000ff"&gt;value&lt;/span&gt; &amp;lt;= 3; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;   } &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; &lt;span style="color: #0000ff"&gt;identity&lt;/span&gt; Id; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;#160; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;   MusicLibrary :MusicItem*; &lt;/pre&gt;

    &lt;p&gt;&lt;/p&gt;

    &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; }&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In short: &amp;quot;M&amp;quot; is a language for defining domain models and a textual DSL.&lt;/p&gt;

&lt;p&gt;M domain models define schema and query over structured data&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Values, Constraints, and Views &lt;/li&gt;

  &lt;li&gt;Natural projection to SQL &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So now we know what it is what is it not:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;An object oriented language &lt;/li&gt;

  &lt;li&gt;A data access technology &lt;/li&gt;

  &lt;li&gt;A replacement for T-SQL &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The M Framework&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;M is itself implemented as M DSL 
    &lt;ul&gt;
      &lt;li&gt;Parser exposed using M DSL machinery &lt;/li&gt;

      &lt;li&gt;Type flow exposed as framework component &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;SDK ships with an evaluator(MrEPL) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;So lot's of new stuff :-)&lt;/p&gt;

&lt;p&gt;Also check out my colleague &lt;a href="http://mheijman.blogspot.com/"&gt;Michel Heijman&lt;/a&gt; about his &lt;a href="http://mheijman.blogspot.com/2008/10/first-contact-with-oslo.html"&gt;first contact with Oslo&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6723580" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/PDC+2008/default.aspx">PDC 2008</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Oslo/default.aspx">Oslo</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/M/default.aspx">M</category></item><item><title>Simplified hosting experience with 'Dublin'</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/28/simplified-hosting-experience-with-dublin.aspx</link><pubDate>Tue, 28 Oct 2008 01:03:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6723604</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6723604</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/28/simplified-hosting-experience-with-dublin.aspx#comments</comments><description>&lt;p&gt;I'm now in the session on the &lt;a href="http://www.microsoftpdc.com/"&gt;PDC 2008&lt;/a&gt;: WF 4.0 A first look. Just laying on my chair the leaflet: .NET Framework 4.0 Windows Communication Foundation and Windows Workflow Foundation&lt;/p&gt;  &lt;p&gt;In that leaflet there was a very nice announcement: &lt;strong&gt;Windows Server Dublin&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;What's Windows Server Dublin?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&amp;quot;Simplified hosting Experience with Dublin      &lt;br /&gt;&lt;/strong&gt;Windows Server 'Dublin' technologies provide the .NET 4.0 developer with a standard host for WCF and WF application. 'Dublin' will allow you to host your workflow using pre-built developer services in a robust scalable environment - freeing you from writing your own host environment&amp;quot;&lt;/p&gt;  &lt;p&gt;Woehooo, that's makes my very happy, it seems that the Workflow Foundation environment gets more and more mature.&lt;/p&gt;  &lt;p&gt;This is working together with Visual Studio 10 &amp;amp; .NET Framework 4.0, unfortunately this might take a while before it's really in production. But he it's really worth waiting for.&lt;/p&gt;  &lt;p&gt;Found in the announcements (All are very good news and make me even more curious to get my hands on it.)&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q: Will &amp;#8220;Dublin&amp;#8221; support existing applications built on the .NET Framework? What should customers and partners do today to prepare?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A: Yes. &amp;#8220;Dublin&amp;#8221; will continue to provide backward compatibility for existing Windows Workflow Foundation and Windows Communication Foundation applications. Customers can confidently begin building applications on top of both Windows Server 2008 and .NET Framework 3.5 today, with assurances that those applications will enjoy the benefits of &amp;#8220;Dublin&amp;#8221; when it becomes available.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q: What are the customer benefits of the using Windows Communication Foundation and Windows Workflow Foundation with &amp;#8220;Dublin&amp;#8221;?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A: The 4.0 release of .NET Framework represents the second generation of the Windows Communication Foundation and Windows Workflow Foundation technologies. For the .NET developer, the 4.0 enhancements include these:&lt;/p&gt;  &lt;p&gt;- Simplified coordination of work    &lt;br /&gt;- Ability to express applications and services in a way that makes sense to individual teams and businesses     &lt;br /&gt;- A framework for durable, long-running applications and services&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q: Will &amp;#8220;Dublin&amp;#8221; work with the &amp;#8220;Oslo&amp;#8221; modeling platform technologies?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A: Yes. &amp;#8220;Dublin&amp;#8221; will be the first Microsoft server product to deliver support for the &amp;#8220;Oslo&amp;#8221; modeling platform. &amp;#8220;Dublin&amp;#8221; does not require &amp;#8220;Oslo&amp;#8221; to operate and provide benefits of hosting .NET applications; however, administrators will be able to deploy applications from the &amp;#8220;Oslo&amp;#8221; repository directly to the &amp;#8220;Dublin&amp;#8221; application server. &amp;#8220;Dublin&amp;#8221; provides model-driven &amp;#8220;Oslo&amp;#8221; applications with a powerful runtime environment out of the box.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Q: Will &amp;#8220;Dublin&amp;#8221; work with Microsoft BizTalk Server&amp;#8217;s enterprise connectivity services?&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;A: Yes. The integration server and application server workloads are distinct but complementary; customers want to be able to deploy them separately as needed to support their distinct requirements. For example, customers that don&amp;#8217;t need the rich line-of-business (LOB) or business-to-business (B2B) connectivity provided by an integration server will deploy the Windows Server application server to host and manage middle-tier applications. Likewise, customers that need to connect heterogeneous systems across an enterprise, but don&amp;#8217;t need to develop and run custom application logic, will deploy BizTalk Server. When customers need both capabilities, &amp;#8220;Dublin&amp;#8221; and BizTalk Server will work together nicely.&lt;/p&gt;  &lt;p&gt;See also: &lt;a href="http://www.microsoft.com/NET/Dublin.aspx"&gt;Windows Server Application Server Roadmap&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6723604" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/PDC+2008/default.aspx">PDC 2008</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/WWF/default.aspx">WWF</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Dublin/default.aspx">Dublin</category></item><item><title>Windows Azure announced on PDC 2008</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/27/windows-azure-announced-on-pdc-2008.aspx</link><pubDate>Mon, 27 Oct 2008 18:54:10 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6723618</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6723618</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/27/windows-azure-announced-on-pdc-2008.aspx#comments</comments><description>&lt;p&gt;Together with my colleague &lt;a href="http://mheijman.blogspot.com/"&gt;Michel Heijman&lt;/a&gt; I was at the keynote speech of the &lt;a href="http://www.microsoftpdc.com/"&gt;PDC 2008&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I've to admit the name has been kept very well a secret, of course you could expect that Microsoft would&amp;#160; do far more with BizTalk Services / Workflow Services.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;So what is &lt;/u&gt;&lt;/strong&gt;&lt;a href="http://www.microsoft.com/azure/default.mspx"&gt;&lt;strong&gt;Windows Azure&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&lt;u&gt;?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure is the collection of &amp;quot;&lt;em&gt;Cloud Services&amp;quot; &lt;/em&gt;It's included: Live Services, Microsoft .NET Services (BizTalk- and Workflow Services), Microsoft SharePoint Services, Microsoft Dynamics CRM Services&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img title="The Cloud Computing and Services Platform Diagram" height="235" alt="The Cloud Computing and Services Platform Diagram" src="http://www.microsoft.com/azure/images/servicesPlatform.jpg" width="509" border="0" /&gt;&lt;/p&gt;  &lt;p&gt;This was certainly to expected but it's cool to see how this vision gets more and more concrete.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;What is a Cloud Service?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A Cloud service gives you the opportunity to host your (custom)application/process) in a hosted environment. Software+Services (SAAS) vision has been there for a while. In my opinion it kept for a long time as '&lt;em&gt;vaporware&lt;/em&gt;'. Why? Because it's going to give a lot of added value to Businesses. (See the possibilities to get a Exchange online as a smaller company, connect that with Windows Mobile and you could go endless with the possibilities.)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Why host your application?&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;No more data centers, putting much efforts in managing servers etc etc etc.    &lt;br /&gt;The technical preview of Windows Azure has been released as we speak.     &lt;br /&gt;It promises to be some interesting time.&lt;/p&gt;  &lt;p&gt;The final launch might take some time. But Microsoft has the intention to continuously give new bits to the community. But the want to exceed '&lt;em&gt;beta quality&lt;/em&gt;'', so the first preview will not be a playing ground. :-)&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Some other cool remarks:&lt;/u&gt;&lt;/strong&gt;     &lt;br /&gt;Azure will support the following languages:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;.NET &lt;/li&gt;    &lt;li&gt;Native code(not in CTP) &lt;/li&gt;    &lt;li&gt;PHP(not in CTP) (I never expected this, but it extends the interoperability by far.) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;See more at: &lt;a title="http://www.microsoft.com/azure/default.mspx" href="http://www.microsoft.com/azure/default.mspx"&gt;http://www.microsoft.com/azure/default.mspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6723618" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/PDC+2008/default.aspx">PDC 2008</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Azure/default.aspx">Azure</category></item><item><title>Meet me at the Professional Developers Conference 2008</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/11/meet-me-at-the-professional-developers-conference-2008.aspx</link><pubDate>Sat, 11 Oct 2008 15:55:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6724373</guid><dc:creator>wouterc</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6724373</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/11/meet-me-at-the-professional-developers-conference-2008.aspx#comments</comments><description>&lt;P&gt;This year (from October&amp;nbsp; 27-30) I'll be attending the &lt;A href="http://www.microsoftpdc.com/" target=_blank mce_href="http://www.microsoftpdc.com/"&gt;Microsoft PDC&lt;/A&gt; hosted at Los Angeles. Especially for my field of work a lot of interesting topics will come up over there. So I hope to get more insight of Oslo, WF etc. :-) If you want to meet me there just drop me note.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoftpdc.com/" mce_href="http://www.microsoftpdc.com/"&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height=204 alt=BlingPDC2008 src="http://weblogs.asp.net/blogs/woutercrooy/WindowsLiveWriter/MeetmeattheProfessionalDevelopersConfere_FB26/BlingPDC2008_3.jpg" width=148 border=0 mce_src="http://weblogs.asp.net/blogs/woutercrooy/WindowsLiveWriter/MeetmeattheProfessionalDevelopersConfere_FB26/BlingPDC2008_3.jpg"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;DIV class=wlWriterSmartContent id=scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f3d165f9-7ed0-4787-990f-a09aa3bf46fd style="PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px"&gt;Technorati tags: &lt;A href="http://technorati.com/tags/PDC" rel=tag mce_href="http://technorati.com/tags/PDC"&gt;PDC&lt;/A&gt;&lt;/DIV&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6724373" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/PDC+2008/default.aspx">PDC 2008</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Events/default.aspx">Events</category></item><item><title>Pageflow now available on Codeplex</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/10/01/pageflow-now-available-on-codeplex.aspx</link><pubDate>Wed, 01 Oct 2008 09:05:59 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6724398</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6724398</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/10/01/pageflow-now-available-on-codeplex.aspx#comments</comments><description>&lt;p&gt;Finally I got the '&lt;em&gt;Go&lt;/em&gt;' for putting pageflow on &lt;a href="http://www.codeplex.com" target="_blank"&gt;Codeplex&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;This is a great step forward for putting '&lt;em&gt;private' &lt;/em&gt;changes to the public. It this moment only the source is on Codeplex. When I got more time. I'll try to make a release with the Visual Studio templates. Also Visual Studio 2008 support is under it's way.&lt;/p&gt;  &lt;p&gt;You can find the source @ &lt;a href="http://www.codeplex.com/PageflowWF" target="_blank"&gt;http://www.codeplex.com/PageflowWF&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f214eb32-f4ea-4c51-bd83-491909f4740e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/Workflow%20Foundation" rel="tag"&gt;Workflow Foundation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WF" rel="tag"&gt;WF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Pageflow" rel="tag"&gt;Pageflow&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6724398" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/WWF/default.aspx">WWF</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Pageflow/default.aspx">Pageflow</category></item><item><title>Evolutionary SOA</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/09/18/evolutionary-soa.aspx</link><pubDate>Wed, 17 Sep 2008 22:41:23 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6724401</guid><dc:creator>wouterc</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6724401</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/09/18/evolutionary-soa.aspx#comments</comments><description>&lt;p&gt;A view days ago I read a very interesting blogpost from &lt;a href="http://martinfowler.com/bliki/" target="_blank"&gt;Martin Fowler&lt;/a&gt; about an &lt;a href="http://martinfowler.com/bliki/EvolutionarySOA.html" target="_blank"&gt;Evolutionary SOA&lt;/a&gt;. Which is a very interesting topic.     &lt;br /&gt;    &lt;br /&gt;The main question Martin Fowler asks is whether a SOA can be done on a Agile/XP way.&lt;/p&gt;  &lt;p&gt;&lt;u&gt;&lt;strong&gt;I think it can be done.&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p&gt;If you want to start with an Service Oriented Architecture, start with baby steps (see also a post about &lt;a href="http://www.infoq.com/interviews/jim-webber-qcon-london"&gt;Guerilla SOA&lt;/a&gt;.) Quite often I see the that a lot of components are build as a service. But services only have one consumer at development time (And will have much longer.) At the moment an components starts to represent a service delivered as a '&lt;em&gt;physique service'&lt;/em&gt;, that's the moment to start adding services. And no SOA isn't '&lt;em&gt;just a bunch of services'&lt;/em&gt;. So just adding a xml-something interface doesn't make it better useable, if you don't need it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Can a service evolve an a Agile/XP way?      &lt;br /&gt;&lt;/strong&gt;Yes it can, but changing your Interface contract on a frequent base, doesn't&amp;#160; make the consumer of your service very happy. It can be handy to implement &lt;a href="http://msdn.microsoft.com/en-us/library/bb286659.aspx" target="_blank"&gt;Consumer Driven Contracts&lt;/a&gt;.     &lt;br /&gt;If you use BizTalk the &lt;a href="http://technet.microsoft.com/en-us/library/bb798128.aspx" target="_blank"&gt;WCF LOB Adapter SDK&lt;/a&gt; can be a help. (And can also be used without BizTalk). Within WCF there's support for the &lt;a href="http://msdn.microsoft.com/en-us/library/ms733816.aspx" target="_blank"&gt;Extensible object&lt;/a&gt;. What happens is that upfront the service is designed with options to extend the interface contract. So consumers who wishes not to upgrade to your newest contract version, can still use the service as of before, but newer consumers can make use of the extension classes.&lt;/p&gt;  &lt;p&gt;Those were my 2 cents. Any other ideas please feel free to share them.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1b08457f-a04e-476a-90ef-8fddd3a73537" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Architecture" rel="tag"&gt;Architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Evolutinary%20SOA" rel="tag"&gt;Evolutinary SOA&lt;/a&gt;&lt;/div&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6724401" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/SOA/default.aspx">SOA</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Working with Fault messages &amp; BizTalk 2006 R2</title><link>http://weblogs.asp.net/woutercrooy/archive/2008/08/27/working-with-fault-messages-amp-biztalk-2006-r2.aspx</link><pubDate>Wed, 27 Aug 2008 16:58:51 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6724418</guid><dc:creator>wouterc</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/woutercrooy/rsscomments.aspx?PostID=6724418</wfw:commentRss><comments>http://weblogs.asp.net/woutercrooy/archive/2008/08/27/working-with-fault-messages-amp-biztalk-2006-r2.aspx#comments</comments><description>&lt;p&gt;A while ago I needed for several request/response orchestrations to create a fault message.&lt;/p&gt;  &lt;p&gt;When an exception occurs in an orchestration it'll timeout and won't send a soap fault message. At least what you want to do is send a message that something went wrong. In my case I wanted to send the detailed exception as well.&lt;/p&gt;  &lt;p&gt;I found several sources on the Internet but they weren't all that complete.&lt;/p&gt;  &lt;p&gt;My scenario works at least for the following scenario:    &lt;br /&gt;I have a request/response orchestration, hosted as WCF receiveport. All underlying webservices are WCF hosted services.&lt;/p&gt;  &lt;h2&gt;The Fault messaging howto    &lt;br /&gt;&lt;/h2&gt;  &lt;p&gt;Btw, this howto assumes some basic knowledge of BizTalk 2006 R2 and WCF&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;First your orchestration needs to be long running. This is due to the fact that the send port is encapsulated by an atomic scope.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Create an scope were all 'the magic' happens. (see screenshot)      &lt;br /&gt;&lt;img height="395" alt="" src="http://conducido.nl/blog/wp-content/uploads/2008/08/082708-1655-workingwith1.png" width="490" /&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Now create the exception handler.      &lt;br /&gt;You can choose exception or in my case I choose SoapException.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Now create your request/response port. When that's done, give a sane name to the operation and right click to create a Fault message.      &lt;br /&gt;You can choose to create a string as fault message or something else. But a different approach can also be very handy.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;     &lt;div&gt;Create you own custom fault contract within WCF, example code:        &lt;br /&gt;[DataContract(Namespace = &amp;quot;http://mynamesapce/2008/08/Faults&amp;quot;, Name = &amp;quot;OperationFault&amp;quot; )]         &lt;br /&gt;&lt;/div&gt;      &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 98.34%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; height: 250px; background-color: #f4f4f4"&gt;       &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;         &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;sealed&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; OperationFault&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;{&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; _message = String.Empty;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// Creates a new, uninitialized instance.&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; OperationFault()&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    {&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// Creates a new instance.&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; OperationFault(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; message)&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    {&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;        _message = message;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// Creates a new instance.&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; OperationFault(Exception error)&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    {&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (error != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;        {&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;            _message = error.Message;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;        }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&amp;#160;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// Gets or Sets the message&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    [DataMember]&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Message&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;    {&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;        get { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; _message; }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;        set { _message = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;; }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;    }&lt;/pre&gt;

        &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;}&lt;/pre&gt;
      &lt;/div&gt;
    &lt;/div&gt;

    &lt;br /&gt;

    &lt;br /&gt;

    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Create a message within the orchestration and choose the OperationFault class as your message. 
    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;Assign the message to the Fault port. 
    &lt;br /&gt;&lt;/li&gt;

  &lt;li&gt;
    &lt;div&gt;Now comes the part were we take a look at the exception scope handler. If we look at the scope exception handler below: 
      &lt;br /&gt;This is the send share with the atomic scope around: 

      &lt;p&gt;&lt;img alt="" src="http://conducido.nl/blog/wp-content/uploads/2008/08/082708-1655-workingwith2.png" /&gt;&lt;/p&gt;

      &lt;p&gt;&lt;img height="432" alt="" src="http://conducido.nl/blog/wp-content/uploads/2008/08/082708-1655-workingwith3.png" width="485" /&gt;&lt;/p&gt;

      &lt;p&gt;So if the send did not succeed. (e.g. An exception occurred earlier). At the moment the exception raises we need to construct the Fault message. 
        &lt;br /&gt;The code for the messageassignment looks like this:&lt;/p&gt;

      &lt;p&gt;FaultMessage = 
        &lt;br /&gt;&lt;/p&gt;
    &lt;/div&gt;

    &lt;p&gt;new MyNamespace.FaultContracts.OperationFault(soapException.Message + soapException.StackTrace);&lt;/p&gt;

    &lt;p&gt;Btw you can put any kind of message you like. 
      &lt;br /&gt;The extra decide is necessary to let the orchestration/compiler believe that the send only executes if the other didn't complete or didn't start. 

      &lt;br /&gt;The code for the decide:&lt;/p&gt;

    &lt;p&gt;!succeeded(&lt;strong&gt;TransactionName&lt;/strong&gt;)&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div&gt;Now you're done for the orchestration part!. So for a recap the complete orchestration (Sorry without the connected receive and send shapes.) 
      &lt;br /&gt;&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div&gt;If you make from the orchestration call to external webservices via WCF, don't forget to &lt;strong&gt;NOT&lt;/strong&gt; enable this setting: 

      &lt;br /&gt;&lt;/div&gt;

    &lt;p&gt;&lt;span style="text-decoration: underline"&gt;Propagate fault message.&lt;/span&gt; &lt;/p&gt;

    &lt;p&gt;&lt;/p&gt;
This options is used if you want to have separate handling of (typed)exceptions from a (wcf) webservice. Theirs only one disadvantage that you can't handle generic soapexception quite easy.

    &lt;p&gt;&lt;/p&gt;

    &lt;p&gt;&lt;img alt="" src="http://conducido.nl/blog/wp-content/uploads/2008/08/082708-1655-workingwith5.png" /&gt;&lt;span style="text-decoration: underline"&gt; 
        &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
  &lt;/li&gt;

  &lt;li&gt;On the consumer side of the BizTalk orchestration you can use the OperationFault class to catch the exception.&lt;span style="text-decoration: underline"&gt; 
      &lt;br /&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Sources 
  &lt;br /&gt;&lt;/h2&gt;

&lt;p&gt;I've to thank my former colleague: &lt;a href="http://www.linkedin.com/pub/4/67A/492"&gt;Fedor Haaker&lt;/a&gt; Together we implemented this kind of error handling. (Although he came up with operationfault solution.) 

  &lt;br /&gt;So big up for Fedor &lt;span style="font-family: wingdings"&gt;J&lt;/span&gt;&lt;/p&gt;

&lt;p style="margin-left: 36pt"&gt;&lt;/p&gt;

&lt;p style="margin-left: 36pt"&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=6724418" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/WCF/default.aspx">WCF</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk+2006+R2/default.aspx">BizTalk 2006 R2</category><category domain="http://weblogs.asp.net/woutercrooy/archive/tags/BizTalk/default.aspx">BizTalk</category></item></channel></rss>