C# SOA数据契约模式。我确信我使用的框架引入了冗余,有人愿意启发我吗?

C# SOA数据契约模式。我确信我使用的框架引入了冗余,有人愿意启发我吗?,c#,.net,wcf,design-patterns,soa,C#,.net,Wcf,Design Patterns,Soa,我将以大多数人似乎已经习惯的方式开始,在这里 所以我。。。。 不,那是个伤口。我会重新开始(可能会因为没有直截了当而丢掉几分,但是会有更多) 对 我继承了一个框架,该框架使用WCF提供一些操作和数据契约 这可能会让一些人感到厌烦,但我还没有对SOA或WCF进行足够的阅读,以获得关于有效模式(或最佳实践)的知识,因此,到目前为止,我对我的团队在这个问题上还没有形成正确的意见 作为我正在使用的框架中的一个例子,有一系列供用户使用的模型 具体而言,我们有以下模型(数据合同): 用户已加载 用户\u修

我将以大多数人似乎已经习惯的方式开始,在这里

所以我。。。。 不,那是个伤口。我会重新开始(可能会因为没有直截了当而丢掉几分,但是会有更多)

我继承了一个框架,该框架使用WCF提供一些操作和数据契约

这可能会让一些人感到厌烦,但我还没有对SOA或WCF进行足够的阅读,以获得关于有效模式(或最佳实践)的知识,因此,到目前为止,我对我的团队在这个问题上还没有形成正确的意见

作为我正在使用的框架中的一个例子,有一系列供用户使用的模型

具体而言,我们有以下模型(数据合同):

  • 用户已加载
  • 用户\u修改
  • 用户创建
出于所有意图和目的,这些数据契约完全相同——除了“类型”之外,它们具有相同的成员和属性等,这是我的第一个问题

使用数据契约的操作具有与您可能希望执行某些操作的数据契约匹配的参数

因此,使用数据合同的运营:

  • CreateUser(用户\u创建createdUser,…)
  • ModifyUser(用户\修改ModifyUser,…)
  • GetUser(out users\u Load loadeuser,…)(将参数列表最左侧的参数输出到引导!?)
也许目的是描述模型和操作之间的相互关系,但根据我的经验,方法及其参数列表通常能很好地指示我们需要做什么

当然,一个数据契约就足够了,甚至可能是一个操作(带有操作类型参数)

我没有抓住重点。你为什么要做我描述的事

谢谢


听起来以前的开发人员要么试图实现一些卑鄙的命令模式,要么根本不理解WCF


长答案短,是的,根据您所说的,您应该可以将这些组合到一个UserDto类中,该类是所有三个操作的DataContract。就svcutil而言,在客户端生成一个适用于所有三种OperationContract方法的DataContract类应该不会有问题(或者,因为您似乎控制了此服务的双方,所以只需在客户端和服务器上使用包含DTO的共享程序集即可)。

听起来像以前的开发人员他们要么试图实现一些卑鄙的命令模式,要么根本不理解WCF


长答案短,是的,根据您所说的,您应该可以将这些组合到一个UserDto类中,该类是所有三个操作的DataContract。就svcutil而言,在客户端生成一个适用于所有三种OperationContract方法的DataContract类应该不会有问题(或者,由于您似乎控制此服务的双方,所以只需在客户端和服务器上使用包含DTO的共享程序集即可)。

需要检查命令模式的意图。你们说得对,我可以访问共享程序集,也可以访问客户端和服务器。需要检查命令模式的意图。你们说得对,我可以访问共享程序集,也可以访问客户端和服务器。