最近想把有关WCF的内容做一个全面的整理想写一个系列的文章出来供大家参考以前也写过相关WCF的博客但是都是零零碎碎的这次从头对WCF做一个全面的整理希望大家给予支持和帮助! 如果时间允许的话本人会做一个同步视频教程供大家交流如果大家有好的视频录制软件请提供提供最好录制完后视频压缩后容量特别小方便上传到视频空间 咱们言归正传说下WCF吧! WCF简介 了解WEBSERVICE的同学知道WEBSERVICE通过HTTP协议进行传输创建webservice后我们只需要在公网中给出一个URL就可以在客户端远程调用WCF其实也是这样不过WCF的功能更强大可以通过 tcp/ipmsmq等多种方式进行传输 从功能的角度来看WCF完全可以看作是ASMXNetRemotingEnterpriseServiceWSEMSMQ等技术的并集但是WCF在统一性兼容性安全性兼容性方面都做了大大提高和整合 SystemServiceModel命名空间包含生成(WCF)服务和客户端应用程序所需要的类型它是微软封装好的一个组件是WCF的核心DLL在进行WCF开发的时候客户端和服务器端都要使用该DLL它包含生成服务和客户端应用程序所需的类枚举和接口这些类枚举和接口可用于生成大范围的分布式应用程序有了此DLL使程序开发和设计更加方便快捷 WCF通过绑定地址契约就可以确定一个服务然后可以在客户端进行调用 WCF入门实例 这个实例演示了在客户端输入内容从服务器端返回该实例使用的HTTP协议客户端和服务端都采用的是WINFORM程序 服务器端启动后在客户端输入内容就可以从服务器端返回消息先看下效果图吧 服务器端 客户端
下面我们看下代码 服务器端APPCONFIG <?xml version= encoding=utf ?><configuration> <systemserviceModel> <services> <service name=WindowsServerWelCome> <endpoint address= contract=WindowsServerIWelCome binding=wsHttpBinding > </endpoint> </service> </services> </systemserviceModel></configuration> 服务器端契约 [ServiceContract] interface IWelCome { [OperationContract] string WelComeTip(string name); } 服务器端契约实现 public class WelCome:IWelCome { #region IWelCome 成员 public string WelComeTip(string name) { return name+ :欢迎你来到WCF学堂!; } #endregion } 服务器端启动代码 private void Form_Load(object sender EventArgs e) { thisText = 服务器端启动; labelText = 服务器端启动; ServiceHost host = new ServiceHost(typeof(WelCome)); hostOpen(); } 客户端配置文件 <?xml version= encoding=utf ?><configuration> <systemserviceModel> <client> <endpoint address= contract=WindowsServerIWelCome binding=wsHttpBinding name=WelCome></endpoint> </client> </systemserviceModel></configuration> 客户端代码 private void button_Click(object sender EventArgs e) { using (ChannelFactory<WindowsServerIWelCome> channelFactory = new ChannelFactory<WindowsServerIWelCome>(WelCome)) { WindowsServerIWelCome proxy = channelFactoryCreateChannel(); string tip=proxyWelComeTip(textBoxText); MessageBoxShow(tip); } } 很简单吧大家动手试下就看到效果了本系列所有实例都使用VS进行开发 |