在我們的SqlSugar的開發框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基於UniApp+Vue+ThorUI的移動前端幾個前端處理,基本上覆蓋了我們日常的應用模式了,本篇隨筆進一步介紹前端應用的領域,研究集成WPF的應用端,循序漸進介紹基於CommunityToo... ...
在我們的SqlSugar的開發框架中,整合了Winform端、Vue3+ElementPlus的前端、以及基於UniApp+Vue+ThorUI的移動前端幾個前端處理,基本上覆蓋了我們日常的應用模式了,本篇隨筆進一步介紹前端應用的領域,研究集成WPF的應用端,循序漸進介紹基於CommunityToolkit.Mvvm 和HandyControl的WPF應用端開發。
1、基於CommunityToolkit.Mvvm開發WPF應用
MVVM是Model-View-ViewModel的簡寫。類似於目前比較流行的MVC、MVP設計模式,主要目的是為了分離視圖(View)和模型(Model)的耦合。
它是一種極度優秀的設計模式,但並非框架級別的東西,由MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構。
MVVM模式和MVC模式一樣,主要目的是分離視圖(View)和模型(Model),有幾大優點
1. 低耦合:視圖(View)可以獨立於Model變化和修改,一個ViewModel可以綁定到不同的View上,當View變化的時候Model可以不變,當Model變化的時候View也可以不變。
2. 可重用性:可以把一些視圖邏輯放在一個ViewModel裡面,讓很多View重用這段視圖邏輯。
3. 獨立開發:開發人員可以專註於業務邏輯和數據的開發(ViewModel),設計人員可以專註於頁面設計,使用Expression Blend可以很容易設計界面並生成xml代碼。
4. 可測試:界面素來是比較難於測試的,而現在測試可以針對ViewModel來寫。
CommunityToolkit.Mvvm
(又名 MVVM 工具包,以前名為 Microsoft.Toolkit.Mvvm
) 是一個現代、快速且模塊化的 MVVM 庫。 它是 .NET 社區工具包的一部分,圍繞以下原則構建:
- 平臺和運行時獨立 - .NET Standard 2.0、 .NET Standard 2.1 和 .NET 6