2010-05-24 134 views
0

請我需要幫助。Web應用程序與Web服務與經典應用程序的對比

我有一個項目,我需要的應用程序與本地數據庫服務器通信,並與中央遠程數據庫服務器同時完成一些任務(從本地服務器創建訂單讀取股票配額,然後向中央訂單數據庫寫入訂單,... )。 因此,我不知道哪種架構和技術可以做到這一點。 Web應用程序,每臺計算機上的.NET WinForms客戶端應用程序,還是帶有客戶端應用程序的基於Web服務的中央應用程序? 這些方法之間的一般差異是什麼?

感謝

回答

0

如果你不想直接暴露你的數據庫的客戶,我建議具有之間的Web服務層。根據數據的敏感性和網絡的安全級別,我建議使用Web服務方法(您可以自己管理數據加密,無需昂貴的SSL證書)或Web界面(可能會更容易構建,但安全性有限)。

0

我同意托馬斯Web服務層可能是好的。但是,當選擇webforms或winforms時,我不認爲你的問題包含足夠的信息來做出選擇。

我想說,如果你想要一個功能強大且功能豐富的用戶界面,並且希望簡化開發,Winforms可能就是要走的路。但是如果你需要它可以從各種各樣的客戶中獲得,並且想要更容易的維護和部署,那麼Web應用可能是最好的。

0

首先,關注這些數據庫之間的確切關係。 「本地」是什麼意思。就在用戶的桌面上?在他們辦公室的所有用戶之間共享?據推測本地報價(你的意思是股票報價而不是配額?)相對於中央訂單服務器的世界觀可能會有點過時。這很重要嗎?我以78.34的價格訂購100 X,實際價格可能會有所不同。什麼是預期的行爲。

我的猜測是至少有一些業務邏輯,所以我們需要決定在哪裏運行。一種(胖客戶端)方法是將該邏輯放在桌面上,然後桌面應用程序可以直接寫入中央數據庫。我不傾向於這樣做有幾個原因:

  1. 每個客戶端桌面獲取數據庫連接。縮放並不好,最終數據庫在用戶數量變得非常大時變得不快。
  2. 如果我們需要一個稍微不同的應用程序,可能通過Web或其他方式暴露給不同的用戶,我們最終會重現該業務邏輯。

另一種方法(基於瘦或基於瀏覽器)將UI保留在桌面上,但將邏輯放在服務器上。客戶端然後可以調用某種服務。現在有很多可行的方法,一個簡單的Web服務或Rest服務就可以完成這項工作。我希望很明顯,這個以服務爲基礎的方法解決了我上面的兩點。

由對稱性我會以同樣的方式對待本地數據庫,將它們包裝在服務中。然而,數據庫之間可能存在一些更復雜的關係,在這種情況下,您可能需要本地服務層與中央服務層進行交互。

我在宣傳不重複自己的一般原則,實施每一項業務邏輯一次。