一個新學WPF的IT老鳥,肝了2個月作了這麼一個WPF企業級開發框架,站長clone學習,以爲甚是不錯。這是一個使用了Prism搭建的插件式框架,封裝了DataGrid的使用,使整個框架子模塊簡單易學、易擴展,特別是做者還寫了一個系列博客教程,值得點贊。html
下面是做者博文系列首篇:WPF企業級開發框架搭建指南(啓示錄),2020從入門到放棄git
這個系列的文章旨在記錄工做中使用WPF開發新的醫療項目中,有感於必須統一掉一些規範上的事情,而且提升團隊開發效率,遂折騰了這麼一個半吊子的框架,這個標題WPF企業級開發框架搭建指南,2020從入門到放棄可能會唬住一些人,但看到這些零碎文字的朋友就湊和着看吧,若是能幫助到你,那也榮幸了。github
WPF技術是一個很不錯的技術,但一直沒有上手過正式的項目,趁在作這個醫療項目時,遂搭建一個WPF開發框架,目的是爲了統一WPF開發並提升開發效率;我對WPF技術算是零基礎,現學現賣,用這些不成體系的文字予以記錄一些想法和實踐。web
文章目錄shell
在正式開始WPF開發框架搭建以前,作了一些技術選型和在羣裏面諮詢了下對WPF技術比較瞭解的羣友,當中就屬dotnet9.com的站長常常被筆者叨擾。先來講說我指望中的開發框架要實現哪些功能。api
在開始搭建以前呢,仍是晾一下最終的架構圖吧。服務器
上圖就是折騰出來的一個框架,圖不美觀的話,大夥也就湊合着看吧。下圖是解決方案:markdown
由於項目是使用WPF來開發的,天然基於【MVVM】的理念搭建了這麼一個快速開發框架,適用於開發【傳統類型的管理系統】,並經過調用web api的方式來完成全部的業務操做,在WPF的Page,窗體(Window),用戶控件的後置代碼,幾乎不會有任何的業務代碼,除了一些控制界面行爲的功能。架構
在搭建這個框架時,是基於最新的 【 .net 5】用的技術版本是比較新的,演示代碼中,wpf也是使用 .net 5。框架
解決方案從上到下依次爲:
在JHRS.Core這個庫裏面,各個目錄功能說明以下:
JHRS.Shell是WPF客戶端項目的入口程序,而且定義了整個系統公用的消息提示框,模態窗口風格,主窗口等;登陸的入口也是在這裏定義的,登陸系統後,能夠自行實現權限功能加只加載對應的子模塊(子系統);在程序啓動時,會自動作一些初始化操做,掃描程序集自動注入相關功能,具體實現參見這裏。
消息提示框
消息彈框
確認消息框
模態窗口
遮罩層效果(蒙層效果或Loading效果)
遮罩層效果通常用於點擊按鈕,加載數據時使用,即調用接口到數據呈現中間有一個等待的過程,就能夠顯示出來,所以在框架中經過AOP方式封裝了這麼一個效果,調用時在相關的地方標記一個特性便可。先來看看效果。
該效果是直接從CSDN摳過來的,而後整到到代碼裏面去的,純演示目的。
參考連接:https://blog.csdn.net/lhx527099095/article/details/8005095
在modules這個解決方案文件夾裏面的是各個子模塊,也就是各個子系統,例如【JHRS.OutpatientSystem】是WPF項目的子系統之一(門診模塊);在各子系統中,最外層擁有一個Module的類(OutpatientSystemModule),須要實現IModule接口供Prism自動掃描註冊到容器裏面。
在子模塊中,目錄的組織原則以下。
目錄組織原則
在每個子系統中,最外層的一個模塊類,名稱規則爲:【模塊名稱+Module】,編寫這個類是爲了使用Prism加載這個模塊。
基礎類庫,能夠任意擴展,該庫能夠供其它全部庫引用。
該工具是在線解析swagger生成供Refit調用的接口,生成的接口以下:
調用接口的示例代碼以下:
對於WPF開發來講,我並非很熟悉,這段時間以來一直網上學習和借鑑一些開源的框架,再結合實際項目而整出來的這個開發框架;可能對於從事WPF開發的朋友來講有必定的借鑑意義。
完整的項目代碼已經開源到github上面。在這個項目中,並不包含web api的項目。
本文markdown原文分享:https://dotnet9.com/2020-09-07
除非註明,文章均由 Dotnet9 整理髮布,歡迎轉載。
轉載請註明:
做者:Dotnet9
連接:https://dotnet9.com/16199.html
來源:Dotnet9
著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
歡迎關注站長公衆號:Dotnet9