大型WCF服务的最佳实践?

问题描述:

写一个相当大的wcf服务的最佳做法是什么?包含大量的OperationContracts和DataContracts?大型WCF服务的最佳实践?

如何将功能区域分成几个合同,最好是为每个功能区域创建一个端点?

是否有任何方法可以将不同部分的源保持分开,但仍然只对所有这些部分使用一种服务?

我在哪里可以得到良好的信息如何计划合同,包含什么,如何分割......?

自从成立以来,这是围绕着服务的一个大问题。 SOA的成功完成是SOA计划在你谈论的范围内。话虽如此,我一直更倾向于分裂服务,但以复合方式使用它们。也就是说,当你有几个合同时,有几个端点,但其中大多数只被非服务调用者使用的几个端点消耗。 (哇,这是一口,它甚至有道理?)

此外,我建议尽可能少的合同。太多的合同可能会导致可管理性较差。良好的合同设计将有助于限制终端和服务呼叫的数量。从合同设计中删除面向对象的概念是这样做的一种方式。契约设计本身就是一个巨大的话题,但只要说通过良好的合同规划(预先)就可以达到良好的服务设计。

Maarten Mullender writes a great blog关于WCF的设计,并且是必读。还有一些很棒的SOA/WCF书籍也出现了。

一些好书:

+0

我同意多数认为。并且绝对会将Maarten Mullender的博客添加到您的Feed中! – user9991 2008-10-24 13:55:01

+0

伟大的,谢谢 - 添加博客,现在通过存档阅读! – Sam 2008-10-24 13:58:43

这一直对我很有帮助,它来自idesign.net网站,它是由朱瓦尔·洛撰写:

WCF Coding Standard

我会在这里跟踪并说我已经使用了单片WCF合约,功能上分开的合同(在他的书中Juval的指导方针中最多有10种方法),并且我还尝试过一种消息处理架构,其中服务有一个方法需要一个基本消息,处理程序在线路穿过线路后“知道”如何拆开并处理消息。

我是后者的忠实粉丝,如果你在围墙两侧都有.NET的话。 Oren对代码的想法进行了屏幕录像。我不知道你的需求是什么,但这对我有用。

http://ayende.com/Blog/archive/2008/03/30/Hibernating-Rhinos-8--Going-Distributed-amp-Building-our-own.aspx

这就是说,如果你已经从未来的“我需要一个大的WCF服务”,然后将一个方法很可能不会削减它。如果这是真的,那么Juval Lowy的编程WCF服务是您应该在设计中坚持的标准。

我这里有一篇关于如何操作个人应该从传统的代码操作不同:

http://www.iserviceoriented.com/blog/post/Introduction+to+Service+Oriented+Architecture.aspx

您应该结束了只为实际的商业活动运作。如果你停下来思考“我需要在我的Web服务上启用事务支持”,这意味着你没有设计足够宽的操作范围。您绝不应该启用Web服务事务支持。

我强烈建议比尔普尔的博客更高级别的SOA概念。这里有一个帖子开始:

http://feeds.feedburner.com/~r/BillPoolesCreativeAbrasion/~3/328955489/service-contract-stability.html

我知道这是一个老的文章,但我以同样的方式思考服务的,因为我在节目想的对象。

保持他们的最低要求,他们必须做的。当然不要走到极点,但我会根据数据实体做出决定。对于账户

一个服务,一个用于产品等

不知道什么人会想到,虽然是... ...