2013-11-05 33 views
0

我一直在開發Web應用程序在傳統的ASP在我以前。我們聽說過MVVM風格和knockoutJS。我們認爲這可能會更好地改善客戶端響應時間,並在MVVM中藉助knockout,html(aspx頁面)& webservice(asmx)編碼繼續前進。任何MVVM風格的應用程序與淘汰賽,html,asmx

在我們所有的標記中,我們避開了aspx控件,並使用了帶有敲除綁定的html標籤。只有在使用會話狀態的必要性時,我們在aspx.cs上編寫了一些編碼

但是,我不確定這是使用MVVM(或)的正確實踐嗎?在使用knockout,html和asmx構建應用程序。

對此的任何評論將爲我們展示一個明亮的方式。

+0

我同意這是一個基於意見的問題。然而,分享經驗將讓我們瞭解不同的設計風格,其中我們可以選擇是否有優勢。 –

回答

2

我認爲將數據,視圖模型和視圖html分開是個好主意。

視圖的html(包含數據綁定屬性)應由asp.net提供。視圖模型將包含客戶端業務邏輯,並將存儲在單獨的js文件中。然後,您將使用Web服務將數據發送到客戶端,最好以json形式提供,以便在客戶端輕鬆進行反序列化。

視圖模型將知道如何從Web服務請求數據,並知道如何在數據到達時自我更新。如果您正確設置了數據綁定屬性,則接口將根據視圖模型中的更改自動更新。對於頁面初始狀態(當它第一次加載時),你可以提供一個初始的數據集與HTML(只需在html中的js變量中寫入json),或者設置一個「加載」狀態在頁面加載,並要求從Web服務的數據。

然後,您需要確定您的應用程序的行爲類似於單頁應用程序的程度。你是否會經常提交頁面到服務器,或者發出大量的Ajax請求?當我們在過去通過一個非常大的項目完成這項工作時,我們構建了應用程序的各個部分(如單頁應用程序),而其他內容(主要是無聊的部分,如用戶管理)是標準形式,帶有標準提交。

最後,決定在Web服務(服務器端)內運行多少業務邏輯,以及視圖模型(客戶端)中的多少。