首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >企业级DataContracts是一个很好的实践吗?

企业级DataContracts是一个很好的实践吗?
EN

Stack Overflow用户
提问于 2009-01-13 23:00:10
回答 3查看 712关注 0票数 3

在企业级程序集中定义DataContracts,然后在WCF服务项目中引用它们,而不是在单个WCF服务解决方案级别定义它们,这是一种良好的实践吗?我所见过的所有WCF示例都回避了这个主题,并且只在服务解决方案中定义了DataContracts。与我交谈过的一些程序员希望将DataContracts看作是企业级规范数据模型的另一种风格,而不是服务本地契约。我还没有找到任何支持或反对这一观点的论据。

这个问题可能很难选择正确的答案,但我会试一试。我至少会对任何我认为有助于我对这个话题的理解的事情表示赞同。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-13 23:29:31

我真的很喜欢将DataContracts (和服务契约)放入程序集中,然后将它们与服务和客户端等共享的想法,但我看不出有任何好的理由将它们全部放入一个整体程序集中。

根据它们的使用方式将它们放入程序集中更有意义。如果在多个服务和客户端之间共享它们的组,则这是一个组装,依此类推。

这样做消除了公开元数据的需要,我认为它会让您做一些很好的事情,比如挂接到服务器端和客户端的序列化事件中。

票数 8
EN

Stack Overflow用户

发布于 2009-01-14 23:28:19

IDesign.net的人建议在项目之间共享契约程序集。我个人推荐这样做,而不是为所有东西创建代理。真的没有一个令人信服的理由不这样做。

在这里确保您的关注点是分开的,这一点很重要。您建议的程序集应该只包含类型,而不包含任何实现,否则您会被更频繁地重新分发DLL所困扰。

我还建议您将版本合并到程序集中的契约分组为程序集,而不是一个整体程序集。在对企业级合同进行非常小的更改时,这将减少您的开销。

票数 2
EN

Stack Overflow用户

发布于 2009-01-13 23:30:04

与计算机科学中的大多数事情一样,答案是-这取决于:)

您的数据契约类是否只与一个、两个服务或整个企业的范围相关?它们可能会改变吗?想一想这些问题。

如果您确实想让它们成为全局程序集的一部分,并且您正在使用DataContract 3.5 Sp1,那么您应该知道,您的数据类中不再需要DataContract/DataMember属性。如果你不想依赖于System.ServiceModel (大多数情况下你并不想依赖),它可能会很有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/441216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档