Windows Communication Foundation (WCF),formerly code-named “Indigo,” is Microsoft’s platform for Service-Oriented Architecture (SOA),designed for building distributed service-oriented applications for the enterprise and the web.
WCF was released with Windows Vista as part of the .NET Framework 3.0 (.NET 3.0) which includes four core technologies:
Windows Presentation Foundation (WPF),Windows Workflow Foundation (WF),Windows Communication Foundation (WCF),and Windows CardSpace.
As Figure 1-1 illustrates,.NET 3.0 relies on the .NET Framework 2.0 (.NET 2.0) and is supported on Windows XP,Windows Vista,Windows Server 2003, and Windows Server 2008 platforms.

Figure 1-1 Platform support for WCF

Why release yet another technology for building distributed applications? Unlike its predecessors,WCF is a truly service-oriented,loosely coupled,and interoperable platform.
It simplifies service-oriented system design by removing the design dependencies that traditionally exist between how you access business functionality and the actual implementation of that business functionality.
WCF promotes loose coupling not only between services and the functionality they expose,but also for choice of protocol,message encoding formats,and hosting environment.
For example,services can be accessed over a variety of supported protocols,including named pipes,TCP,HTTP,and MSMQ.
WCF also supports all of the core and emerging web service standards,which makes it a highly interoperable platform.
Messages can always be represented in a format consistent with a set of well-adopted standards to communicate with other platforms.

Besides these modern characteristics,what’s even more interesting is that you can now choose a single communication stack to gain access to the system services necessary to build a distributed system.
WCF unifies the disparate programming paradigms you have previously used on the Windows platform to achieve similar goals—namely .NET Remoting,ASP.NET Web Services (ASMX),and Enterprise Services.
WCF provides all of the plumbing for security,transactions,and reliable messaging over any protocol.
Only Enterprise Services came close to providing all of these features in a single stack,but your component design was coupled to the technology and limited to TCP communication (thus, not interoperable).

This chapter will be your introduction to the programming model of WCF.
I’ll start by reviewing the principles of a Service Oriented Architecture and how WCF supports those principles.
I’ll also describe some practical deployment scenarios for WCF in distributed enterprise systems and
then summarize some of the fundamental WCF concepts that will be discussed first in this chapter and then elaborated on throughout this book.

After introducing core WCF concepts,I’ll walk you through labs that exercise certain techniques and features.
Instead of boring you with a bunch of “Hello World”examples,I plan to kick things up just a notch in this introductory chapter by enforcing good practices from the start while I teach you core concepts.
Each of the labs you complete in this chapter will become successively more complex,and each will expose a new layer of detail.
After each lab I will explain the relevant techniques and features you applied,discuss their relevance,and comment on recommended practices.

The labs in this chapter will cover the following topics:
• Manually creating and consuming WCF services without the help of Visual Studio templates and related tools. This will provide you with a picture of the bare necessities you need to create,host,and consume a WCF service so that you
understand the underlying programming model.
• Creating WCF services using various Visual Studio project and service templates, leveraging configuration tools, and generating code to consume services.
• Approaches to assembly allocation and service hosting over various protocols.
• The importance of service metadata for publishing and consuming services.

By the end of this chapter you will be familiar with many core concepts including service contracts,endpoints,bindings,behaviors,hosting,metadata,channels,and proxies.
Of course,throughout this book,the same concepts as well as additional ones will be discussed at length as you dive more deeply into specific WCF features.

