2013-05-13 61 views
0

我將開始開發一個WPF實時C#應用程序來進行證券交易。我將根據MVVM模式開發此應用程序。因此,在MVVM應用程序的Model部分中,我應該創建View Model部件應該處理的數據結構,填充數據等等。MVVM應用程序的Model部分可以處於活動狀態嗎?

證券交易所交易應用程序的主要部分之一是通過特殊門戶軟件庫從證券交易所接收交易數據。

所以我想知道在哪裏我應該分配這個交易數據接收在我的應用程序中:在接收操作將填充模型數據結構的模型部分和視圖模型將採取這些填充的數據結構來處理它們?或者我應該在應用程序的視圖模型部分中分配這個交易數據接收,其中視圖模型本身將填充最初從模型中獲取的處理過的數據結構?

從MVVM模式的角度來看哪種方法更具規範性?

+0

如果你有Visual Studio 2010,我會強烈推薦[MVVM in the box](http://karlshifflett.wordpress.com/2010/11/07/in-the-box-ndash-mvvm-training/) ,這真是太棒了! – JMK 2013-05-13 14:41:33

+0

我想使用Visual Studio 2012,因爲這個版本的Visual Studio有良好的MVVM Toolkit Light。 – user1688773 2013-05-15 12:50:19

回答

1

IMO這將是Model的責任。 VM是ModelView之間的橋樑,它主要負責處理View(用戶調用的東西)的邏輯。

業務邏輯(未由用戶調用)應駐留在Model中。

在你的情況下,當你說有Web服務獲取數據時,它們應該與模型接口,並且應該是模型應該訪問更新數據的服務。

+0

我不同意將Web服務添加到實際模型中;讓虛擬機執行工作並根據需要更新模型值。這將有助於將模型從任何類型的數據邏輯中分離出來,並允許模型在不需要嵌入嵌入式Web服務的情況下重新使用。 – 2013-05-13 15:36:02

+1

以及你沒有「添加」服務到模型。你所做的只是將「接收更新的股票數據」的行爲包裝到模型「使用」中沒有「具有」的服務中。此外,在虛擬機中使用這種邏輯(這不是用戶調用的操作),如果OP爲不同的佈局視圖添加新的虛擬機,將來會發生什麼?我們需要將此虛擬機中的代碼複製到新的虛擬機或抽象功能中。如果代碼在模型中,那麼虛擬機只是「插入」當前應用程序,而不涉及更多的重構。它歸結爲個人喜好我猜想 – Viv 2013-05-13 15:49:23

+0

謝謝。我會更專注地研究應用程序結構。在Web或Windows服務的情況下 - 服務將如何與應用程序的模型部分交互?不幸的是,我之前沒有處理過Web或Windows服務編程。 – user1688773 2013-05-15 12:26:29

相關問題