为什么我应该使用Object而不是DataSet作为我的WCF方法的返回类型?

时间:2011-09-30 13:55:44

标签: object dataset return-type wcf

我听到有人说将返回DataSet作为WCF方法的返回类型并不是一个好习惯。如果我使用DataSet作为我的方法的返回类型有什么问题?使用对象列表而不是数据集有什么好处?

发送State对象列表(ID,StateCode,StateName)或DataSet?

朋友告诉我,将DataSet作为返回类型具有优势。如果明天客户说(假设我发布了服务而一些外部客户正在使用它),我的客户说我想要更多关于该对象的信息(例如:需要一个关于状态的“注释”字段),我不知道需要改变合同的签名。我只是将笔记添加到我的数据集中。这不会破坏任何现有合同。

我听说如果使用数据集会出现性能问题?这种影响有多大?还有什么问题?为什么人们写DataSet是邪恶的?

尝试通过转换为良好的编码实践来发展成为优秀的开发人员。

1 个答案:

答案 0 :(得分:1)

数据集泄漏平台详细信息。数据集是Microsoft实现,当您通过服务公开它时,使用与公开的数据相同的平台的客户端只能使用该服务。这基本上使您的服务仅在微软平台上消耗,而不是服务的整个过程。另一件事是,序列化时的数据集包含大量无关的客户端数据,如数据关系等。

关于“Notes”示例,在定义服务时,Boundaries应该是显式的。因此,外部世界必须知道您通过服务及其结构发送的数据类型。