Announcing  - June 2007 Community Release of ESB Guidance  –

By Marty Wasznicky
Field Program Manager, Connected Systems Division

In October of 2006, we announced the preview of the Microsoft ESB Guidance at Microsoft SOA Conference in Redmond. This consisted of the following which enabled Microsoft partners and customers to build large and small-scale ESB solutions:


*       Sample code built on BizTalk Server 2006

*       Architectural guidance, patterns and practices

*       Reusable BizTalk Server ESB and .NET components:

*       Dynamic Transformation Service

*       Dynamic End Point/Configuration Service

*       Itinerary based Routing & Service Invocation

*       ESB Portal

*       Exception Management framework

*       Namespace Resolution Service

*       JMS (Java Message Service) pipeline component (IBM JMS over WMQ) 


Since that time we’ve achieved significant momentum:


*       Several hundred requests for the ESB Guidance

*       Several dozen customers incorporating the guidance into their projects

*       Dedicated Microsoft ESB web site:

*       Dedicated Partner site for delivering the ESB Guidance:

*       Press on the ESB Guidance from the SOA conference





* (German)

* (Italian)


Due to the overwhelming demand and popularity of the ESB Guidance, we (the Connected Systems Division) and the Patterns and Practices group have agreed to jointly develop the ESB Guidance moving forward. 


As a result of the iteration of this partnership, we’ve released a new June Community Release build of the ESB Guidance on the new ESB Guidance community site, where all future iterations will be released here until our final release in October later this year. 


Although this June Community Release focused on bug fixes and refactoring the ESB Guidance for BizTalk 2006 R2, future releases will incorporate many new and augmented features such as:


*       UDDI publishing and richer resolution options

*       WS-MetadataExchange

*       Enhanced ESB Portal and Exception Mediation

*       Request-Response support for on and off ramps

*       WCF Adapter integration

*       New Samples and Guidance

*       Third party SOA Management and Governance integration:

*       Amberpoint Integration

*       SOA Software Integration


Through our partnership with Patterns and Practices, we hope to raise the bar of quality and build an extended community to support our customers as they move forward with the ESB Guidance.


With the Patterns and Practices partnership, we incur the benefit of having Don Smith (Product Manager for Patterns & Practices – ) take an active role in owning the ESB Guidance Community.  I will be coordinating feature development and community release schedules with Don, ensuring community feedback is incorporated into the ESB Guidance.


Please download the latest Community Release and provide us feedback.  We will be monitoring the discussion forums on the site. 


A more thorough description of the June Community Release can be found below.





About the June 2007 Community Release

This release focuses on refactoring the CTP build to accommodate the augmentation of existing features, as well as the addition of new features to be included within the final release targeted for October 2007.

Some of the changes for this release are:

·         The project namespace changes from Microsoft.BizTalk.ESB to Microsoft.Practices.ESB

·         All schemas follow W3C schema conventions for namespace, such as

·         Installation scripts and instructions for manual installation are provided

·         All samples now install into the GlobalBank.ESB BizTalk application instead of their own individual applications

·         The following components have been rebuilt to work with the BizTalk Server 2006 R2 Beta 2 and Release Candidate builds:

       JMS Pipeline Component

       Namespace Pipeline Component

       Exception Management API, InfoPath form and Pipeline component

       Transformation Service, Helper and Agent

       JMS Samples

       Exception Management Samples

       Namespace Samples

·         This release contains several updates to integrate with .NET version 3.0:

       The Transformation Service is exposed as both an ASMX and a WCF service

       The Exception Management Fault Service is exposed as both an ASMX and a WCF service

       The UDDI helper class now uses native WCF calls and the features of .NET version 3.0. There is no longer a dependency on the Microsoft UDDI service (Microsoft.Uddi.dll)

·         There are a number of fixes for components and services included in this release. For more details, see:

       Fixes for the Exception Management API

       Fixes for the Transformation Service

       Fixes for the JMS Component

       Fixes for the Namespace Component

       Fixes for the SetContext Component


Note: Although all other components in this release will compile and work with BizTalk Server R2, they still require some re-work. In addition, the ESB Exception Portal does not change in this release, and therefore the Exception Management Framework has not been tested with the older portal. The next community release will contain a prototype of the new portal.

