What is Windows Communication Foundation?
Windows Communication Foundation (better known as WCF) is a framework from Microsoft that you can make use of to implement service-oriented applications. It is service-oriented, supports messaging and offers a reliable, transacted service oriented framework. It is a platform that can be used to design and implement platform independent, scalable services. It is a framework from Microsoft that provides a platform for unification of a number of enterprise technologies under one roof. MSDN states, "Windows Communication Foundation (WCF) is Microsoft's unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments."
The WCF transport channels support two modes for transferring data. These are:
- Buffered - in this mode, the complete data is held in the memory buffer until the transfer is complete
- Streamed - in this mode, the message body is exposed as a stream and data is read in one chunk at a time
Windows Communication Foundation Version 4 was released some time ago by Microsoft. Note that WCF was introduced as part of .NET Framework 3.0. There have been quite a few enhancements and new features introduced in WCF 4.0. Some of the major enhancements in WCF include support for REST based Services and the introduction of WCF RIA Services.
What are WCF RIA Services?
When you need to build applications that are data centric, the data can come from disparate systems. In order to get this data you would need to have the business logic and the server objects reside at the client side. This becomes very cumbersome and takes up a lot of memory at the client side. This is exactly where WCF RIA Services fit in. WCF RIA Services has been introduced in .NET Framework 4 and Silverlight 4 to build applications without the need of service plumbing to push or pull data from the client side.
WCF RIA Services can be used to simplify the n-tier applications such as Silverlight applications. WCF RIA Services can be used to avoid duplicating the application logic both on the server and the client side. You can use WCF RIA Services to makes the application logic residing on the server available to the client without the need of duplicating the application logic on the client side. Also, when your business rules or application logic on the server side are updated, the client automatically updates with the latest middle tier logic once the application is compiled. Note that WCF RIA Services are built on top of WCF Services.
Difference between WCF and WCF RIA Services
This section discusses the basic differences between WCF and WCF RIA Services.
1. In WCF RIA Services, the client side objects are created using reflection at the time of compilation based on the server side objects instead of service contracts exposed at the server side. This provides a rich object model as the business rules and other objects are made available at the client side. In essence, this implies that you can create your LINQ query at the client side and execute it at the server side as the LINQ queries can be serialized.
2. The RIA services provide support for serializing LINQ queries much like ADO.NET data services.
The MSDN states: "WCF RIA Services simplifies the development of n-tier solutions for Rich Internet Applications (RIA), such as Silverlight applications. A common problem when developing an n-tier RIA solution is coordinating application logic between the middle tier and the presentation tier. To create the best user experience, you want your RIA Services client to be aware of the application logic that resides on the server, but you do not want to develop and maintain the application logic on both the presentation tier and the middle tier. RIA Services solves this problem by providing framework components, tools, and services that make the application logic on the server available to the RIA Services client without requiring you to manually duplicate that programming logic. You can create a RIA Services client that is aware of business rules and know that the client is automatically updated with the latest middle tier logic every time that the solution is re-compiled." WCF provides you a programming model and a framework that has support for interoperable, reliable, secure communication. In essence, it provides a framework for designing and developing a service-oriented messaging system that is reliable, transacted. This article discussed the basics of WCF and WCF RIA Services and how the later can be implemented in applications. In a future article in this series of articles on WCF RIA Services, I will illustrate how to get started with WCF RIA Services. Happy reading!
WCF RIA Services e-Book Author: Brian Noyes