Biztalk and WCF – When two big beasts collide
I spent the entirety of last week trying to create a ridiculously simple Biztalk orchestration and trying to get it to talk to a simple WCF service and I thought I should describe what I “learned”.
Biztalk
If you follow me on Twitter you’ll know how unbelievably annoyed the results made me and although I didn’t learn much from the experience I thought I should put down some tips:
- If Biztalk gives you an error DO NOT read it, the message itself is bound to be utter jibberish and the correct response is to put it straight into Google.
- If Biztalk behaves like a problem is with step N don’t assume that step N-1 passed especially if step N-1 is a transformation. You can test the transformation in isolation within the IDE using a sample document so do it,
- If you are having real problems working out why Biztalk and WCF aren’t playing ball then it might well be XML namespaces that are the issue.
- If you’re thinking of renaming the orchestration or anything in it be careful and take a backup first. </ol> WCF
Whilst Biztalk left me cold the WCF side of it was a joy, mainly because Johnny Hall pointed me at the Castle WCF Facility and his own usages of it. Using the WCF Facility configuring your services is an utter joy, definitely when compared to the XML based approach that you get with bog-standard WCF. The documentation isn’t great but the tests that you get with the Castle source code are the real way to see how to use its fluent interface.
Johnny also suggested we use a console application to host the service when testing and a Windows Service when deploying for a real. The console application makes testing locally a lot easier, just CTRL+F5 and your host is loaded and ready for you to fire requests at it.
If only Biztalk was as enjoyable to use…
- If you are having real problems working out why Biztalk and WCF aren’t playing ball then it might well be XML namespaces that are the issue.
- If Biztalk behaves like a problem is with step N don’t assume that step N-1 passed especially if step N-1 is a transformation. You can test the transformation in isolation within the IDE using a sample document so do it,