以下為作者個人觀點,不同意者,請直接跳過。
首先,要選擇使用 MVVM or Code Behind 方式來開發,並沒有甚麼特別的準則,使用選擇適合您的開發方式來開發即可。
(我個人儘量不去使用 Code Behind,是因為,我可以將這些商業邏輯,寫在 Service Layer & ViewModel 內,這些內容都會與 View 無關,方便做出許多的處理工作,例如:Unit Test、容易的將這些商業邏輯一道其他頁面中來共用、不同的 View 可以共用同一個 ViewModel、將 UI & Logical 徹底切割開 ==> 這點對我而言,相當的重要,因為,我可以很容易的找出問題底點與方便和容易維護我寫的程式碼與XAML)
MVVM 有個主要的精神,那就是可以使用 Unit Test 的方式,來進行您的開發專案邏輯測試;這是因為,在 ViewModel 內,並沒有使用到任何 View 的內容,所以,您可以很容易地進行 Unit Test。
若您有使用過 Win Form 的專案開發,那麼,這樣的開發工具,就只有 Code Behind 的方式可以選擇,若您使用過 WPF 的專案開發,則兩種方式都可以。
若要在 Service Layer 使用到頁面導航,對話窗等許多功能,這些物件,儘可以在 Code Behind 內使用,因此,若您想要在 Service Layer 處理一些導航等相關工作,勢必需要做些其他處理,才能夠在 Service Layer 做到這些功能;當然,這樣的做法,會影響到 Unit Test 的執行。
使用 Code Behind 方式開發,每次都需要在 XAML 中宣告 x:Name 屬性,因此,有點花時間與麻煩,另外,在進行 XAML 與 Code Behind 專案維護的時候,會造成一些困擾(有用過的皆知到);另外,在某些情況下,若您僅僅使用 Code Behind 來處理這些問題,將會非常的棘手與麻煩。
沒有留言:
張貼留言