Wednesday, October 04, 2006

Microsoft SOA and BPM Conference: Day 2

Today's presentations were more technical than yesterday and hit on a number of interesting topics.

My favorite presentations were about Windows Communication Foundation (WCF). First off, WCF looks like the answer to many of our solutions. Being able to implement a variety of communication transports with run time configuration is awesome. It's also going to be great to bring the WS-* protocols into the mainstream with direct support for BizTalk ports.

I picked up a few best practices that we'll have to be sure to follow:
  • Don’t plan on migrating to WCF. Plan on engineering new applications. The value of migrating is limited since existing applications ‘work’ and moving web services projects to WCF web services doesn’t really gain much.
  • When validating messages avoid ‘schema validation’ as it can be costly. Validating Data Contracts is preferable.
  • Protocols
    • BasicHTTP is for all HTTP and web services type communication except for if you need WS-*
    • WSHTTP is for WS-* web services communications
    • NetTCP is for fast, efficient communication (and is best for machine-to-machine within your .NET solution)
    • NetNamedPipes (I think it’s called) is best for service calls within the same machine
  • Add Fault Operations to the WSDL contracts
Lastly, I picked up a couple of answers to my standing questions around SOAP Faults and NULL parameter validation. On the SOAP Fault front the good news is that the WCF WSDL tools will support SOAP Faults which is a huge improvement over the current tools. With NULL parameter validation the answer seems to be to use a new group of .NET 2.0 data types within the System.Nullable namespace. These are effectively a bunch of value types that can be NULL which should bypass the fun behavior of .NET where it assigns default values for NULL parameters.

No comments: