Pages

Saturday, February 23, 2013

The Future of WCF

A Retrospective

windows communication foundation
Back then, somewhere in 2006, when Windows Communication Foundation was born, with the exotic code name "Indigo" I was a .NET trainer. And also 7 years younger... but who counts...

These where the days of Windows Vista, Visual Studio 2005, Web Forms, Ajax, and XML Web Services.


Giving countless training and lecture hours on WCF, I still remember the slide in the MOC showing ASP.Net Web Services, WSE (Web Service Extensions), COM+, DCOM and Remoting, and then the animation minimizing all those putting WCF right in the middle and emphasizing Consolidation.

It was a huge step in evolution, and it let you select one framework to nail all your problems.

A Snapshot

Over time WCF has been bent toward being more RESTFULLY, and with its almost unlimited extensibility we've been able to take control over messaging, roll out custom security models to feet our needs, and run it with ASP.Net compatibility to employ the ASP run-time which is more suitable for web.

The WCF REST Starter Kit didn't get so far, and the WCF Web API has been eventually merged into ASP.Net and became ASP.Net Web API...

Today, it is not that obvious anymore that WCF will play the role of running your endpoints. As ASP.Net with its Controllers, Web API and SignalR Hubs has gone a long way since, as far as it relate to HTTP, REST, and HTML 5.0 standards.

I know there is no breaking news here, but still...  I recently started a new project without considering WCF to be part of the stack. It seemed weird, and raised some more questions and wondering regarding the future of WCF...

3 comments:

  1. Hello Yaniv, very clear your thoughts. In relation to your project (without WCF as part of the stack), how did it go?
    After 9 months since you started your peoject, could you make a statement regarding the absence of WCF?
    Why did you opt on a non-WCF solution? Was the heavy WCF configuration unnecessary to your needs?
    Right now I'm trying to decide between WCF or Asp.net Web Api for a large set of services for an enterprise solution.

    ReplyDelete
    Replies
    1. Hello Luis,
      In a retrospective I can say it was the right decision.

      The client is a real-time multi-player mobile game running on all major platforms - iOS, Android, and WP8. The service layer is based on Web Api for the request/reply model, and SignalR for the part when the player is actually playing with other players...

      The back-end is running on Windows Azure - both Web Roles and Worker Roles.
      The communication between those roles is driven by NService Bus, on top of Windows Azure Queues as the transport layer.

      So we've accomplished event driven inside and out with technologies that are capable for Pub/Sub and are much better fit than WCF for this kind of project.

      Regarding your dilemma, I think there are a lot of points that you should clear with yourself, some of them would be:

      1. What kind of clients are going to consume you services?
      2. Would you like to go REST or RPC with those clients?
      3. Do you need inter-communication between your Web Server and Application Server?
      4. What about the transport layer - HTTP, MSMQ...
      5. What about Retry mechanism, durability of messages, pub/sub...?

      I would be glad to assist you in the process of selecting the right stack, but I would need more information on this particular project.

      Delete
  2. This might be more beneficial for us to use this. Download gta 5 download mobile

    ReplyDelete