BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News WCF is Open Source

WCF is Open Source

Leia em Português

Bookmarks

The .NET Foundation has just announced the release of Windows Communication Foundation (WCF) as open source. WCF, originally offered in .NET 3.0, offers a high-level abstraction over cross-application communication. It supports one-way and two-way messages over HTTP, TCP, named pipes, and, with third-party extensions, any other message based wire format.

WCF has a mixed reputation. While very easy to get started with, the learning curve has proven to be incredibly steep. This is in part due to questionable design decisions, but most it is just a lack of education. Microsoft did a very poor job of documenting WCF, and it wasn’t until Carlos Figueira’s 2011 blog series titled WCF Extensibility that we actually got a good tutorial on the framework’s advanced features.

The open source version of WCF is composed of five libraries:

  • ServiceModel.Primitives
  • ServiceModel.Http
  • ServiceModel.NetTcp
  • ServiceModel.Duplex
  • ServiceModel.Security

Ron Cain, Project lead for WCF, writes,

Microsoft released Visual Studio 2015 RC at the Build conference in April 2015, and it supports the ability to use WCF in both Universal Windows and ASP.NET 5 applications. The code used to build these WCF libraries used by VS 2015 RC was moved into this new GitHub repository, and the GitHub version will be the source used moving forward. By contributing to the WCF project you will be contributing directly to the WCF capabilities available to Universal Windows and ASP.NET 5 apps.

