The WCF services ecosystem

At PDC, Microsoft announced the rebranding of ADO.NET Data Services as WCF Data Services and of .NET RIA Services as WCF RIA Services . This is not just a product marketing decision – it is also a technical commitment to provide a coherent and unified services story on .NET.

The current implementations of ADO.NET Data Services (previously known as Codename ‘Astoria’) and .NET RIA Services (previously known as Codename ‘Alexandria’) are based on WCF. In fact, they are WCF services. Moving forward, future releases will align the technologies to allow features of the technologies to be used in a mix and match manner as appropriate. We are currently in early stages of investigation around potential areas of deeper integration such enabling WCF RIA services to support an appropriate subset of ADO.NET Data Service’s Open Data protocol (OData); enabling validation features that are currently only available in WCF RIA Services in other flavors of WCF services as well etc.

By unifying these services offerings on top of WCF, we are maximizing developer knowledge transfer and skill reuse in the short term and the long term. For the WCF RIA Services developer, the developer does not need to know all aspects of WCF to get their service up and running. However, if they want to add a WCF behavior or take advantage of the rich extensibility of WCF to their WCF RIA Service, they can choose to do so in a fashion that takes advantage of the unified communications programming model that is WCF.

Thus, as a result of this alignment, .NET will offer several different flavors of WCF services (listed below) that you can choose from based on your particular needs. The important thing to remember is these options will all build on the underlying WCF architecture. As such these are not binary choices – providing the .NET service developer with a choice among three different entry points into a single distributed programming framework, rather than a choice among three different programming options. We expect many applications will leverage multiple models for building out their applications and their developer's knowledge will easily transfer from one model to the other.

clip_image002

· WCF Core Services – Allows full flexibility for building operation-centric services. This includes industry standard interop, as well as channel and host plug-ability. Use this for operation-based services which need to do things such as interop with Java, be consumed by multiple clients, flow transactions, use message based security, perform advanced messaging patterns like duplex, use transports or channels in addition to HTTP, or host in processes outside of IIS.

· WCF WebHttp/AJAX Services – Is best when you are exposing operation-centric HTTP services to be deployed at web scale or are building a RESTful service and want full control over the URI/format/protocol.

· WCF Data Services – Including a rich implementation of OData for .NET, Data Services are best when you are exposing your data model and associated logic through a RESTful interface

· WCF Workflow Services – Is best for long running, durable operations or where the specification and enforcement of operation sequencing is important

· WCF RIA Services – is best for building an end-to-end Silverlight application

If you want to learn more about the different WCF services at PDC please check out the following sessions:

  • FT13 What’s New for Windows Communication Foundation
  • FT55 Developing REST Applications with the .NET Framework
  • CL06 Networking and Web Services in Silverlight
  • CL07 Mastering Microsoft .NET RIA Services
  • CL21 Building Amazing Business Applications with Microsoft Silverlight and Microsoft .NET RIA Services
  • FT10 Evolving ADO.NET Entity Framework in .NET 4 and Beyond
  • FT12 ADO.NET Data Services: What’s new with the RESTful data services framework

Thanks, and looking forward to your feedback!