1、前言
作為一個忠實的軟粉,一直期待微軟出跨平台,一直在等待.Net Core,因為剛畢業對於.Net的很多東西不是很熟知,就開始了.Net Core的摸索,一路上坎坎坷坷,對於新技術一直很期待,就開始漫長的.Net Core的學習和編寫開源框架,希望自己寫的文章能給.Net Core社區貢獻一下自己的坎坷路,這一路所遇到的問題磕磕絆絆,各種問題層出不窮,但是我認為沒有解決不了的問題,只有你想不想去做,擺好自己的心態,做好一個目標,你就會成功。
本系列文章只是對框架現有的一些技術做一個簡單說明或者是引入,只是一個拋磚引玉的作用,第一次寫博客希望各路大神多多指導。
2、框架簡介
*、Uwl.Admin.Core開源框架技術選擇的是.Net Core2.2以上的版本,ORM選擇的是EF Core,(個人偏向喜歡用EF Core),前端選擇的是目前主流技術Vue.js+Iview UI框架;
*、框架功能:1)用戶管理;2)菜單管理;3)組織機構;4)按鈕管理;5)角色分配權限;6)角色管理;7)定時任務;8)個人資料;9)Excel導入、導出;10)用戶分配角色;11)SignalR即時通訊
*、框架使用倉儲模式用來管理數據連接層,緩存使用的是Redis,Redis鏈接使用單例模式來管理;倉儲內由工作單元來管理數事務上下文;
*、框架同時還封裝了RabbitMQ指定隊列模式,目前沒有功能實現后期擴展,若想使用RabbitMQ請先配置RabbitMQ;我這里使用的是Windows服務器 請看文章 RabbitMQ消息隊列入門(一)
2、技術簡介
后端技術
Uwl.Admin.Core使用的技術有:
*、Async和Await 異步編程
*、Repository + Service 倉儲模式編程;倉儲模式支持工作單元
*、Swagger 前后端文檔說明,基於RESTful風格編寫接口
*、Cors 簡單的跨域解決方案
*、JWT自定義策略授權權限驗證
*、依賴注入選擇的是官方自帶的DI注入,沒有使用第三方框架,ORM使用EF Core,數據庫使用的是Sql server,(后期會擴展MySql版本);
*、AutoMapper 自動對象映射、
*、Linq To Sql \ lambda表達式樹查詢;(表達式樹查詢是個人擴展的,表達式樹的使用方法請參考Uwl.Data.Server.MenuServer的多條件查詢)
*、登錄認證方式使用JWT認證方式,后台接口使用SwaggerUI展示,角色權限使用 自定義權限處理器PermissionHandler 繼承與微軟官方 IAuthorizationRequirement;
*、Excel導入導出使用的是Epplus第三方框架,導入導出只需要配置Attribute特性就好,不需要在自己寫列名;導出只支持List導出,暫時不支持Datatable;(Excel使用方法請參考UserController控制器)
*、Rabbit MQ消息隊列(目前暫無業務使用場景后期准備用來記錄日志)
*、Redis 輕量級分布式緩存;(Redis使用方法請參考Uwl.Data.Server.MenuServer類)
*、QuartzNet第三方任務框架;(使用方法請參考類庫Uwl.ScheduledTask.Job.TestJobOne類)
*、IdentityServer4授權模式已開發完成,未發布演示服務器代碼在github;(Identityserver4Auth分支)
數據庫
Sql Server、 EF Core ORM框架、CodeFirst、AutoMapper 自動對象映射、Linq To Sql \ lambda表達式樹查詢;
前端技術
*、使用Vue 2.0 框架全家桶 +Iview UI框架 ,接口請求axios\狀態管理使用Vuex;Vue參考文獻(老張的博客);
*、Iview UI框架基於Vue2.x的組件庫;請查看(IviewUI官網);
*、前端權限按鈕控制使用動態渲染的方式來做,如果用戶有這個權限則顯示該按鈕沒有這個權限則不渲染按鈕;
3、項目地址
*、.NET CORE 源碼:https://github.com/GeorGeWzw/Uwl.Admin.Core
*、前端框架代碼:https://github.com/GeorGeWzw/Vue.Uwl.Admin
3、致謝
*、感謝有幾位朋友支持、以及技術支持 特別感謝老張的博客、Psyche丶殘雲、深圳-果、大黃瓜 等各位大佬的技術默默支持;才讓我有了繼續前行下去的動力,非常感謝各位大佬給的很多建議。
*、 下一篇我會寫QuartzNet控制中心的實現