CTP3 uses HTTP Basic Authentication instead of a custom HTTP header.  As a result, applications written against CTP2 will encounter errors until they are updated to work with our release of CTP3 today.  CTP3 introduces the first live OData services and we will continue to migrated additional services to OData over the coming weeks. In the mean time, many of the CTP2 based services will remain accessible and will continue to remain accessible for a period of time after a service is migrated to OData. However, it will eventually be turned off.

How you update your application will depend on which service your application uses and how your application was written.

    1. If you are writing or updating an application against a service that already has an OData endpoint available, we recommend that you use the OData endpoint.

    2. If you are writing or updating an application against a CTP2 based service that does not yet have an OData endpoint, the process will largely depend on how your application uses “Dallas”; Also we highly recommend you keep an eye on our blog and plan to migrate your application when the OData endpoint becomes available.

      • If you used the C# proxy classes for a “Dallas” dataset, you must download and use the updated proxy classes.  You can obtain the new classes by clicking on the “Click here to explore the dataset” link from the Subscriptions page on the portal.  Then click on the “Download C# service classes link”.  When you build against the new version of the service classes, you must also change your application to use the zero-argument constructor and set the AccountKey property to your “Dallas” account key.  The Unique User Id from CTP2 is no longer supported.

      • If you invoked the “Dallas” service directly, you must stop sending the custom HTTP headers for $accountKey and $uniqueUserId.  Instead, you must pass the authorization header for HTTP Basic Authentication.  If you used the WebRequest class in .NET, you can use the Credentials property to accomplish this as follows;

    WebRequest request = WebRequest.Create(dallasUri); 
    request.Credentials = new NetworkCredential("accountKey", dallasAccountKey);

    - The Dallas Team