因此,我正在研究使用C#與WPF(使用Expression Blend)的MVVM,並遇到了如何正確實現從數據庫中收集數據並將其顯示在窗口中的問題。C#MVVM - 這裏需要一個模型嗎?
我的觀點只是一個有幾個TextBlocks的網格,我可以用SQL查詢中的數據更新(我報告的是由我們公司和我們的電話代理進行的呼叫次數,所以所有呼叫,來電呼叫等)
我的問題是,我需要一個模型在這裏獲取/保存數據還是不錯的(或接受)MVVM的做法,在視圖模型來做到這一點?如果我在VM中執行它,我可以輕鬆實現INotifyPropertyChanged事件,並且一切正常。如果我創建一個模型來保存數據,那麼我必須在模型和虛擬機中創建一個INotifyPropertyChanged,或者還有其他應該用來執行通知的事情嗎?
這似乎是一個直接的任務,但我似乎無法找到一個很好的例子顯示數據片斷,我發現每個例子都是一個集合,併成爲我的第一個MVVM程序,我想確保我這樣做的權利:)
我在另一篇文章中有人說:「每一個模型都需要一個虛擬機,但不是每一個虛擬機需要一個模型」閱讀。這與我上面的問題一致,只是想聽聽一些有經驗的用戶的想法。
感謝, 布賴恩
我同意我應該測試並瞭解紅綠重新因素,但我不確定我應該在這裏測試什麼。如果我所做的只是從數據庫獲取數據(這不是單元測試,而是集成測試),然後顯示數據,我應該在這裏做什麼樣的測試? – BrianKE 2011-03-04 14:44:31
不知道你的用例,我可以考慮以下視圖模型測試:它是如何消費數據的。是的,這是一個單元測試,所以嘲笑或僞造數據。首先,有一個確保空數據訪問對象(dao)拋出錯誤的測試。其次,測試你的dao的適當方法被調用,也許它是dao.FindAll()。現在可能已經足夠了,但是當您考慮如何消費數據時,您會想到其他人。如果您需要更多幫助,請提問併發布一些代碼。 Cheers – Berryl 2011-03-04 16:12:47
@BrianKE - 集成測試很好,但是將集成測試和單元測試相結合對於數據庫來說至關重要。部分模型允許您實現用於將db與模型分離的抽象類型,以便您可以進行單元測試。就像我在我的主要答案中所述,如果你不打算測試,那麼不要擔心。當然,你應該進行單元測試和集成測試,但是如果你在項目開始時沒有承諾這項工作,那麼最好是交付,並考慮下一次迭代,發佈或項目的測試工作。運輸是一項功能。 – 2011-03-06 01:53:29