WCF:基于SOA(面向服务编程 )的一个.net框架产品   一种分布式通讯的统一模型(分布式通讯就是对多种 操作系统和平台的的兼容) 通信范围比较广

Web service             .net Remoting

其他           WCF      其他

定义一个wcf服务后  它会对外发布一个

端点  协议  绑定

宿主程序:asp.net  exe  wpf   window  forms......

WCF可以支持的协议:TCP  HTTP  跨进程   自定义协议

在WCF框架下  开发基于SOA的分布式系统

.net Remoting  :能够高性能的实现.net 和.NET之间的通讯   受语言限制,     Web Service:基于SOAP(协议), 可以跨平台调用:

WCF 是面向服务的产品 ,

那么WCF也是基于SOAP的通讯机制 ,这保证了系统之间的互操作性

WCF最重要的是能够快捷的额创建一个服务,    WCF 包括三部分:

1,Service Class :一个标记了[ServiceContract]Attribute的类[契约标签]

[ServiceContract]  [OperationConstract] 服务契约

[DataContract]  [DataMember]  数据契约

2,Host(宿主):可以使应用程序  它是WCF Service运行的环境

也就是说  服务器上(的程序)

3,Endpoints:可以使一个 也可以是一组  wcf实现通讯的核心要素

WCF 由一组Endpoints集合组成  每个endpoint就是用于通信的入口

客 服 通过endpoint交换信息

一个endpoint(端点) 由三部分组成  :      (where)address(地址):是endpoint的网络地址 它标记了消息发送的目的地

(what)  contract (契约):描述消息包含的内容  以及消息的组织和操作方式

(how) Binding  (绑定):描述如何发送消息  ,例如消息发送的传输协议(如TCP,HTTP)  安全(如ssl,soap消息安全)

opration操作

那么WCF是怎样通讯的呢????

WCF管理的是服务端和客户端的通信

对于服务端  WCF提供了类ServiceDescription用于描述一个WCF Service

对于客户端  WCF管理的是发送消息 时 需要使用到得通道Channel,        类channelDescription描述了这样一个通道

ServiceDescription           Service Type           ISerciceBehavor            ServiceEndpoint                  EndpointAddress                  Binding                  ContractDescription

下面要写一个wcf的程序  首先要添加引用  system.ServiceModel

一般我们要定义wcf服务时 先把一个接口定义为一个服务  这样为了更好的面向对象(服务)编程   在接口中添加[ServiceContract] [OperationContract] [DataContract] [DataMember]

在实现接口类中就不需要 在添加标签啦

接下来:一个WCF Service 必须有host作为它的运行环境 ,这个host可以是

ASP.NET  Windows Service  不通的应用程序  例如控制台程序

host实现

using System.ServiceModel

//创建一个SerciceHost对象   参数(服务实现类的类型typeof,url对象)

ServiceHost host =new ServiceHost(typeof(MyMethod),new Url("http://localhost:8080/HelloService"));

新建两个项目  一:wcf服务应用程序 服务端 二:控制台   客户端

服务端:接口  服务契约:标签

1,ServiceContract    声明接口或类在客户端可见  2,OperationContract   声明具体的方法在客户端可见

数据契约:标签

1,DataContract    把某个类或结构声明为数据契约  ,这个类就可以再客户端可见并可用来声明变量

2, DataMember      把服务端类中的变量  字段 标记为在客户端可见

客户端:

在客户端 控制台程序中      添加服务引用

在  发现 中会去寻找可用的服务

在最下面会有服务引用的命名空间  ServiceReference1

在客户端调用服务    1,定义通信管道 client  就是通过它来调用服务端提供的方法的

ServiceReference1.ServiclClient  client =new ServiceReference1.ServiclClient ();

client.studentlClass();

2,服务端提供给客户端使用的类

ServiceReference1.student1(服务端的类) stu==

问题:

1,要想在客户端使用服务端里自定义的类型,除了用 [DataContract]声明之外 还要有一个服务契约(方法)[OperationContract]的返回值是这个类型的。    2,在接口类中(对客户端开发并可以调用的类型),在接口该类中,定义一个字段并赋默认值

定义一个属性并给它赋默认值

那么在客户端调用时  输出该类中的属性值

为空      默认值丢失???????

序列化的问题??????

