了解WCF的工作原理

Huz*_*gdi 3 nhibernate silverlight wcf dto

我在客户端UI(Silverlight 3.0)和数据层之间使用WCF服务.我们正在使用NHibernate进行数据库访问.所以请告诉我,我的以下理解是否正确:

  • UI调用WCF以获取保存方法(例如).
  • WCF中有一个Save方法,它实际上从数据访问对象中封装了一个Save方法.
  • Save的数据访问对象方法依次封装了NHibernate的默认保存方法,它实际上将一些业务对象保存到数据库中.

也有人可以告诉我,我们如何将对象从WCF传递到UI(Silverlight 3.0)层,反之亦然.我读过我们使用DTO.但是DTO如何运作?它们是否与WCF中的"数据合同"相对应?如果没有,那么是否在WCF(服务器)端和客户端代码上声明了DTO?

mar*_*c_s 5

不,不太......

  • UI调用客户端代理方法 Save
  • WCF运行时接受该调用并传入所有参数,并将它们序列化为消息(通常是XML序列化消息)
  • WCF运行时通过某种传输介质(无论它是什么)发送序列化消息
  • 在服务器端,WCF运行时获取传入消息
  • 消息被反序列化,识别处理它的适当类和方法
  • 通常:实例化服务类的新实例以处理请求
  • WCF运行时解压缩参数并在服务类上调用相应的消息

  • 相同的步骤 - 基本上是向后 - 完成响应

重要的一点:客户端和服务器之间唯一的东西序列化的消息(可以通过电子邮件或鸽子信使发送) - 没有其他连接 - 没有"远程对象调用"或类似的任何东西