Windows Communication Framework (WCF): A New Framework for Developers
Our older data validation services are getting a refresh to help future-proof them as well as to enable JSON and XML responses. The underlying systems that support our web services are constantly being upgraded and updated but the core framework has remained the same. Our goal is to take the older style web services and add support for more modern programming paradigms. The solution – moving to the WCF framework.
What is WCF?
The Windows Communication Foundation (WCF) is a framework for building service-oriented applications. This framework provided a large step forward for .NET based web services.
What came before WCF?
Before WCF there was an era of web services that were tightly bound to the Simple Object Access Protocol (SOAP) and Extensible Markup Language (XML). These methodologies worked well within their scope, but as time went on the standards for web services changed. Programmers tended towards solutions that were based around the emerging Representational State Transfer (REST) architecture.
Making the switch to WCF
By creating applications that adhere to the WCF standards, the resulting web services are loosely coupled. This results in web services that are accessible by nearly every platform. The switch to WCF-based web service allows us the flexibility to keep up to date with the latest programming paradigms without modifying the existing structure our clients are currently using. We can add new points of entry and output formats without breaking existing clients’ implementations. This means that changes on our end don’t result in expenses (programming implementation, debugging, testing, deployment) on your end. By leveraging the WCF framework, we are able to continually improve our data validation services while providing our customers with uninterrupted, real-time APIs that continue to perform and meet their expectations. Our customers can decide, at their convenience, if and when they want to take advantage of the improvements.
What are the extra features that WCF offers?
Endpoints – An endpoint provides a place for a client to connect. The endpoint simplifies the integration process by specifying a contract that the client must adhere to. It generally consists of a URL at which a client can connect, as well as various binding properties that will state how the data will be transferred. An additional feature that this brings to the table is the support for both JSON and XML serialization.
Service Metadata – The WCF framework makes it easy to publish metadata about the web service. The metadata can be published in various industry standards such as WSDL, XML Schema, or WS-Policy. Many programming languages have tools built for them that allow the easy consumption of web service metadata. As an example, check out how easy a WSDL can make your implementation.
Extensibility – The WCF framework has multiple points of extensibility to allow for precise control over the applications. This could range from modifications to the service host, the bindings, the channel layer, security, the metadata system, and the encoders/serializers. This level of control will allow us to adapt to future programming standards.
How do our service updates to WCF affect clients?
Our number one priority is to ensure that existing clients don’t notice a thing. We aim to transition to the new framework while keeping the old endpoints unmodified. This will prevent our clients from needing to invest time and money into their existing implementations. However, the features within the WCF framework will benefit anyone looking to use the new endpoints. These updates will add support for JSON and XML responses, as well as support for RESTful web service calls.
One thing that will not change with these updates is our commitment to making your implementations as frictionless and convenient as possible. We will be continuously rolling out WCF for our services going forward, and if you would like to know anything more about it, contact our technical team anytime. We are always happy to help.