BizTalk Server 2009 Now on MSDN

The latest edition of BizTalk Server is now available on MSDN.

The following editions are available for download (this may vary based on your MSDN subscription):

  • Developer Edition
  • Branch Edition
  • Standard Edition
  • Enterprise Edition

I only see the x86 version of each product available for download right now.

 

BizTalk Server 2009 has the following enhancements and improvements over the past version of BizTalk:

  • Support for .Net 3.5 SP1 and Visual Studios 2008 SP2
    • XSLT Debugger in Visual Studios
    • Support for Unit Tests in Visual Studios
    • Full Application Life Cycle Management
  • Windows 2008 and SQL 2008
  • Support for Hyper-V
  • New ESB Guidance 2.0
  • Mobile RFID
  • Updated and enhanced EDI, AS2, and SWIFT
  • New SQL Server Adapter

 

Important Notes:

  • BizTalk 2009 will support SQL 2005
  • HAT and HWS will be deprecated

 

In addition to BizTalk Server 2009, the 2009 Accelerators, 2009 Adapters for Host Systems, 2009 Line of Business Adapters, 2009 RFID, and 2009 Host Integration Server are also available.  These are all under the BizTalk Server 2009 section under Servers.

Accessing Extended Data from IExtensibleDataObject

[Source: http://geekswithblogs.net/EltonStoneman]

DataContract classes in WCF can be declared as implementing IExtensibleDataObject to provide in-built support for schema versioning. Any data contracts created through svcutil or Add Service Reference implement the interface, and it’s good practice to implement it for any custom DataContract classes you write. On deserializing, elements which are not declared in the data contract are extracted by the DataContractSerializer and added to the ExtensionDataObject property, so unexpected data is not lost (see Vagif Abilov’s blog post on backwards compatibility with IExtensibleDataObject).

Internally, the ExtensionDataMember holds a convoluted key-value collection of the unrecognised data members. If you want to inspect the contents of the collection it’s a fiddly process as the members are non-public, and the types and interfaces of the members (ExtensionDataMember and IDataNode) are also non-public. The code below allows you to extract the value of an ExtensionDataMember given its name:

private object GetExtensionDataMemberValue(IExtensibleDataObject extensibleObject, string dataMemberName)

{

object innerValue = null;

PropertyInfo membersProperty = typeof(ExtensionDataObject).GetProperty(“Members”, BindingFlags.NonPublic | BindingFlags.Instance);

IList members = (IList)membersProperty.GetValue(extensibleObject.ExtensionData, null);

foreach (object member in members)

{

PropertyInfo nameProperty = member.GetType().GetProperty(“Name”, BindingFlags.NonPublic | BindingFlags.Instance);

string name = (string) nameProperty.GetValue(member, null);

if (name == dataMemberName)

{

PropertyInfo valueProperty = member.GetType().GetProperty(“Value”, BindingFlags.NonPublic | BindingFlags.Instance);

object value = valueProperty.GetValue(member, null);

PropertyInfo innerValueProperty = value.GetType().GetProperty(“Value”, BindingFlags.Public | BindingFlags.Instance);

innerValue = innerValueProperty.GetValue(value, null);

break;

}

}

return innerValue;

}

Obviously this is fragile and isn’t appropriate for production solutions, but it can be useful for unit testing or debugging WCF calls, or when you want to confirm the effects of having data contracts which are out of sync between the service and the consumer. Similar code could be used to get the count of extended data members to identify if the DataContract schema is not the correct version, and interestingly, the value and innerValue properties are writeable, so you could update the contents of the unrecognised members.

BizTalk Server Orchestration Performance Webcast

I’ve just uploaded the second in a series of webcasts looking at calling web services from an orchestration in BizTalk Server 2009 to BloggersGuides.net. This one will start were the last webcast left off, and will look at improving the performance and lowering the latency of the orchestration. The correct use of parallel actions and atomic scope shape will be demonstrated, as these shapes are often misused by developers.
Thanks to the BizTalk people in Redmond I’ve got links to these webcasts added to the BizTalk Server Developer Centre. Despite moving to the Connected Systems Developer MVP track, BizTalk is still my favourite server product.
The link to the webcast is here.
I’ll be back after my vacation with another webcast, stay tuned…

Interview with Richard Seroter

I had the pleasure of taking part in Richard Seroter’s interview series this week http://seroter.wordpress.com/2009/04/02/interview-series-four-questions-with-ewan-fairweather/


Richard is one of our most prolific CSD bloggers and is a real asset to the MVP community.  I’ve had the pleasure of reviewing his upcoming book “SOA Patterns with BizTalk Server 2009” which is available for pre-order now.  For those of you who are architecting SOA applicaitons that are using BizTalk Server and related technologies Richard’s book is unmissable reading.  I will be publishing a full review of the book shortly. 


Richard has an overview of the book available on his blog at http://seroter.wordpress.com/2009/03/19/my-book-soa-patterns-with-biztalk-server-2009-is-up-for-pre-order/ 

WCF Fight Night

The team launched a micro-site highlighting the multi-faceted capabilities of WCF. As part of this effort, the site will be hosting three rounds of head-to-head competition. The first ’round’ was just recently posted to the site and up on YouTube. It’s a funny video, and worth the 3 minutes to watch.

The site highlights WCF’s capabilities as a multi-discipline technology for connecting applications both within the firewall and in the public interweb, and provides pointers for folks to learn more.

More videos are coming over the coming month; enjoy!