<p>What is WCF in simple terms?</p>

<p>It's hard to distill the meaning from <a href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation" rel="noreferrer">the Wikipedia page</a>.</p>

[{'answer_id': 42743, 'author': 'Lamar', 'author_id': 3566, 'author_profile': 'https://Stackoverflow.com/users/3566', 'pm_score': 2, 'selected': False, 'text': '<p>WCF is Microsoft\'s new .NET do-all extensible communications framework meant to replace functionality previously available in <a href="http://en.wikipedia.org/wiki/Distributed_Component_Object_Model" rel="nofollow noreferrer">DCOM</a>, <a href="http://en.wikipedia.org/wiki/.NET_Remoting" rel="nofollow noreferrer">.NET Remoting</a> and ASMX web services.</p>\n'}, {'answer_id': 42748, 'author': 'aku', 'author_id': 1196, 'author_profile': 'https://Stackoverflow.com/users/1196', 'pm_score': 2, 'selected': False, 'text': '<p>WCF stands for Windows Communication Foundation. It\'s Microsoft\'s attempt to sort out and simplify network programming. It provides an easy to use level of abstraction over different communication protocols and transportation methods. It allows you to concentrate more on <em>what</em> you want to implement rather than thinking on <em>how</em> to implement it.  Read Microsoft\'s <a href="http://msdn.microsoft.com/en-us/windowsvista/aa905015.aspx" rel="nofollow noreferrer">WCF FAQ</a> for more info.</p>\n'}, {'answer_id': 42751, 'author': 'Mark Cidade', 'author_id': 1659, 'author_profile': 'https://Stackoverflow.com/users/1659', 'pm_score': 3, 'selected': False, 'text': '<p>WCF allows you to create "services" without specifying that it\'s a Windows service or a Web service, or which protocols are used to communicate with it or how the data is serialized.</p>\n\n<p>All those details may be specified externally, either programmatically in a service host or via the config file.  </p>\n'}, {'answer_id': 42759, 'author': 'swilliams', 'author_id': 736, 'author_profile': 'https://Stackoverflow.com/users/736', 'pm_score': 6, 'selected': True, 'text': '<p>WCF - <a href="http://msdn.microsoft.com/en-us/library/ms731082.aspx" rel="noreferrer">Windows Communication Framework</a> - is Microsoft\'s framework to make inter-process communication easier. It let\'s you do this communication through various means, plain old asmx web services, Remoting, MS Message Queuing, and a couple more.</p>\n\n<p>It let\'s you talk with other .NET apps, or non-Microsoft technologies (like J2EE). It\'s extensible enough to allow for newer stuff, like REST too (I don\'t think REST is built-in).</p>\n'}, {'answer_id': 35022624, 'author': 'Anton Lyhin', 'author_id': 1145224, 'author_profile': 'https://Stackoverflow.com/users/1145224', 'pm_score': 2, 'selected': False, 'text': '<p>I would recommed you to read about Indigo (the first WCF name). This is the case when an old article can explain the definition better than wikipedia.</p>\n\n<p>Here is the complete <a href="https://msdn.microsoft.com/en-us/library/aa480188.aspx" rel="nofollow noreferrer">article</a>.</p>\n\n<blockquote>\n  <p>"Indigo," Microsoft\'s unified programming model for building\n  <strong><em>service-oriented</em></strong> applications.</p>\n</blockquote>\n\n<p>But what does "service-oriented" mean?</p>\n\n<blockquote>\n  <p>Choosing the best abstractions for building software is an ongoing\n  process. Objects are the dominant approach today for building an\n  application\'s business logic, but modeling application-to-application\n  communication using objects hasn\'t been as successful. <strong>A better</strong>\n  <strong>approach is to explicitly model interactions between discrete chunks</strong>\n  <strong>of software as services</strong>.</p>\n</blockquote>\n\n<p>Plenty of support already (2005) exists for building object-oriented applications, <strong><em>but thinking of services as a fundamental software building block</em></strong> is a more recent idea. Because of this, technologies explicitly designed to create service-oriented applications haven\'t been widely available.</p>\n\n<p><strong>1. Indigo is also a combination of 5 techonologies.</strong></p>\n\n<p><a href="https://i.stack.imgur.com/pG35U.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/pG35U.png" alt="enter image description here"></a></p>\n\n<p>All of these options had value, yet the diversity was certainly confusing to developers. Why have so many choices? A better solution would be to have one technology that addresses all of these problems. That is WCF.</p>\n\n<p><strong>2. Interoperability with Non-Microsoft Applications</strong></p>\n\n<p>Making life easier for Windows developers by unifying disparate technologies is a good thing. But with the universal agreement among vendors on Web services, the long-standing problem of application interoperability can also be solved. (example is communication of .NET windows application with Java application on Linux or other operating systems).</p>\n'}]
['https://Stackoverflow.com/questions/42740', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2831/']