Earlier this week Microsoft had released the Wcf Interop Bindings and VS extension. You can download and try it from here.
Today I am proud to announce that the Wcf Binding Box supports these interoperability bindings.
What is the Wcf Binding Box?
It is an online bindings converter. You give it a binding configuration (e.g. WSHttpBinding) and it returns an equivalent custom binding.
Full explanation is here.
Why do we need it?
Because it's fun :) And also allows to take a working WSHttpBinding and further customize it with settings which it does not directly expose, for example MaxClockSkew.
How the interop bindings relate to this?
Suppose you use the interop bindings to author a Wcf service which WebLogic consumes. You may want to further configure your Wcf service with settings that the WebLogicBinding does not expose. Since the WebLogicBinding internally inherits from WSHttpBinding this is a similar use case to the original purpose of the binding box.
Put this WebSphere binding as the input in the binding box:
<bindings> <webSphereBinding> <binding name="interopBinding" messageEncoding="Text"> <security mode="MutualCertificate" establishSecurityContext="true" algorithmSuite="TripleDes" /> </binding> </webSphereBinding> </bindings>
and this is the custom binding output:
<customBinding> <binding name="NewBinding0"> <transactionFlow transactionProtocol="WSAtomicTransaction11" /> <security authenticationMode="SecureConversation" algorithmSuite="TripleDes" messageSecurityVersion="WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10"> <secureConversationBootstrap authenticationMode="MutualCertificate" requireSignatureConfirmation="true" algorithmSuite="TripleDes" messageSecurityVersion="WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12BasicSecurityProfile10" requireDerivedKeys="false" /> </security> <textMessageEncoding /> <httpTransport /> </binding> </customBinding>Check out the binding box here.