我正在尝试将一个相当复杂的类库作为服务公开,我认为 WCF,但是非常环保,并且正在努力理解我在架构上能做什么和不能做什么。如果我的客户也是 .NET(比如说 WinForms、WPF 和/或 ASP.NET MVC3),那么编写一堆合同来重新公开公共类或序列化复杂对象似乎有点过头了。从那里的许多教程中很难知道,因为其中很多只适用于值/原始类型。
WCF是要走的路吗?如果是这样,如果类库将管理数据的所有方面并且只公开对象,那么哪种风格最容易实现?
一个简单的类比:一个HumanBody
需要作为服务公开的类,允许多个用户,永远在线等。如果我有一个 .NET Applause 客户端,我想做类似的事情
ServiceName.HumanBody myBody = new HumanBody();
myBody.Parts.Hands.Clap();
我必须将这些对象转换为接口并编写一堆包装器方法,但这些对象是“完整的”,因为它们存在——这就是为什么我觉得它有点矫枉过正。(我知道我没有正确考虑这个问题——这就是问题的原因。如果这些问题太模糊,我会改进评论/答案。)
(另外,请注意,我并不是在问如何实际完成这个问题——这个问题已经有很多版本了,这里和这里有几个值得注意的好答案。还有一个非常有用的教程关于如何构建你自己的WCF 架构,这里没有 VS 自动添加的混乱。我正在自己完成构建。)