A while ago I did a blog
post on WCF-ASMX interoperability which came out from an experience I had in service collaboration with a partner. In a recent conversation
with Jeff Bergman, a friend
and co-worker, there was a question of WCF or not to WCF on a project which
requires similar service interop and since I believe in Atwood’s theory of strong opinions
held weekly, I jumped in with the opinion of using WCF contrary to my
own earlier recommendation.
Jeff of course disagreed and pointed out the Christian’s Weyer’s
article on flattening. For my excellent
logging and tracing in WCF argument, he stated that “for asmx, you can add the [SoapLoggerExtensionAttribute]
to get some kind of logging of soap requests”. Therefore I am quoting his argument below; I am still somewhat unconvinced 'in principle' but pragmatically speaking, he drives a hard bargain!
“At the end of the
day, I think the WCF architecture is powerful but with power comes complexity,
complexity in configuration files and complexity in the wsdl it generates and
complexity in the pipeline architecture and how you can plug into it.
As for Rest, the WCF
team has developed the MVC Rest SDK.
I prefer convention
over configuration and simplicity of code instead of injection as a general
principle.
My preference would to
be to use WCF in situations where you have more control over the client
(internal uses mainly) and want to support different communication
channels. At the end of the day when dealing with partners,
Interoperability is the biggest challenge and making things as simple to
consume as possible is desirable.”
Have you encountered an interop issue with your WCF service and
what has been your approach? Leave a comment or email me.
Happy Coding!