QQ群号: 784332913
视频地址:https://www.bilibili.com/medialist/play/ml740444734
视频笔记对应地址:https://pan.baidu.com/s/1sMG2qA1TUPTjOj247MobFw
SOA面向服务架构
第一阶段:面向对象:解决代码维护性问题【设计模式】
第二阶段:面向组件:解决代码复用性问题【html=>一个页面分成了各个组件(ES6,JSX,SCSS),让js成了一个面向对象的语言】
第三阶段:面向服务:解决不同语言系统之间的不能信息互通的问题。
举例:java开发的OA系统,asp开发的商城系统,asp.net开发的访客系统,想要互通信息
WCF在SOA面向服务架构浪潮下的出现
从图中可以看出:
1、WCF是微软整合.net下所有分布式技术的结果
2、WCF本质上是一个Asp.Net Web Service,但是它又兼容了restful模式。
3、WCF出现在ws标准盛行时,后来restful模式盛行,微软不得已适配了restful模式。
创建第一个WCF程序
创建WCF服务库
单纯的WCF项目,没有宿主,
1、新建项目一>模版一>WCF一>WCF服务库
2、F5 或者 点击定居工具栏启动 调试功能。
3、WCF测试客户端简单测试demo接口:
选中“GetData()”方法,更改value值为5,点击调用查看接口返回结果。
创建宿主程序—控制台程序
1、选中解决方案一>右键一>选中添加一>选中新建项目一>模版一>Visual C#一>控制台应用程序(.Net Framework)。
注意:一线码农WCF系列课程1里面SOA思想下各语言发展的宿主都是可以的。
2、项目添加引用“System.ServiceModel” 和 宿主项目“WcfServiceLibrary4”
3、在Program.cs引入
using System.ServiceModel;
using WcfServiceLibrary4;
4、启动ServiceHost
//创建ServiceHost,参数是它承载的service名字
ServiceHost host = new ServiceHost(typeof(Service1));
host.Open();
5、把WCF服务库的App.config拖拽到宿主程序名字上,替换宿主程序App.config。
WCF服务库的App.config和宿主程序App.config里面的“add baseAddress = ” 的端口号改的不一样
6、更改baseAddress地址更像一个接口地址
<system.serviceModel>这个节点下内容都是wcf自动生成的
serviceBehaviors标签里面的httpGetEnabled="True"是指:http能否访问元数据
<service name="WcfServiceLibrary4.Service1">WCF服务库的实例名字
<endpoint address="" binding="basicHttpBinding" contract="WcfServiceLibrary4.IService1">contract表示WCF服务库的接口名字
7、F5 或者 点击定居工具栏启动 调试功能。
注意:如果是同一个电脑直接浏览器访问baseAddress,如果是不同电脑访问需要把baseAddress里面的localhost改为开发电脑的IP。
但是请注意这时候还不是常用的http传输json的接口,所以不能用postman测试。
创建WCF客户端:服务引用
点击客户端项目的引用一>右键一>添加服务引用一>地址(服务端baseAddress活着访问成功标志图里svcutil开头的地址)一>点击"GO",获取服务操作一>输入新的命名空间NewServiceName一>点击确定
在Program.cs的main函数编辑代码:
NewServiceName.ServiceClient client = new NewServiceName.ServiceClient();
var result = client.GetData(10);
Console.WriteLine(result);
Console.Read();