WCF (Windows Communication Foundation)

Thank you everyone for your all support to my blogs till now, in our last post we covered how and why to use NuGet, NPM and Bower. In this post we will see basics of WCF.

 

INTRODUCTION:

WCF was first introduced in .net framework 3.0 and became very popular with .net developers over the year.It was designed for building distributed systems, but we already had many systems before WCF to achieve the same, to point few of them

  1. DCOM : used prior to .net came to existence.
  2. MSMQ: used to deliver the message in distributed system. It was first shipped in C-based API, available in .ne as well.
  3. Web Services: Most of the developers are aware of this, and still asked in interviews, before WCF it was the darling for most of the systems, reason being XML format,and can be understood by other languages such as java, php , javascript and many more.

But web services has its own disadvantages as well, it works perfectly over H TTP, but there might be some requirement where you want to use it within your network over some reliable protocol like TCP. Also when web services were introduced, all big companies like (Microsoft, IBM and Sun Microsystes) started writing there version of it and they were not compatible with each other. To avoid this W3C and WS-I came into existence, which later became the WS*- specifications.

WCF Features:

  1. Support for strongly types and untyped messages. Strongly types means you can create your own classes in .net and another .net can use it, and other languages like java can still use XML.
  2. Support for several binding like (HTTP, TCP, MSMQ and named pipes), allows us to choose best transport protocol.
  3. Support for latest WS-* specifications.
  4. Support for sesision-like state management techniques, as well as support for one way or stateless messages.

Now lets see the core assemblies and Namespaces which are used for WCF.

  1. Core WCF Assemblies
    1. System.Runtime.Serialization.dll: This assmbly defines namespaces which we can use for serializing and deserializing objects in WCF.
    2. System.ServiceModel.dll: This core assembly contains the types used to create a WCF application.
  2. Core WCF Namespaces
    1. System.Runtime.Serialization: This defines many types which can be used to control how data is serialzed and deserialized in WCF.
    2. System.ServiceModel: This namespace defines binding and hosting types, as well as security and transactional types..
    3. System.ServiceModel.Configuration: This types provide programmatic access to WCF config files.
    4. System.ServiceModel.Description: This provides an object model to the addresses, bindings and contracts defined within WCF.
    5. System.ServiceModel.MsmqIntegration: This is used for integration with MSMQ.
    6. System.ServiceModel.Security: Defines numerous types to control aspects of the WCF security layers.

We know the dlls and classes which is driving our WCF services, let’s see the other aspects of WCF.

ABCs of WCF:

Host and client interact with each other by agreeing upon ABC’s. Let’s see what are those.

  1. Address: Describes the location of the service.
  2. Binding: How you are going to exchange data between host and client
  3. Contract: what type of data is going to be transferred,

We will create a WCF service in our next blog, now we know the purpose of WCF services and core things about WCF. WCF works on SOA (Service Oriented Architecture), so our application will have a service and client to consume the services.

CONCLUSION:

Unlike Web services, WCF gives us much more flexibility over choosing the protocol, more security and many advantages which we will cover in upcoming blogs.

You can follow my official facebook page , also subscribe my blog for more information.

You can also mail me on santosh.yadav19613@gmail.com in case you have any questions.

 

 

9 Comments


  1. It’s perfect time to make some plans for the future and it’s time to be happy.

    I have learn this put up and if I may just I want to recommend you few fascinating things or suggestions.
    Perhaps you can write next articles relating to this article.
    I wish to read more things approximately it! http://bing.co.uk

    Reply

  2. You’ve made some decent points there. I checked on the web for additional information about the issue and found most
    people will go along with your views on this web site. http://www.yahoo.net

    Reply

  3. I really love your blog.. Great colors & theme.
    Did you create this web site yourself? Please reply back as
    I’m trying to create my very own blog and want to learn where you got this from or exactly what the theme is
    called. Kudos! http://bing.net

    Reply

    1. Thanks, this is free template from wordpress.

      Reply

  4. Thanks for another informative blog. Where else could I get that kind of information written in such a perfect way? I’ve a project that I am just now working on, and I’ve been on the look out for such info.

    Reply

  5. You actually make it seem so easy with your presentation but I find this
    topic to be actually something that I think I would never understand.

    It seems too complex and extremely broad for me. I am looking forward
    for your next post, I will try to get the hang of
    it!

    Reply

  6. I simply want to mention I am beginner to blogging and really liked you’re page. Likely I’m going to bookmark your blog post . You actually come with incredible stories. Appreciate it for revealing your website.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *