Add Service Reference from SO-Aware
We have recently included a very cool feature to automatically create WCF service references (or service proxies) within Visual Studio 2010 from the SO-Aware repository. After running the installer, you will be able to find a "TellagoStudios.VisualStudio.Editors.SOAware.vsix" extension within "C:\Program Files (x86)\Tellago Studios\SO-Aware\SDK\Visual Studio\" to register this plugin in your Visual Studio instance.
In order to create a new service reference you can do right click on the project and hit “Add Service Reference from SO-Aware”:
Once you click on that menu option, a new screen for searching services will appear. In this screen you can select the SO-Aware repository to browse, and select the service and version for which you want to generate the proxy
Finally, you will get a proxy generated just like any other “Service Reference” that you generate with Visual Studio. The magic here is that this proxy file does not require any configuration as everything is automatically resolved from the SO-Aware Repository. In fact, if you take a look at the generated code, you will notice that the base proxy class for this new proxy is "ConfigurableClientBase", which is a SO-Aware specific proxy class that knows how to retrieve endpoint and binding configurations from the repository.
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class ProxyGeneratorServiceClient :
Tellago.ServiceModel.Governance.ServiceConfiguration.ConfigurableClientBase<
ServiceProxySample.Sample.IProxyGeneratorService>,
ServiceProxySample.Sample.IProxyGeneratorService
{
public ProxyGeneratorServiceClient() :
base(
new System.Uri("http://localhost/SoAware/ServiceRepository.svc"),
"ProxyGeneratorService(1.0)",
"Sample")
{
}
public ProxyGeneratorServiceClient(System.Uri serviceRepositoryUri) :
base(serviceRepositoryUri, "ProxyGeneratorService(1.0)", "Sample")
{
}
public ProxyGeneratorServiceClient(
System.Uri serviceRepositoryUri,
string category,
string endpointName) :
base(serviceRepositoryUri, "ProxyGeneratorService(1.0)", category, endpointName)
{
}
This class also contains a SetClientBehavior in case you want to resolve and inject "Endpoint" behavior from the repository into the proxy. For instance, this becomes handy for cases where you have credentials like certificates already configured in a behavior.
You can download the SDK here.