New Features in WCF 4.5 – Part 1

By | March 31, 2014

Windows Communication Foundation v 4.5 released with lots of new features and we have already highlighted those features in previous WCF Tutorial. Now, we wanted to dive deeper and explore each new feature in more detail. Here in this WCF Tutorial – Part 1, we are going to discuss the following two new features in more details:

  • Simplified Generated Config Files
  • Validating WCF Configuration

WCF – Simplified Generated Config Files

Windows Communication Foundation has been amazing programming platform for building service-oriented applications since it’s birth. However, if you visit WCF online forums and communities, you will find out that most of WCF developers had a concern that it has lengthy and complex configuration settings.
If you ever workedwithprevious versionsofWCF,youmust be familiar with following configuration.

<System.serviceModel>
<bindings>
<wsHttpBinding>
<binding name=”WSBinding” closeTimeout=”00:01:00″ openTimeout=”00:01:00″
                receiveTimeout=”00:10:00″ sendTimeout=”00:01:00″ bypassProxyOnLocal=”false”
                transactionFlow=”false” hostNameComparisonMode=”StrongWildcard”
                maxBufferPoolSize=”524288″ maxReceivedMessageSize=”65536″
                messageEncoding=”Text” textEncoding=”utf-8″ useDefaultWebProxy=”true”
                allowCookies=”false”>
                <readerQuotas maxDepth=”32″ maxStringContentLength=”8192″ maxArrayLength=”16384″
                    maxBytesPerRead=”4096″ maxNameTableCharCount=”16384″ />
                <reliableSession ordered=”true” inactivityTimeout=”00:10:00″
                    enabled=”false” />
                <security mode=”Message”>
                    <transport clientCredentialType=”Windows” proxyCredentialType=”None”
                        realm=””>
                        <extendedProtectionPolicy policyEnforcement=”Never” />
                    </transport>
                    <message clientCredentialType=”Windows” negotiateServiceCredential=”true”
                        algorithmSuite=”Default” establishSecurityContext=”true” />
                </security>
            </binding>
</wsHttpBinding>
</bidnings>
<client>
<endpoint name=”WSBinding”
address=”http://localhost/MyFirstWebService/TestService.svc”
binding=”wsHttpBinding”
bindingConfiguration=”WSHttpBinding_ITestService”
contract=”ITestService” />
</client>
</System.serviceModel>

Above configuration is the default binding configuration generated on client-side when you add a service reference, because all previous versions of WCF generate default settings that makes it lengthy as well as complex. Default binding configuration is shown in blue text above.

In WCF 4.5, the generated configuration will only have non-default binding configuration as follows:

<System.serviceModel>
<bindings>
<wsHttpBinding>
<binding name=”WSBinding” />
</wsHttpBinding>
</bidnings>
<client>
<endpoint name=”WSBinding”
address=”http://localhost/MyFirstWebService/TestService.svc”
binding=”wsHttpBinding”
bindingConfiguration=”WSHttpBinding_ITestService”
contract=”ITestService” />
</client>
</System.serviceModel>

Now, the generated configuration file is pretty much simplified.

WCF – Validating WCF Configuration

Validating configuration is another an amazing features in Windows Communication Foundation v4.5. Basically, it can be considered as an enhancement to Visual Studio as well. Previously, config files were not validated if we build our WCF project.
Now with WCF 4.5, if we build our project and our configuration file has some validation issue, Visual Studio will alert us by displaying such validation errors as warnings.
Consider the following invalid config settings, a warning will be displayed that “Expecting end tag </service>“:
<service name=”MyTestService” /> 
In this post, we discussed in detail about two new features in version 4.5, those are related to WCF configuration. For next part of this WCF Tutorial, Please follow here.

Top 10 Interview Questions and Answers Series:

Category: Uncategorized Tags:

About IMRAN ABDUL GHANI

Imran Abdul Ghani is working as Software Developer(Senior) with extensive knowledge in Web development technologies especially C#, ASP.NET, MVC, WCF, Web API, ADO.NET Entity Framework, jQuery etc. He has several years of experience in designing/developing enterprise level applications. He is Microsoft Certified Solution Developer for .NET (MCSD.NET) since 2005. You can reach his blogging at www.webdevelopmenthelp.net, www.topwcftutorials.net, and www.sharepointfordummies.net.