2009-07-28 78 views
1

我想知道哪個更快。讓我給你這個場景。我是一個局域網上,有一個報告生成使用從SQL Server數據庫中的數據(如果我們需要的版本,讓我們說2005年),並有越來越做報告的這些方面:哪個傳輸速度最快:XML或DataTables?

  1. 有一個Web服務在服務器上,從服務器獲取數據並將其序列化爲XML。客戶端使用此XML作爲客戶端計算機中構建的報告的源。客戶將是一個Windows窗體應用程序。

  2. 從客戶端,使用ADO.Net連接到數據庫,獲取DataTable並將其用作客戶端中構建的報告的源。

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

此外,有沒有更好的方法來做到這一點?

+0

這是一個ASMX網絡服務,或WCF嗎? – 2009-07-28 12:04:19

回答

3

對於XML的序列化將花費時間來完成它,XML結構的開銷和反序列化的時間。但是,它會提供一種可被更多技術消耗的格式。如果您使用的是端到端的.NET,而且這種情況不太可能發生變化,那麼我不會使用XML,而是使用框架提供的數據訪問方法。就我個人而言,我可能會使用LINQ over DataTable或DataReader,但更多的是爲了易用性和客戶端的可讀性,而不是任何性能優勢。

2

最佳做法是不要在Web服務的界面中使用特定於.NET的類型。即使您今天確定您的服務永遠不會被.NET程序以外的其他程序調用,事情也會改變,並且明天您可能會被告知該服務將被Perl程序調用。

Perl程序不理解DataSet。也不是Java程序,也不是.NET以外的任何其他程序。

最好的做法是創建一個只包含需要傳輸的數據的數據傳輸對象,使用基本類型的簡單屬性或基本類型的集合或數組,或者數據傳輸對象的集合或數組等。任何客戶都可以理解。

+0

我不知道那件事。設計你所知道的。當不可能的時候,不要花費時間編碼XML。我是互操作性的粉絲,但我是一個不浪費時間的非常迫切的事情。如果沒有業務增值,不要這樣做。 – geowa4 2009-07-28 12:09:41

相關問題