Last night a release candidate for the Silverlight 2 developer runtime and tools went live. This release candidate lets developers update their applications before the end user runtime is released in a few weeks. The release candidate is feature complete. There are some breaking changes from the last beta release, most of which are the removal of scattered methods and constructors to clean up the classes that were ported from the desktop framework. Here are the changes that may impact WCF developers.

The MIME type of Silverlight applications should now be the final release version application/x-silverlight-2.

Cross domain hosts of Silverlight must set the right MIME type for XAP (application/x-silverlight-app).

Some exceptions that were previously thrown in HttpWebRequest.BeginGetResponse() are now thrown in HttpWebRequest.EndGetResponse(). This may cause a similar shift in timing when using the asynchronous WCF APIs to send HTTP messages.

Many of the XML APIs will now throw NullReferenceException where they used to throw ArgumentNullException. This may cause a similar change with messages and serialization when dealing with bad data.

Cross domain policy files no longer need to explicitly allow the Content-Type request header. The Content-Type header is always settable on cross domain POST requests.

There are some more detailed changes for the HTTP polling duplex channel.

  • The PollTimeout setting has been split into ServerPollTimeout and ClientPollTimeout.
  • You're no longer able to create an HTTP polling duplex client on the full desktop framework.
  • Default timeouts have been changed to cover most common scenarios.
  • A 404 error on a polling request now causes the duplex channel to fault.
  • Various invalid messages that used to be ignored by the duplex channel are now rejected.
  • An HTTP error during an application call now results in a CommunicationException instead of a ProtocolException.