The following is a list of Windows Communication Foundation (read Indigo) changes from September CTP (beta 1) to November CTP (beta 2 RC0).
Most of them are name changes. Nevertheless, you will need to update at least configuration, since element/attribute naming there has changed quite a lot.
Class name changes:
- Fault<T> FaultException<T>
- UnknownFault UnknownFaultException
- ServiceSite InstanceContext
Parameters of [OperationBehaviour] attribute:
- AutoCompleteTransaction TransactionAutoComplete
- AutoEnlistTransaction TransactionScopeRequired
Other changes:
- ServiceHost<T> ServiceHost(typeof(T)>
Binding names:
- wsProfileBinding wsHttpBinding
- netProfileTcpBinding netTcpBinding
- netProfileDualTcpBinding netTcpBinding
- netProfileNamedPipeBinding netNamedPipeBinding
- basicProfileBinding basicHttpBinding
Configuration element/attribute name changes:
- /services/service[@serviceType] /services/service[@type]
- /endpoints/endpoint[@contractType] /endpoints/endpoint[@contact]
- /services/service/endpoint[@bindingSectionName] /services/service/endpoint[@binding]
- /behaviors/behavior[@configurationName] /behaviors/behavior[@name]
- /bindings/*/binding[@configurationName] /bindings/*/binding[@name]
Attribute changes:
- [BindingRequirements(TransactionFlowRequirements=RequirementsMode.Require)]
[TransactionFlow(TransactionFlowOption.Required)]
- [BindingRequirements(QueuedDeliveryRequirements=RequirementsMode.Require)
[BindingRequirements(QueuedDeliveryRequirements=BindingRequirementsMode.Required)
- [InstanceMode=InstanceMode.Singleton]
[InstanceContextMode=InstanceContextMode.Single]
- [InstanceMode=InstanceMode.PrivateSession]
[InstanceContextMode=InstanceContextMode.PerSession]
- [InstanceMode=InstanceMode.PerCall]
[InstanceContextMode=InstanceContextMode.PerCall]
- [InstanceMode=InstanceMode.SharedSession]
[InstanceContextMode=InstanceContextMode.Shared]
This list may not be complete.
I do expect that QueuedDeliveryRequirements property of [BindingRequirements] attribute will be standalone when Indigo ships. There's no point in having a separate attribute for expected transaction semantics and leave out the queued delivery. It's the same concept being pushed down to administrators (binding requirements are fixed requirements which are supposed to be met by the admin - they are the developers' law of expected processing model).
Maybe this attribute should be named [QueuedDelivery], with appropriate property for demanding it (like QueuedDeliveryOption) and a property called OrderedSessionOption, which would handle ordered session maintenance.