WCF(学习笔记)【参见WCF教程】相关推荐

  1. 数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一)

    数据库LINQ TO SQL在Silverlight中的应用(WCF)------学习笔记(一) 步骤: 1. 创建SILVERLIGHT应用程序 2. 创建LINQ TO SQL [注意序列化的问题 ...

  2. WCF学习笔记(2)——独立WCF服务

    本文将建立一个silverlight与wcf通讯的简单实例,wcf服务将被独立出来,而不再寄放在Web中.以下是详细步骤: 新建Silverlight应用程序,名称WCFtest,在解决方案上右键添加 ...

  3. WCF学习之旅—WCF服务的WAS寄宿(十二)

    上接    WCF学习之旅-WCF服务部署到IIS7.5(九) WCF学习之旅-WCF服务部署到应用程序(十) WCF学习之旅-WCF服务的Windows 服务程序寄宿(十一) 八.WAS宿主 IIS ...

  4. x%3e=y%3e=z的c语言表达式,我的C语学习笔记-C语言教程(三).doc

    我的C语学习笔记- C语言教程(三) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...

  5. c语言第七章函数笔记,我的C语学习笔记-C语言教程(七).doc

    我的C语学习笔记- C语言教程(七) C语言教程---第一章: C语言概论 C语言教程---第二章: 数据类型.运算符.表达式 C语言教程---第三章: C语言程序设计初步 C语言教程---第四章: ...

  6. java学习笔记2(datawhale教程):运算符和表达式、流程控制、数组

    java学习笔记2(datawhale教程):运算符和表达式.流程控制.数组 文章目录 java学习笔记2(datawhale教程):运算符和表达式.流程控制.数组 一.运算符和表达式 1.数学函数与 ...

  7. 【Unity学习笔记】UnrealToUnity教程:(网上购买的素材导入Unreal+插件转Unity)

    [Unity学习笔记]UnrealToUnity教程: 最近想从Unreal那边化点缘借借素材,没想到踩到一个大坑 一,素材导入Unreal 这个教程比较多,根据素材的来源,传送门是以下这几个: 1. ...

  8. html5教程 w3cschool,W3Cschool学习笔记——HTML5基础教程

    HTML5 建立的一些规则:新特性应该基于 HTML.CSS.DOM 以及 JavaScript. 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立 ...

  9. 【应用篇】WCF学习笔记(一):Host、Client、MetadataExchage

    虽然已经在多个项目中成功应用过WCF,但是感觉自己对WCF的知识只知道一些皮毛而已.上次学习WCF也是为了项目需要,囫囵吞枣.这不是我学习方法的态度.所以时至今日,又重新拾卷,再仔细的将WCF一些细节 ...

  10. WCF学习笔记(一):WCF Service Application和WCF Service Library的区别

    近来在学习WCF,遇到了不少问题,有的让我焦头烂额,不过解决问题的过程就是学习的过程,收获也不少. 昨天有个问题开始困扰我--WCF Service Application和WCF Service L ...

最新文章

  1. VirtualBox上装CentOS5.8网络不通问题
  2. iOS最好用的引导页
  3. 偏差/方差、经验风险最小化、联合界、一致收敛
  4. linux mysql卸载_Linux环境下安装Mysql8.0数据库
  5. zImage与uImage的区别
  6. Chrome现在也能编辑pdf文件了!64位安卓版上线
  7. Runnable和Thread基础---多线程学习笔记(二)
  8. javascript乘法和加法_js 大整数加法、乘法、除法
  9. DataFrame字符串之分割split()、清洗drop()、合并concat()、重新建立索引reset_index() - (Python)
  10. java架构师进阶之独孤九剑:数据结构以及书籍推荐
  11. kk服务器信息及端口,kk服务器设置
  12. [TypeScript] Interface and Class
  13. 收费版APP三年总结(个人经验)
  14. 【前端react 粒子特效】
  15. 服务器布线属于搬迁项目吗,弱电机房服务器搬迁建设整体规划与合理布局
  16. 阶乘 java_Java 实例 – 阶乘
  17. 编辑修改PDF文件的简单方法
  18. 贴吧怎么引流_教您如何快速搭建自己的引流池-万能的小胡
  19. 利用logisim-evolution软件学习数字电路(一)
  20. 一篇文章吃透:为什么加载数据库驱动要用Class.forName()

热门文章

  1. 1、SpringBoot整合JPA
  2. 信息流媒体变现_百度联盟陈一凡:今年联盟分成仍将破峰,未来视频变现可期...
  3. lvdt 运放全波整流接线方式_20种电工最常见照明灯接线电路图另附开关、插座安装技术交底...
  4. html5列表去掉符号,从Python字符串中删除不在允许列表中的HTML标记
  5. 神策数据荣登 2020 IDC 中国 Fintech 50 强榜单
  6. mysql数据库怎么安装到自己的电脑上?
  7. 阿里云云市场双11战报:30分钟破100万,单品销量暴涨300倍!
  8. [Angularjs]视图和路由(三)
  9. 函数计算 【题目描述】
  10. if with large data project