前言:做爲一名95後的程序猿,已經寫了一年多的代碼了,爲了提高本身的技術水平,因此決定嘗試編寫一個快速開發框架開源出來,一來提高本身的技術水平,二來助力.NET Core生態發展mysql
寫這個框架主要是爲了幫助減小一些基礎的CURD的操做,解放碼農,留出更多的時間去改BUG,免的被祭天,框架的目標人羣爲中小項目,大項目不適用。git
項目簡介sql
框架名稱:Tassdar 我用星際爭霸中,星靈的最高指揮官Tassdar的名字來命名了這個框架(星際中二粉)。數據庫
框架需求:.NET Core 2.2以上SDK ,Mysql5.7 框架
git地址:https://gitee.com/Tasssdar/Tassdar.git異步
框架結構:函數
框架中的代碼我都加了註釋,這裏僅簡單介紹一下結構設計
框架一共分爲4層3d
Core層:日誌
Core層提供了平常須要用的一些基礎幫助類,用於方便數據的處理
FreamWork層:
FreamWork層封裝了整個框架的核心代碼,EF的上下文,快速數據處理接口等都在這個類庫中,本框架中Mysql的驅動沒有使用官方驅動,由於官方驅動不支持LINQ的Any,若是使用者有須要能夠替換Nuget中的包
Service層
Service層用來讓使用者放置新增的接口和邏輯等,EF的CodeFirst設計類放在在這層
Logger層
Logger層是對日誌操做的一個封裝類庫,可讓打出來的日誌閱讀性極佳
使用方法
1.建立數據庫
在本地的mysql數據庫中建立一個數據庫
2.進入框架在Service建立一個實體類,讓它繼承EntityBase,Table特性中是你給表起的名字,mysql默認小寫
讓實體繼承EntityBase是爲了讓EF掃描實體的時候掃描進去,若是沒有繼承就不回被掃描進去,邏輯在EFContext裏,能夠自行看源碼
3.進行數據庫的遷移
在Servier層的Logic文件夾下找到DbGen,把剛纔新增的實體放到這個類下,使用者記得把這裏的連接字符串換成你本身的
執行遷移指令,注意,遷移指令必須在Service層的根目錄下執行
dotnet ef migrations add 隨便打個名
dotnet ef database update 同步到數據庫
執行完後會發現數據庫中的表已經建立完成
4.邏輯層配置
在Service層下分別創建改實體的業務邏輯接口和業務邏輯實現類
這裏的Api文件夾中的接口是爲了把邏輯層和Web層使用的接口進行拆分,正常順序是須要在Controller中外露的接口放在Api文件夾下的接口中,其他的放在Interface下,而後讓IUser繼承IUserApi,以爲費事的同窗能夠不寫,直接所有寫到IUser裏
而後讓IUser接口繼承ILogicBase,讓UserLogic繼承LogicBase和IUser
IValidate接口是數據校驗接口,繼承該接口後在數據持久化時會進行數據的校驗,繼承該接口後會實現Validate方法,把驗證邏輯寫到方法中,例如,咱們要求用戶名不容許重複
5.Web層配置
咱們建立一個Controller讓它繼承自ApiControllerBase,和IUserApi,這時IUserApi的做用就顯現出來了,咱們直接實現IUserApi就省的再去打那一堆的Action了,若是沒有寫IUserApi能夠免去這一步,
在控制器的上面帶上Route參數標明你的路由,ApiControllerBase中封裝了一些基礎的數據操做,可讓你直接操做一些簡單的數據,可是要記得在使用前在構造函數中對_baseLogic進行賦值
6.啓動項目
項目中配置了Swagger,啓動前請先在Web項目右鍵:屬性:生成把XML文檔打上對勾
啓動項目後訪問/swagger,就能夠愉快的玩耍了
能夠看一下數據校驗接口的效果,當我兩次添加同爲名叫小明的用戶時,顯示出咱們在驗證方法中輸出的信息
好了,就簡單介紹到這裏,第一次開源沒什麼經驗哈哈哈哈哈,歡迎各位大佬指正,可是不喜勿噴,愛用不用哈哈哈哈哈哈哈,源碼上我都打了註釋,很容易看的。
能寫出這個框架首先要感謝個人授業恩師宋老師的教誨,其次就是在技術上指導了我不少的Kevin
若是框架的反饋率不錯的話,我會考慮進行下一步的升級,好比提供異步支持之類的等等
謝謝各位的支持。