Everything you need for basic one-way communication over HTTP or TCP is in place. Two-way communication, web sockets, and various security features such as SSL are still a work in progress.

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • who cares?

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    It's not even funny to think how much damage this ill designed (shoehorning OO in Service Orientation) has done to Microsoft and our industry in general, with claims such as "SOA does not work", when it reality it was WCF does not work.

    Glad Microsoft is forking node.js, hopefully the connected systems division is long gone.

  • WCF is not "guilty" for "SOA does not work"

    by Florin Neamtu,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I had and have no real issues with WCF (other than excessive need for configuring things that most likely never need to change at runtime). Shoehorning OO in service orientation is not done by a framework like WCF, it's done by people who are lacking basics of distributed systems. If you really want you can shoehorn OO in every other framework out there.

    Also if you got no prior knowledge of distributed systems then obviously there is a steep learning curve. Thing is where is this learning curve? I doubt is in learning the framework, because in my experience many people on MS stack got introduced to the principles of distributed systems when trying to use WCF.

    Similarly, you don't learn object-orientation by programming in C++ or Java. They are just programming languages, tools to help you model or apply certain programming paradigms, one of which being object orientation. You got to understand object orientation principles first.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Florin,

    if you use a class structure to define a service/message you are shoehorning OO into SO. Compare that to node.js and Javascript, perhaps you see a difference, or even problems.

    I can't recall for how many years WCF could not support a "contract-first" approach. It was always cOOde first.

    The Connected Systems Division was just too busy playing petty politics to figure out they were ditching themselves.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Lars Nielsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    ...I am baffled here....
    >"can't recall for how many years WCF could not support a "contract-first" approach. It was always cOOde first."

    you're kidding me. First you design your XSD's, then run them through svcutil.exe /dconly in order to generate your datacontracts. This is called "contract first", this is what you share, schema not class.

    Florin is spot on here: "it's done by people who are lacking basics of distributed systems."
    cheers Lars

  • Re: WCF is not "guilty" for "SOA does not work"

    by Jonathan Allen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    There is nothing object-oriented about WCF messages. They are just simple DTOs, no different that what you would use in JavaScript.

    Perhaps you are confusing it with DCOM?

  • Re: WCF is not "guilty" for "SOA does not work"

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    sure.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Lars Nielsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Well Jean-Jacques Dubray,
    this must be great news for you, getting all misty here…
    I mean after so many years you finally realize that your own failures in SOA had nothing to do with WCF.
    WCF Windows Communication Foundation... it's a foundation… its LEGO building blocks. Behind that ServiceContract you can enforce all the OO principals you want as long as you don’t expose it over the wire (chatty interfaces etc.).
    This must be a great day for you Jean-Jacques Dubray, realizing you can just use any schema editor when designing your DTO’s, makes versioning so much easier btw..
    >with claims such as "SOA does not work", when it reality it was WCF does not work.
    There there Jean-Jacques Dubray, not all persons have access to LEGO building blocks and remember if your UI sux, it’s not WPF’s fault.

    Best regards Lars.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Faisal Waris,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    As long term WCF user I have say that it works both ways (contract-first and code-first) but code-first is easier and so perhaps is used that way more often.

    Just for comparison, Swagger (the most popular contract description language now) also started out code-first but is now also supporting a contract-first approach.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Lars,

    The Connected Systems Division took nearly a decade to build this amazing "foundation", while sputtering all kinds of claims about SOA this or SOA that to excuse its belated and nonetheless erratic designs, when the REST of the industry was actively building stuff that was actually useful to build an SOA, albeit, less "foundational".

    So this begs the question, who in 2015 would care about WCF being open source, it's tantamount to saying Microsoft has just open sourced OLE.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Lars Nielsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Jean-Jacques Dubray,

    decade ?

    WCF was consolidated back in 2007 and has been updated upon each .NET release, business as usual.

    Linking to Chappel here has zero todo with WCF!!, you're blaiming your own SOA failures on WCF. You clearly demonstrated your lack of knowledge when it comes to WCF.

    I agree it may not be that important WCF being open source now, just as the mvc webapi is open source!, but bashing the CSD for your SOA failures it just not justified. WCF is a foundation, not a product, that might have caused you some trouble!. Again I don't blaime Bootstrap or WPF for my bad UI design skills.

    ah I get it you're troll right ?.

    best regards Lars.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    I am not quite sure why you keep talking about "my SOA failures". I had the wisdom to stay away from WCF and watched where the people who used it ended. Never was pretty.

    Meanwhile the CSD was broadcasting on channel 9 that it was not WCF fault, it was SOA's fault. Anyways, WCF is certainly not worth the time of this discussion.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Lars Nielsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Jean-Jacques Dubray I wish I had your divine wisdom back then, I just realized that in my custombinding I set the maxClockSkew to a low value, raison d'être why this SOA project failed.
    That really does it, switching to Python/Django now.
    /Lars

  • Re: WCF is not "guilty" for "SOA does not work"

    by Lars Nielsen,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Jean-Jacques Dubray let me get this straight.
    You had some sort of epiphany and stayed away from WCF, watching morons with laptops failing SOA projects using WCF! And you’re the first man on the moon to make a comment on this article…exposing your complete ignorance and lack of experience with WCF.
    Popcorn!.

  • Re: WCF is not "guilty" for "SOA does not work"

    by Jean-Jacques Dubray,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Lars,

    The facts are as follows:
    - the CSD shoehorned OO into SO (like a few other vendors) and pulled a good part of the industry behind thinking that annotations on class semantics was a proper design
    - they hold the Microsoft community hostage for years before shipping anything
    - when they shipped something it was so flawed that hardly anyone could build a service other than exposing class methods as XML RPC, with some SOAP goop on top
    - the CSD spent most of their time playing hard ball in standard committees, just because they were Microsoft
    - they nearly killed the BizTalk team, again just because
    - customers who sticked to WCF drowned in code, generally spending 80% of their time rewriting functionality provided by proper middleware out of the box
    - the CSD was folded into the SQL server team, quite a promotion if you ask me
    - in the end to cover their failure they looped the "SOA is failing" message around the clock on Channel 9
    - and today WCF is open sourced, again, quite a promotion.

    All this begs the question, who cares? is there anyone on the planet who cares about WCF, let alone being open sourced?

    Perhaps you are uncomfortable with facts and prefer Channel 9 stories?

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT