哪种传输速度最快:XML或DataTables?

时间:2009-07-28 11:57:51

标签: asp.net web-services ado.net report

我想知道哪个更快。让我给你一个场景。我在局域网上,有一个使用SQL Server数据库中的数据构建的报告(如果我们需要版本,比如2005),并且有这些方法来完成报告:

  1. 在服务器上提供Web服务,其中数据从服务器获取并序列化为XML。客户端使用此XML作为客户端计算机中构建的报告的源。客户将是一个Windows窗体应用程序。

  2. 从客户端,使用ADO.Net连接到数据库,获取DataTable并将其用作客户端中构建的报告的源。

  3. 与(2)相同,但使用DataReader。

  4. 另外,有更好的方法吗?

2 个答案:

答案 0 :(得分:3)

对XML的序列化将花费它所花费的时间,XML结构的开销以及反序列化的时间。但是,它将提供可由更多技术消费的格式。如果你使用.NET端到端,并且不太可能改变,我不会使用XML,而是使用框架提供的数据访问方法。就个人而言,我可能会使用LINQ over DataTables或DataReader,但更多的是为了便于使用和在客户端的可读性而不是任何性能优势。

答案 1 :(得分:2)

最佳做法是不在Web服务的界面中使用特定于.NET的类型。即使您今天确定您的服务永远不会被.NET程序以外的任何东西调用,但事情会发生变化,明天您可能会被告知该服务将由Perl程序调用。

Perl程序不了解DataSet。 Java程序也不是,也不是.NET。

最佳做法是创建一个数据传输对象,其中只包含您需要传输的数据,包含基本类型的简单属性,或基本类型的集合或数组,或数据传输对象的集合或数组等。这些将任何客户都可以理解。