2011-03-04 60 views
0

我有一個項目,我們正在考慮優化程序的某些部分。 它基本上是一個3層的層次結構,下面將粗略地說明我們的結構。SQL的有效方法

UI - ASPX和aspx.cs

商業邏輯 - Web服務

數據訪問 - 駐留在Web服務項目的一個單獨的類。

示例: 現在的做法是當我們檢索數據時,我們從Web服務中檢索數據集並將其返回到UI以處理數據的顯示。爲了更改數據庫,已更改的數據集將傳回到Web服務。對於少量的結果,這不會造成太大的問題,但是當結果很大時,web服務也會傳遞更大的xml,從而大大降低性能。

那麼有沒有人會使用這種類型的結構,並有更好的方式來處理數據庫結果?現在,這個練習被用在所有的CRUD中,所以我的想法是創建和刪除,甚至更新,我們可以跳過數據集的傳遞,並使用線性命令,但我不確定這是一個好的方法

回答

3

如果通過數據集你的意思是DataSet那麼這是永遠不應該傳入和傳出Web服務的東西。我會建議您在與服務進行通信時使用POCO類。 DataSet已經在內部執行了XML序列化/反序列化,當您將其發送到Web服務時,此序列化/反序列化將發生兩次。另一個提示是不要將整個數據集重新發送回Web服務,而只是在調用之間發生了改變以減少網絡流量。

+0

我明白你的意思,但這是我目前的結構,他們也打算改變,因此要求我看看並提出建議。 POCO能夠和Web服務一起工作嗎?我仍然在POCO上找到信息 – 2011-03-05 02:24:33

+0

我還在考慮第二個選項,但我需要探索第二個選項,以查看是否可以輕鬆操作2個不同的數據集並將它們合併在一起。老實說,我一直在使用datareader主要,直到最近我必須回數據集 – 2011-03-05 02:30:36

0

經驗法則:在web應用程序中,您只需要在客戶端和服務器之間交換所需的數據。我的意思是所有的過濾等都應該在服務器端完成。

一些想法是:使用分頁,避免數據集,只向你打算顯示的WS請求這些信息!

+0

是的,我知道這一點,但以前的結構不是由我創建的,他們使用數據集使它更容易開發,因爲它們只是需要傳遞該數據集對象並在更改後調用update。我需要的是作爲工作示例的東西,它可以讓我通過web服務來做W/O大量開銷 – 2011-03-05 02:28:19