Hello Indigo的更多相关文章

  1. eclipse Juno Indigo Helios Galileo 版本

    Galileo Ganymede Europa 这些名字代表eclipse不同的版本 2001年11月7日 ,Eclipse 1.0发布  半年之后,2002年6月27日Eclipse进入了2.0时代 ...

  2. eclipse Juno Indigo Helios Galileo这几种版本的意思

    Eclipse 3.1 版本代号 IO [木卫1,伊奥]   Eclipse 3.2, 30-06-2006, Callisto projects, 版本代号 Callisto [木卫四,卡里斯托 ] ...

  3. Ubuntu14.04安装和配置ROS Indigo(一)

    安装ROS 配置Ubuntu的软件源 配置Ubuntu要求允许接受restricted.universe和multiverse的软件源,可以根据下面的链接配置: https://help.ubuntu ...

  4. ubuntu14.04 and ros indigo install kinect driver--16

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 今日多次测设ros indigo install kinect driver ,提示各种失败,然 ...

  5. INDIGO STUDIO神器!快速创建WEB、移动应用的交互原型工具【转】

    转自:http://www.uisdc.com/indigo-studio-wireframe-interactive-uis 这套最新的设计工具出自Indigo工作室,永久免费,有mac版本和WIN ...

  6. eclipse Juno Indigo Helios Galileo这几种版本的意思(转)

    Galileo Ganymede Europa 这些名字代表eclipse不同的版本  2001年11月7日 ,Eclipse 1.0发布   半年之后,2002年6月27日Eclipse进入了2.0 ...

  7. ROS Indigo在ubuntu1404上的安装方法

    安装配置方法参照  http://wiki.ros.org/indigo/Installation/Ubuntu 以下操作需要保证虚拟机能够正常连接网络. 1.更换源镜像: 将源设置为国内源,我选择的 ...

  8. 奥比中光Orbbec Astra Pro RGBD 3D视觉传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示

    Orbbec Astra Pro传感器在ROS(indigo和kinetic)使用说明 rgb depth同时显示 这款摄像头使用uvc输入彩色信息,需要libuvc和libuvc_ros这样才能在R ...

  9. ROS(indigo) 安装和使用更新版本的Gazebo----3,4,5,6,7 附:中国机器人大赛中型组仿真比赛说明

    ROS(indigo) 安装和使用更新版本的Gazebo,本文以7为例. Gazebo7支持更多新的功能,如果使用下面命令安装ROS(indigo): ~$ sudo apt-get install ...

随机推荐

  1. jq选取对象的方法

     $("#找id的")$(".找样式的")  $("div[id]") 选择所有含有id属性的div元素 $("input[nam ...

  2. Windows Forms(二)

    导读 1.用VS创建一个Windows Forms程序 2.分析上面的程序 3.Mediator pattern(中介者模式) 4.卡UI怎么办——BackgroundWorker组件 用VS创建一个 ...

  3. props验证

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. js中对闭包的理解

    本人丝一枚,在刚刚过去的javascript学习中,对闭包这个知识真是,听课两分钟,懵逼一整天.今天闲来没事,看了下闭包.话不多说先上代码. <!DOCTYPE html> <htm ...

  5. There is no Action mapped for namespace [/] and action name [user] associated with context path

    从c++转到java,初学struts,竟然碰到一个因写错单词而造成的错误,structs --> struts

  6. WPF 程序中启动和关闭外部.exe程序

    当需要在WPF程序启动时,启动另一外部程序(.exe程序)时,可以按照下面的例子来: C#后台代码如下: using System; using System.Collections.Generic; ...

  7. springmvc学习(四)

    1.使用 @CookieValue 绑定请求中的 Cookie 值 例子: java @RequestMapping(value="/testCookieValue") publi ...

  8. (hdu)2444 The Accomodation of Students 判断二分图+最大匹配数

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=2444 Problem Description There are a group of s ...

  9. makefile-0711-168 SEVERE ERROR: Input file:

    ld: 0711-168 SEVERE ERROR: Input file: /cicm/commlib/include        Input files must be regular file ...

  10. bzoj 2734 [HNOI2012]集合选数 状压DP+预处理

    这道题很神啊…… 神爆了…… 思路大家应该看别的博客已经知道了,但大部分用的插头DP.我加了预处理,没用插头DP,一行一行来,速度还挺快. #include <cstdio> #inclu ...