Indigo's log CTP-Nov-#2 … we have identified the following changes in the predefined bindings when moving from BETA-1 to November CTP and with all likelihood BETA-2.
This log is a result of 18 hours, most spend last night, of code porting and battling with especially the configuration settings and X509 certificates. The latter is still incomplete and will be covered in one of the next log, because we have not yet figured out how to implement X509 message security between a WCF web service and another WCF system service … how do you give the Network User (default of Web Service) the rights to access the X509 certificates? Or alternatively how does one run the WCF Web Service using a trusted service account … interesting topics, but delegated to the future.
Tool Changes
- ComSvcConfig.exe … the COM+ Service Model Configuration command-line tool has changed primarily in terms of the arguments. Best to run it with a /? Before using it again.
- SvcConfigEditor … has not changed much, but pollutes your configuration file with attributes very quickly. While it is an excellent tool once your solution is humming or to locate configuration settings, it is a challenge when trying to figure out what is what in the configuration file.
- SvcTraceViewer … wow, this tool has grown. We have noit yet been able to make it show anything in its message tab, however, the graphing capability is immensely valuable.
Where have all the Generics gone?
The usage of generics has been reduced in the latest CTP and the fundamental code:
using (ServiceHost<LogService> serviceHost =
new ServiceHost<LogService>(new Uri(baseAddress))) {…}
… becomes
using (ServiceHost serviceHost = new ServiceHost(typeof(LogService),baseAddress)) {…}
Fault becomes FaultException
When used to using Fault<T> … port to FaultException<T>
When used to using UnknownFault … port to UnkownFaultException
Attribute Changes … a major facelift
[InstanceMode=…] is now [InstanceContextMode=…]
InstanceMode.Singleton >> InstanceContextMode.Single
.PrivateSession >> .PerSession
.PerCall >> .PerCall
.SharedSession >> .Shared
[BindingRequirements(….)] port to [TransactionFlow(…)]
RequirementsMode.Require >> TransactionFlowOption.Required
QueuedDeliveryRequirements=RequirementsMode.Require
… port to …
QueuedDeliveryRequirements=BindingRequirementsMode.Required
Configuration Files
Probably the area of most frustration, because most attributes and structures have changed. As the SvcConfigEditor tool refuses to open an old-style configuration file we resorted to rebuilding our configuration files using the svcutil tool and digging through the CTP documentation.
Sample Code
If you, like us, battle to find the mountain range of WCF samples the locate the following file and unzip during your next lunch break:
…\program files\Microsoft SDKs\Windows\v1.0\Samples\AllSamples.zip
WCF Documentation
Look in the Microsoft SDK program group, which contains an up to date and fairly comprehensive documentation.
Programming “Indigo Book” & Ascend BETA-1 Documentation
Useful reference material, however, both are outdated with the latest code breaking changes included in the latest CTP. Use the content with caution.
X509 Certificates
To be posted in due course …
Closing thought … while the migration is not seamless it is important to remember that we are working with a BETA-1 product! Looking at the latest CTP the excitement is rising in terms of what this technology can do for us in 2006 and beyond.