Fixes for the Exception Management API

·         The Exception Management API now supports exceptions that occur in child orchestrations executed using the CALL shape. For example:

       Orchestration A calls Orchestration B

       Orchestration B contains exception handling code that invokes the CreateFaultMessage method and assigns a fault message

       An exception occurs in Orchestration B and the ESB Exception Framework should publish the message

       The execution path no longer fails and causes an error within the CreateFaultMessage method

·         InfoPath form rendering exceptions from the ESB Fault Processor pipeline no longer cause an error when scrolling through context properties

·         The ESB processor pipeline now includes whitespace support in the reader

·         The properties for the fault schema change in this release. There is no promotion of FaultDescription, and the description now accepts more than 255 characters

·         Extension of the existing property schema supports additional internal error information

·         The schema namespace changes, and the InfoPath template has been renamed

·         Class references replace the string references for the context property name and namespace used when accessing context properties

·         This release supports MIME-type detection for the body of a message

·         Failed Message Routing scenarios now support flat files and binaries

·         Streaming is implemented for large files

·         Correct identification of the send port now occurs in one way messaging scenarios

·         There is support for two-way messaging scenarios, such as the typical SOAP request-response cycle

·         All project versions are now

·         The native BTS stream libraries replace all custom streaming classes

·         A new ContextProperties class allows pipeline components to access property information

·         The orchestration time stamp in now expressed in UTC

·         A new WCF-based Web Service exposes fault information

·         All references to and the "bootcamp" namespaces in InfoPath schemas are removed

·         New scripts update the Resources folder in the BizTalk Server application, and generate an MSI based on the resource artifact files

·         Minor modifications to the code catch more exceptions, in particular by checking for null references

·         The component detects non-HTML and non-text content, and encodes these as base-64 strings

·         The reporting schema and InfoPath template now contain a MIME-type property

·         There is support for rendering the content of XML CDATA sections

·         The schema type for the content block within the reporting template changes from Any to CDATA


Fixes for the Transformation Service

·         The Transformation Service now throws a null exception if the mapName parameter is null.

·         The Transformation Service now has no dependency on the Microsoft UDDI service (Microsoft.Uddi.dll).


Fixes for the JMS Component

·         The strong name key file binding now occurs during the linking phase so that the Manifest phase does not invalidate the signature of the assemblies.

·         The component now uses the Microsoft.Practices.ESB.snk key file included with the source.

·         The JMS Sample uses a new Queue Manager name, and only four queues.


Fixes for the Namespace Component

·         The NamespaceException now inherits from ApplicationException, which corrects the issue where exceptions appear in the Event Log as "Reason: Unknown"

·         Corrections to processing of the ExtractionXPath property solve previous extraction issues

·         A new validation routine introduced prior to pipeline processing ensures that required properties are set at runtime

·         Regular expressions now check that separator property value is valid (or is empty), that namespaces are not in the reserved range (ns0 to ns6), and that the specified namespace prefix is alphanumeric

·         The component now checks that either the XPath or NamespaceBase property is set

·         The component now compares the existing and the new namespaces, and just returns the original message to the pipeline if they are the same

·         The component no longer raises an exception if the XPaths property is null, which allow the use of a static namespace if required

·         Various string comparisons carried out within the component have been corrected


Fixes for the SetContext Component

·         The component uses an updated namespaces for property schemas

·         The component now exposes EndpointUddiServer and MapUddiServer properties

·         The component now contains logic that ensures the value of a SOAP header is not overwritten by a property value provided in the pipeline instance rather than in the SOAP header

·         There are several new trace statements that output the resolved endpoint



Marty Wasznicky
Regional Program Manager – BizTalk Server
Connected Systems Division
Microsoft Corporation

MCSE, MCSD, MCDBA, CNE, MCTS in BizTalk 2004

333 S. Grand Ave., Suite 3300, Los Angeles, CA 90071

É213.806.7484È310.980.5495 š

BizTalk Server Webcasts:

BizTalk Server 2006 Virtual Labs:

BizTalk Server 2006 Trial Download:

BizTalk Server 2006 Home Page: