Breaking changes for the Feb CTP

The Feb CTP is now available! A number of changes have been made that break existing code. The details have been posted here on our community site.  Raw API change reports are available here for reference.

Here are some of the most popular things that you'll run into when you port your apps.

Service configuration has changed:

system.serviceModel/services/service/@type has changed to system.serviceModel/services/service/@name.

Before

<configuration>  <system.serviceModel>    <services>      <service         type="Microsoft.ServiceModel.Samples.CalculatorService">        <endpoint           address=""          binding="wsHttpBinding"          contract="Microsoft.ServiceModel.Samples.ICalculator" />      </service>    </services>  </system.serviceModel></configuration>

After

<configuration>  <system.serviceModel>    <services>      <service         name="Microsoft.ServiceModel.Samples.CalculatorService">        <endpoint           address=""          binding="wsHttpBinding"          contract="Microsoft.ServiceModel.Samples.ICalculator" />      </service>    </services>  </system.serviceModel></configuration>

Also note that names in config are now strictly treated as configuration strings and not necessarily as types.  When using the WCF programming model the configuration names should be the full type names.  Assembly qualified type names are no longer supported.

The format for the .svc files has changed:

Before

<%@Service language=c# Debug="true" class="Microsoft.ServiceModel.Samples.CalculatorService" %>

After

<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>

Your best bet to update client code is to rerun svcutil.

Looking forward, we have most of the changes we know of to date completed, but we will continue to listen to customer feedback, and react to interop and security testing which could result in additional changes to the OM.

Feel free to contact me, or ask questions on the WCF forum.