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

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

前言

net core 已經出了很久了,網上的各種框架也很多了,但是沒看到一個很小很輕的框架,基本都是那種啥功能都有,但是我需要的功能只佔他們框架的百分之幾,很少很少,所以自己創造一個框架。

因為之前的知識斷層太多了,現在為了擬補這些知識,也是走了不少彎路,現在和一個新手沒啥區別,所以那裡寫的不對也請大家諒解。

 

1.我需要的框架結構是什麼樣的?

我在搭建這個框架的時候查閱了很多資料,園子裡有很多很多的大佬都已經寫了怎麼搭建一個框架,而閱讀最廣泛的是一套DI框架。但是不知道怎麼回事園子裡面的原文是加密的,打不開。可能是作者不想讓爬蟲爬吧。。

那麼我到底需要什麼框架呢?

冥思苦想,有幾個要求

  • 1.不為現在工作而做一個框架
  • 2.通用性高
  • 3.簡單易懂
  • 4.中小型專案壓力小

然後就隨便畫了一下結構圖

 

 哪我需要做的就是從中轉平臺到資料庫支援這一塊內容。

2 ORM的選擇

我也是第一次學習net core和EF,以前都不懂EF是什麼東西,也是通過現在工作學會一點EF的使用,覺得侷限性太高了。但是寫一寫簡單的操作還是比較快的,然後看到微軟也釋出了 EF Core,查了查資料看看了文章

也在各種ORM對比,結果發現EF Core被人黑的地方就是不能寫sql語句,如果不能寫sql語句那麼就需要使用框架的人掌握linq和 lamuda的程度要很高了,不再是一個簡單的新手小白可以使用的框架。不符合我的要求。

我做事的方式就是先查查能不能解決,不能解決在換別的,結果無意中發現網上已經有大佬做了擴充套件的cs檔案。儲存。那麼ORM就確定使用官方的EF Core加大佬的擴充套件類

3 層級架構

世界上最通用的也是最常用的還是三層架構,誰看見都會用,不需要過多的解釋,就像超級瑪麗 1-1關那樣。

4 資料驗證

上學的時候老師教過我們,客戶端的資訊是不可信,既然前後端分離了,那麼前端傳輸過來的資料必然可以被篡改,做一個自己的加密方式可以驗證資料是否被篡改??這個需要思考怎麼去實現。

多做幾個資料驗證是沒錯的,至少讓我知道他是怎麼把資料弄到資料庫中的

5 資料庫的選擇

現在世界上流行一種新型的資料結構 叫做NoSql,這玩意不是裡我太遠,而是是我的一個知識盲區,暫時先不去觸碰他,還是先做傳統的資料庫,那麼為什麼不支援oracle呢?答案很簡單,既然我要做中小程式,

那麼和oracle可能就是不是一條路上,而 Mysql MSSql屬於那種中小企業以及中小型專案常用的資料庫,而SqlLite屬於MSSql類庫中自帶支援的。

6 介面定義

正統的程式介面返回值肯定是統一的,不存在那種 A是一種格式,B是一種格式,而是大家都是統一的格式,只有某個key是不同的。而JSON這種資料格式適用於全世界大部分程式需求,那麼返回JSON和請求JSON是必然的了。

7.平臺的選擇

雖然是要搭建框架,但是也要事先學習netcore的基本內容,例如通過查資料知道微軟已經全面支援docker,那麼也就是跨平臺可以通過docker去實現和完成,但是在學習期間發現,netcoer webapi也支援自託管和iis託管形式,這也太強大了!

那既然已經都支援這麼多情況了,不能讓別人在使用我的框架的時候還要自己引入docker的檔案,我直接編輯好,讓大家直接使用不是更好嗎?每個人都只關注業務就可以了。我真是個小聰明!

8.輔助類

不多說。。誰家專案不做幾個通用輔助類

9.開始搭建初級框架

ok既然已經知道目前自己需要什麼,那麼就用程式碼實現出來,下載個VS2019,隨便建立幾個檔案,然後再把大佬的輔助類拖拽進來。然後在隨便加幾個屬性。完成!

 

 有點糊弄人哈。。。那麼下一篇文章詳細說說每個類都是什麼意思吧!