SO-Aware - Centralizing WCF Configuration

12.10.2010 13:12Comments
SO-Aware, is a Service Repository recently launched by Tellago Studios. With this tool you can centralize your WCF configuration, and consume this configuration from both services and clients (among other very interesting things like monitoring and testing). In this post we'll take a look at how SO-Aware service repository works. At a high level of abstraction, we can say that SO-Aware service repository is broken down into the following components: A ServiceRepository database (SQL Server), an OData webservice that exposes all the configurations as resources, an ASP .NET website for managing everything in SO-Aware, and an SDK package which provides the necessary dlls to consume SO-Aware from both service and client. Roughly this is how it's layed out

How it's used

So the common work flow for managing your service configuration through SO-Aware would be to use the website (or the available OData API) to create your services, then add service versions to it (such as 1.0, 1.1, etc), and then configure the behaviors and bindings for the specific version. As a bonus, you can also add a category to the configuration so that you can have multiple configurations for the same service version. This comes very handy when having more than one environment. After you have the configuration ready, you need to start using this configuration in two places, in the WCF service, and in your WCF Service clients. For your WCF Service to use SO-Aware's configuration, you need to use a special ServiceHostFactory that is provided in the SO-Aware  SDK toolkit, and then configure just about enough for the factory to know the url of the Service Repository, the service name, version and category (way better than dozens of lines of <system.ServiceModel>, right?) For the client to start using the centralized configuration, you need to use the ConfigurationResolver provided in the SDK as well with which you can resolve both the binding and the endpoint so you can use it with your service proxy. (you can click on the image above to see a small sample). Or you can use the swutil.exe tool provided in the SDK to generate the proxy using SO-Aware's ConfigurableClientBase. SO-Aware supports the three types of web services currently available through the WCF stack: SOAP, REST and OData; and comes with a bunch of bindings out of the box for you to start using right away. So that's how we can keep all of our WCF configuration centralized with this new tool. For further information you can go Tellago Studios website.

comments powered by Disqus