2011-12-04 36 views
4

我正在研究爲客戶端開發新版本的客戶端/服務器應用程序。目前的解決方案是在asp.net mvc中的一個網站。從我的客戶端連接到我的數據庫的最佳策略

該應用程序的目的是建立一個數字標牌解決方案,這意味着在客戶端用戶將創建播放列表,從視頻和圖像,並安排他們在屏幕上顯示。要顯示的項目是WPF用戶控件,其中一個用於圖像邏輯,另一個用於關於視頻的邏輯。

當前的應用程序是基於Web的,並直接訪問中央數據庫。當所有客戶(提供信息的客戶)請求數據時,都是通過web服務完成的。儘管客戶要求更「豐富」的行爲,但客戶非常樂意使用基於Web的客戶端。這包括一個主要要求,即預覽單個「幻燈片」和幻燈片集合。

我開始將此作爲WPF應用程序開發(由於wpf用戶控件的預覽而丟棄silverlight)。現在我面臨着定義如何訪問數據庫的問題/挑戰。客戶可能需要與現在一樣的使用模式,他們可以隨便使用自己的labtop,因此不會像數據庫一直在同一網絡中。我的問題是這樣的:我應該如何設計數據庫連接層,我是否應該選擇純Web服務,以便每個人都使用它,或者我應該創建某種斷開模式,然後他們可以在家工作,然後連接並同步他們的數據?我是否應該要求它們與數據庫位於同一網絡中,因此我可以直接使用數據庫層和連接字符串進行連接?

將一個Web服務爲基礎的方法是處理圖像速度不夠快,視頻(想着這些僅加載縮略圖,否則數據將殺死性能〜幾個GB OG數據)。我正計劃在客戶端上使用縮略圖,當他們在家庭網絡上連接並獲取所有大視頻和圖像時...

回答

1

在設計應用程序時,值得記住KISSYAGNI原則,並謹慎過度的解決方案和過早的優化。

如果我理解正確的話,你有一個工作的web應用程序,其中,被要求的唯一另一個特點是各種各樣的幻燈片。
你可以找到很多jQuery(或任何其他web客戶端框架)解決方案。

如果,然而,你決定開發一個新客戶 - 你已經有哪些工作以及web服務!我會建議使用它。

關於將數據存儲在客戶端的想法 - 這是YAGNI的經典候選人;測試你的應用程序的性能,然後看看你是否需要一個像緩存什麼更復雜的客戶端等

A面筆記記錄具有客戶端應用程序訪問數據庫直接是不推薦的方法;它有效地取消了'客戶端 - 服務器'的'服務器'部分,並且導致了演示文稿和業務邏輯/數據訪問之間的高度耦合。
在負責獲取請求的文件的服務器上有一個WCF應用程序會更好。

+0

謝謝,生病斷開客戶端從數據庫。是的,KISS和YAGNI永遠不應該被遺忘 - 我有時會陷入這個,想得太遠 –

相關問題