WCF从理论到实践(14):WCF解决方案模板

正所谓磨刀不误砍柴工,虽然VS2008为我们提供了WCFServiceLibrary项目模板,但在实际开发的时候,我们通常更喜欢按照自己的方式来建立WCF项目,通常情况下,我们将服务契约(通常是接口)数据契约,消息契约等契约单独作为一个项目,而将服务的实现作为另外一个项目,除此之外,还包括WCF服务的宿主程序,服务代理项目,客户端程序.我按照这种方式,作了一个WCF解决方案的通用模板.项目列表如下:

项目名称

说明

Wcf.Contracts

契约项目,用于定义服务契约,数据契约,错误契约,消息契约等

Wcf.ServiceLib

服务实现项目

Wcf.Host

一个Console的服务的宿主

Wcf.WebServiceHost

一个IIS宿主

Wcf.Proxys

服务代理项目

Wcf.Client

客户端项目

 

在Console宿主中,有三种托管方式

  1. 适用于局域网的NetTcpBinding
  2. 和Xml Web Service相似的BasicHttpBinding
  3. 和WSE相似,且带有回调支持的WsDualHttpBinding

并且指定了解决方案的起始项目为多个启动项目为Wcf.Host 和 Wcf.Client,这更利于WCF项目的调试.

运行效果:


模板文件下载: /Files/jillzhang/WcfProjects.rar

作者:jillzhang
出处:http://jillzhang.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
Tag标签: WCF
posted @ 2008-04-13 16:35 Robin Zhang 阅读(4672) 评论(25)  编辑 收藏 网摘 所属分类: WCF

  回复  引用  查看    
#1楼2008-04-13 16:46 | 秋千      
兄弟周末也不休息呀
  回复  引用  查看    
#2楼2008-04-14 08:53 | 李战      
http://www.cnblogs.com/Emoticons/yoyocici/223852199.gif" alt="" />路过
  回复  引用  查看    
#3楼2008-04-14 09:19 | winzheng      
呵呵,好敬业啊
  回复  引用    
#4楼2008-04-14 11:05 | 空 格[未注册用户]
总觉得你产量很惊人...
  回复  引用  查看    
#5楼[楼主]2008-04-14 12:03 | jillzhang      
@空 格
以后我会逐渐发慢速度,提高质量,:)

  回复  引用  查看    
#6楼2008-04-14 17:38 | 陈旭85      
楼主的WPF系列怎么没了,一直在期待中!
  回复  引用  查看    
#7楼2008-04-15 12:22 | 生鱼片      
支持
  回复  引用    
#8楼2008-05-06 13:56 | meko[未注册用户]
感谢楼主,学到了很多的东西
  回复  引用    
#9楼2008-05-31 11:16 | 织诗_恒[未注册用户]
支持 支持 ~~~~
  回复  引用  查看    
#10楼2008-06-18 15:17 | flank.chen      
有质量,有速度更好。
  回复  引用    
#11楼2008-06-27 08:36 | Xboy[未注册用户]
Wcf.Proxys
如何生成?谢谢

  回复  引用    
#13楼2008-06-27 10:30 | Xboy[未注册用户]
楼主您真是大好人呀!!!
谢谢啦,我又有问题了...我想请你吃饭...
要是选MS MVP 我一定支持你.
我在用jillzhang WCF例子 改动了一下服务类,返回一个Mydata结构,可是为什么客户端收到不返回值呢? 详如下:

项目名称 说明
Wcf.Contracts 契约项目,用于定义服务契约,数据契约,错误契约,消息契约等
Wcf.ServiceLib 服务实现项目
Wcf.Host 一个Console的服务的宿主
Wcf.WebServiceHost 一个IIS宿主
Wcf.Proxys 服务代理项目
Wcf.Client 客户端项目
URL:http://www.cnblogs.com/jillzhang/archive/2008/04/13/1151342.html

原Wcf.ServiceLib 类为:

namespace Wcf.ServiceLib
{
public class Service:Contracts.IService
{
public MyData GetData(int filed)
{
Console.WriteLine("服务执行!");
return new Mydata();
}
}
}
我改为:
public MyData GetData(int filed)
{
Console.WriteLine("服务执行!");
MyData xxx = new MyData();
xxx.Data1 = 8888;
Console.WriteLine(xxx.Data1.ToString() );
return xxx; /// <---------------------xxx的值返回不到客户端
}

客户端为:
NetTcpBinding bind = new NetTcpBinding();
EndpointAddress address = new EndpointAddress("net.tcp://127.0.0.1:6547/Service");
Proxys.IService ws = new Proxys.ServiceClient(bind, address);
Wcf.Proxys.MyData myData = ws.GetData(10);
Console.WriteLine(myData.Data1.ToString()); <---------这里显示一直是0
Console.Read();


  回复  引用    
#14楼2008-06-27 11:37 | Xboy[未注册用户]
我知道了...重做代理.cs 就行了

谢谢

  回复  引用  查看    
#15楼[楼主]2008-06-27 14:12 | jillzhang      
@Xboy
:)
做服务,一定要记住,服务更改之后,大多数情况下要更改代理的。这在以后做服务与客户端交互的双方协作中是一个非常重要的问题,不可忽视

  回复  引用  查看    
#16楼2009-02-24 13:37 | 咸鱼翻身      
重做代理咋做的啊?
谢谢

  回复  引用  查看    
#17楼2009-02-24 13:53 | 咸鱼翻身      
这个也不算服务更改
只是函数体发生了变化吧

  回复  引用  查看    
#18楼2009-02-24 14:14 | 咸鱼翻身      
您好,在使用这个WcfProjects时候发现一点小问
题?请问怎么生成本地代理类,谢谢。

  回复  引用    
#19楼2009-03-19 18:35 | windfly01[未注册用户]
请教楼主一个问题
net2008中+sp1,framework3.5+sp1新建web项目时候,找不到ajax-enabled wcf service项目模板,请问需要安装什么component?哪里有下载?

  回复  引用    
#20楼2009-03-19 18:37 | windfly01[未注册用户]
请教楼主一个问题
net2008中+sp1,framework3.5+sp1新建web项目时候,找不到ajax-enabled wcf service项目模板,请问需要安装什么component?哪里有下载?

期待您的指点




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1151342




相关文章:

相关链接: