【发布时间】:2011-08-02 19:25:52
【问题描述】:
在业务应用程序中,创意是动态的,每天呈指数级增长。 并且没有这样的服务合同符合所有要求,也没有许多合同。 假设我们最终获得了 100 000 个合同,它们最终获得了 100 000 个端点。
有没有人遇到过WCF限制的这类问题? 还是 WCF 不是针对真正的业务应用程序,而是与业务应用程序的集成并暴露了一小部分数据交换?
有人可以提出一些想法吗?
问候
谢谢克里斯,
我也觉得难以置信,100K 表是虚构的,但近 2000 个表是正常的。
假设一个有 100K 表的应用程序,对于每个服务合同,它需要接收或返回一个可序列化的对象,在这种情况下它是一个表实体。 这意味着 10 万个表最终会产生 10 万个更少的服务合约,并且每个表都有一些基本实现,例如 findby 主键、返回某种数组或列表的查询方法以及用于更新/插入的写入方法。
在一个表之上,我们会有很多业务逻辑方法。例如,SalesOrderTable 也会有诸如 create from qoute 等方法,可用于 promise、total、discount、tax...等
如果没有很多合同接口/端点,您将如何拥有可以向客户端提供此类信息的服务合同?
【问题讨论】:
-
我很难相信你最终会获得数十万份合同/端点,除非你做的事情非常错误/奇怪......也许你可以提供一个例子。
-
如果您最终拥有 100k 个端点,那么您就没有很好地考虑实现。您也没有考虑服务版本控制或弃用旧/未使用的服务。也许在一切都说完之后,你已经迭代了超过 100k 端点(仍然很难相信),但你不应该有那么多实际的端点。
-
会好的。服务粒度通常定义了你有多少服务,我见过的大型应用程序的服务和数据合同远少于 100 个,即使是细粒度的服务也是如此。
-
我没有示例应用程序,我仍在思考过程中,我无法确定有限数量的服务合同(每个合同建议 12 次操作)如何组合在一起。
-
那么,您有 2K 表,对于您计划公开 CRUD 服务的每个表?您的客户真的需要这种级别的访问权限吗?是否可以将至少一些表映射到
DataContract,而不是ServiceContract?然后向客户公开更高级别的功能?这应该会显着减少所需的服务/操作的数量。