日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET 8来了,那就开发一套基于.NET 8的快速开发框架吧,就叫Simple

發布時間:2023/11/20 asp.net 40 coder
生活随笔 收集整理的這篇文章主要介紹了 .NET 8来了,那就开发一套基于.NET 8的快速开发框架吧,就叫Simple 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??.NET 8來了,開發一套基于.NET 8的快速開發框架吧,就叫 Simple 點我?Star

?? 框架由來

為啥有了那么多開發框架,還得非要再搞個呢,大家都知道很多快速開發框架,啥ABP 啥水果啥的,怎么評價他們呢,就是一個字,叼!
可是作為一個打工人,還不是公司用啥我用啥,公司不用ABP,你也不能老新建個項目就上ABP,上各種Orm吧,并且用ABP類的框架,還是需要些學習時間的,這些框架各種約定,各種快捷Api,各種一鍵生成了啥啥啥,好用吧,可是一但你公司不能用這些框架,你是不是抓瞎了,之前遇到個只用ABP的新同事,進公司要求只能用基于ASP.Net Core的框架和指定的一些類庫,要他開發個文件上傳的模塊,用于客戶服務器打開網頁上傳下數據庫備份之類的文件到公司備份服務器做異地備份,硬是邊看文檔邊搞了,干了2個周,說白了已經不知道ASP.Net Core是咋玩的了。

?? 框架特點

由此我萌發了寫個快速開發的框架,他需要有這些特點:

  1. 開發的框架基于 .NET 8 各種特性啥的盡量少,但是盡量方便點,比如實現自動注入
  2. 除非很需要,框架本身盡量少引用第三方庫,但是又要方便后期添加需要用到的第三方庫
  3. 需要有基本的授權、鑒權,免得每次都要去寫這些通用的東西
  4. 需要實現一套 CRUD 實現,讓大量curd解放,能快速生成,同時能方便使用代碼生成器生成這一套東西
  5. 需要實現一套后臺管理的前端,并實現基礎頁面,如登錄、系統管理相關頁面

? 規劃

根據以上構想,做了一些規劃:

  1. 使用 NLog 做日志庫
  2. 使用 Redis 庫 StackExchange.Redis
  3. 使用 Json 庫 Newtonsoft.Json
  4. 使用 LitDb 輕量數據庫做應用存儲庫
  5. 使用 MediatR 做應用內事件分發庫
  6. 使用 EF Core做默認 Orm
  7. 使用 FluentScheduler 做定時任務模塊
  8. 使用多Controller項目模塊,支持讓各自的api模塊使用獨立項目,比如AdminController使用一個項目,其他的又分別可以使用自己的項目
  9. 支持多數據庫結構,可以讓不同的業務范圍使用不同的數據庫,比如系統管理模塊使用MSSQL DB1,業務模塊 使用Mysql DB2
  10. 使用 Razor 做模板生成器引擎

??話不多說,上圖吧

添加基礎庫 Simple.Core 添加基礎庫 Simple.Core

基礎庫主要包含一些幫助類,用于方便開發的,和其他框架大同小異

Web項目擴展庫 Simple.Core.Web

主要實現:
?? 應用模塊基類 SimpleModule,繼承此模塊基類可分模塊開發,分模塊按需注冊、配置管道,配置模塊初始化
?? 自動注入,自動掃描標注了自動注入的任何類和實現,不包含一對多實現
?? 鑒權基類控制器 AppAuthController
?? Curd控制器 AppCurdController
?? 應用事件分發管理 AppDomainEventDispatcher
?? 簡單主機 SimpleHost ,該類用于一鍵啟動按默認配置好服務的 web主機、控制臺主機
?? 其他web類,jwt相關,異常和鑒權相關
?? 主機擴展類 HostServiceExtension 里面包含各種服務注冊、獲取,模塊注冊,權限自動生成的方法

EFCore 擴展庫 Simple.EntityFrameworkCore

主要實現:
?? DbContext基類 AppDbContext
?? Curd 實現類 BaseCurdService
?? Ef日志記錄 EFLoggerFactory

代碼生成器 Simple.Generator

基于Razor 模板引擎類RazorLight的封裝

定時任務 Simple.Job

基于 FluentScheduler 封裝的自動注冊任務,實現任務自動注冊,配置基類用于可使每個任務能單獨配置執行調度器

?? 以上就是整個框架的封裝,夠簡單吧,是不是感覺啥都沒有用,就這么點東西已經完成了我上面構想的支撐!

下面大家看下admin模塊和common模塊,分別都能實現自動注入、定時任務、自動生成各自的數據庫及數據初始化、領域事件處理,順帶說下,不管是控制臺應用的主機還是webapi的主機,里面的模塊都可使用構造函數注入哦

看admin控制器項目及主機啟動,后面加業務控制器啥的,直接新建項目就行,控制臺主機也自動支持了自動注入啥的,開發服務啊啥的都可以重復使用上面Applications下的任意實現

WebHost 主機項目

啟動 WebHost 主機

看控制臺項目

啟動控制臺主機

對了,注意配置文件的開發和發布隔離哦

好了,用最簡單的東西實現了大多數項目業務都能搞定的框架了吧,如果對你有用,記得 點我?Star 哦,初步版本已提交,有時間會持續優化,代碼生成器還有一丟丟沒搞玩,其他都差不多了,需要的看代碼去吧。

總結

以上是生活随笔為你收集整理的.NET 8来了,那就开发一套基于.NET 8的快速开发框架吧,就叫Simple的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。