在.NET WCF服务中组织大量方法的好方法是什么?

时间:2011-07-25 15:49:13

标签: .net wcf

我目前正在使用界面中定义的大量方法的WCF服务。这些方法中的大多数是简单的CRUD操作,使用实体框架有一些逻辑,并且可以很容易地分成功能区域。只有一个文件接近1K行代码,我想将其拆分以保持可维护性。我正在考虑以下事项:

  • 将服务文件拆分为部分类。但它仍然是一个代码量很大的单个类。尽管如此,我想这真的不是问题。
  • 有一个实现具有标准错误处理和ObjectContext创建/销毁的服务接口的类,但将调用路由到静态帮助程序类。我以前做过这个,但不知怎的,我感觉不干净。

此外,根据功能区域或CRUD方法进行拆分会更好(组合在一起,共同创建等)。

在处理WCF服务时,这一定是一个非常常见的问题。组织WCF服务方法的好方法是什么?

更新

最后,我决定将服务调用传递给内部静态类。

2 个答案:

答案 0 :(得分:8)

如果操作可以按功能区域分组,则它们应该是单独的服务,因为与任何其他类一样的服务应该具有单一责任=单个功能区域。

一般来说,如果您的服务有很多操作,那么现在是时候解决它了。此外,大多数情况下,WCF服务只包含某些逻辑,因此您可以创建包装逻辑的其他类的实例,或者在服务操作中使用静态类。

编辑:

一般来说,我反对使用部分类来打破一个大班 - 在我看来,它并没有提高可维护性。一旦一个类如此庞大以至于你正在寻找将其分解为多个文件的解决方案,那么它已经意味着很久以前就已经完成了重构。在最糟糕的情况下,当你的班级做得太多时,我们可以称之为反模式:God object

答案 1 :(得分:2)

为了可维护性,使用部分类似乎是一个不错的选择。如果它们在功能上是分开的,则可维护性得到改善,因为您只需要查看其中一个或两个类。

根据你的答案,仍然有一个庞大的课程有很多方法的事实并不是真正的问题。它应该是可维护的。

但是,要关注@Ladislav,将它们分成不同的服务对你有什么价值吗?我没假设,否则你会这样做。