創造DotNet Core輕量級框架【二】
10 題外話
上一篇文章感謝大家提出的各種小建議和各種討論,但是在寫文章的時候框架最最最基礎的樣子已經做出來了,所以大家的各種建議和意見我會在後續逐漸升級。
源碼我會發給出來的,我的知識大部分來源網路上的各種社區,所以我做的框架完全開源,隨意商用!~
後面的更新速度可能會慢一些,我想把很多知識吸收的更好之後在發出來。
11 Entity類
Entity類是實體類,類似於EF 5 6時代的視圖形式,但是沒有視圖,只有cs文件,這樣的好處是自由(可能是我EF 5用的不好,每次svn更新都會有很多異常),同樣這樣做的話即使剛剛使用框架的人也知道如何創建自己表的類庫
DataTable文件夾就是用來存放這些cs文件的
NCSContext,用過的EF框架的人都知道,他的底層都是基於上下文這個類文件進行與資料庫的交互溝通,其他封裝的方法只不過是這個東西的一種衍伸。
裡面的程式碼也很簡單
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Text; namespace NCSCore.Entity { public class NCSContext : DbContext { public NCSContext() { } public NCSContext(DbContextOptions<NCSContext> options) : base(options) { } override protected void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); optionsBuilder.EnableSensitiveDataLogging(); } #region 數據集 #endregion } }
12 Dao類庫
Dao類庫也分為兩個子層級,介面以及實現
介面類中定義所有基礎類型介面,增刪改查,調用sql語句,等等各種方法的基類,所有的實體類型都通過泛型T來進行傳遞。而業務層只需要調用Dao層的介面就可以。
Dao中的操作都是對DBContext上下文進行操作,也就是最後的對資料庫的操作。而具體操作的封裝是在Service中
13 Service類庫
Service類庫中帶有基類服務,開發者只需要在這裡定義自己的介面並調用Service的介面既可以調用具體業務並操作資料庫,而為了不讓開發者去關心底層到底如何運行的,在ServiceBase中只需要讓開發者傳遞實體類或查詢條件就行
14 WebAPI
WebAPI為第一個創建的類庫,我們大部分的依賴注入,操作返回配置都是在WebAPI中定義以及重寫,例如我的WebApi已經做好Dao層的注入以及Service的注入,並且配置了介面調試插件Swagger,而為了讓框架更適用於各種發布後的情況
也做了可配置的資料庫字元串,而WebAPI默認的5000埠不適用於但機器部署多個站點,所以也將埠號變為外部可配置。
這麼做的好處是整體框架經常變化的內容都變為可配置,未來部署的時候不需要再做程式碼生成等調整。
15 小結
目前這個框架只是很雛形很雛形的樣子,還沒有進行大量的優化以及擴展或者變更,只是滿足了可以快速開發一套中小型WebAPI程式,目前我沒看到能進化成為一個大型項目可支撐的框架。後續也會繼續寫框架的升級以及每一塊內容的含義。
寫的不好請見諒
源碼地址://github.com/NothingTech/NCSCore
程式設計師之家。偷文章都不加鏈接。。也是醉了。