是否有关于从.NET Web服务返回(或 NOT 返回数据集)的最佳做法?一个阵营说我们应该提升互操作性并使用XML模式来定义Web服务有效负载,另一个阵营说我们应该返回数据集,因为它在Visual Studio中很简单,并且可以更快地完成工作。
反数据集阵营中的一些论点:
亲数据集阵营中的一些论点:
答案 0 :(得分:3)
使用数据集?我会说一千次没有。它们不能与其他工具包互操作(如您所述)。当然,你现在唯一的消费者是.NET,但事情可以很快改变,做好准备是很好的。
请参阅The XML Files进行阅读。
此外,如果您正在开发新服务,请使用WCF编写它们。然后你可以随意暴露它们。如果服务和使用者是内部的并且都是.NET,那么您可以使用TCP绑定来获得更好的性能。然后,当其他人想要与您的服务进行通信时,您可以添加新的Web服务绑定,以便他们的Java应用程序(例如)可以与您的服务进行互操作。有关方便的流程图,请参阅Choosing the right WCF binding。
答案 1 :(得分:1)
我会在营地里你不应该发送它,但这是一个决定,将根据对你公司重要的事情做出。
如果您设计的Web服务API基本上是公司与客户之间的合同。因此,公司中的某些人可能会开始将此API用于关键任务操作。
然后你得到一个让它在Blackberry上工作的请求。现在你必须改变web服务,这可能会破坏其他应用程序,从而导致连锁反应。
因此,如果您确定除了.NET之外您永远不需要支持其他平台,那么您可以选择第一个选项。
答案 2 :(得分:0)
我也不会选择数据集(就像这里的大部分社区一样)。就像James说的那样,你永远不会确定你的服务只会被.NET应用程序使用。 Web服务的主要原因是它是一种可供所有技术使用的标准,如果您创建它是正确的。
DataSet还打破了域驱动设计和层分离的想法,因此不像过去那样被吸引。 我只将它们用于需要快速和肮脏的演示;)
如果您真的想要一种“简单”的开发方式(在IDE中)并且仍然符合所有标准,请考虑使用WCF创建服务。