1. 程式人生 > >創造DotNet Core輕量級框架【二】

創造DotNet Core輕量級框架【二】

上一篇 創造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程式,目前我沒看到能進化成為一個大型專案可支撐的框架。後續也會繼續寫框架的升級以及每一塊內容的含義。

寫的不好請見諒

原始碼地址:https://github.com/NothingTech/NCSCore

程式設計師之家。偷文章都不加連結。。也是醉