Wcf远程过程调用

时间:2011-01-18 20:10:48

标签: c# .net wcf

我为大型组织创建了自定义发布/部署日志应用程序。前端已在Adobe AIR中使用amfphp进行通信进行备份。表现非常出色。目前,我被要求集成一些Windows功能(即outlook calendar,sharepoint)。我认为使用本机客户端更容易,我尝试在wpf中创建一个模型(托管,但仍然是本机),它看起来非常好。我的问题是在服务器端。我记得wcf,但令我惊讶的是它是一个soap框架(xml)并且不支持客户端和服务器之间的对象交换。所以我的问题是如何向客户端发送一个“用户”对象,就像我已经用amphph做的那样?

2 个答案:

答案 0 :(得分:0)

amfphp对ActionScript对象进行二进制序列化。您应该能够使用代表您的数据的.NET类使用序列化的XML来回传递对象,除非您做的事情相当复杂。服务引用自动公开WCF方法参数中使用的类型并将类型返回给客户端。

使用WCF来回传递对象的困难通常在于更改跟踪和并发。如果将一些审计字段(即时间戳)添加到用于来回传递的类中,则应该处理并发。至于您使用哪种类型的并发处理来应用更改,这取决于您的业务规则。

答案 1 :(得分:0)

问题是你在服务器端使用专有技术 - amfphp,这是一个闪存特定的东西,你需要实现客户端可以使用的标准,并且有很多选项。

  1. 来自PHP的SOAP服务(http://au2.php.net/soap
  2. JSON(http://pear.php.net/package/Services_JSON)在.NET中使用JSON.NET(http://json.codeplex.com/
  3. 简单REST(定义您自己的基于文本的数据结构)
  4. 我认为SOAP有点冗长,滚动自己很麻烦。来自Web / PHP背景,我想JSON将是一个舒适的选择。

    (您可能还需要使用.NET WebClient类)