前言
net core
已經出了很久了,網上的各種框架也很多了,但是沒看到一個很小很輕的框架,基本都是那種啥功能都有,但是我需要的功能只占他們框架的百分之幾,很少很少,所以自己創(chuàng)造一個框架。
因為之前的知識斷層太多了,現(xiàn)在為了擬補這些知識,也是走了不少彎路,現(xiàn)在和一個新手沒啥區(qū)別,所以那里寫的不對也請大家諒解。
?
1.我需要的框架結構是什么樣的?
我在搭建這個框架的時候查閱了很多資料,園子里有很多很多的大佬都已經寫了怎么搭建一個框架,而閱讀最廣泛的是一套DI框架。但是不知道怎么回事園子里面的原文是加密的,打不開。可能是作者不想讓爬蟲爬吧。。
那么我到底需要什么框架呢?
冥思苦想,有幾個要求
* 1.不為現(xiàn)在工作而做一個框架
* 2.通用性高
* 3.簡單易懂
* 4.中小型項目壓力小
然后就隨便畫了一下結構圖
?
?哪我需要做的就是從中轉平臺到數(shù)據庫支持這一塊內容。
2 ORM的選擇
我也是第一次學習net
core和EF,以前都不懂EF是什么東西,也是通過現(xiàn)在工作學會一點EF的使用,覺得局限性太高了。但是寫一寫簡單的操作還是比較快的,然后看到微軟也發(fā)布了 EF
Core,查了查資料看看了文章
也在各種ORM對比,結果發(fā)現(xiàn)EF Core被人黑的地方就是不能寫sql語句,如果不能寫sql語句那么就需要使用框架的人掌握linq和
lamuda的程度要很高了,不再是一個簡單的新手小白可以使用的框架。不符合我的要求。
我做事的方式就是先查查能不能解決,不能解決在換別的,結果無意中發(fā)現(xiàn)網上已經有大佬做了擴展的cs文件。保存。那么ORM就確定使用官方的EF
Core加大佬的擴展類
3 層級架構
世界上最通用的也是最常用的還是三層架構,誰看見都會用,不需要過多的解釋,就像超級瑪麗 1-1關那樣。
4 數(shù)據驗證
上學的時候老師教過我們,客戶端的信息是不可信,既然前后端分離了,那么前端傳輸過來的數(shù)據必然可以被篡改,做一個自己的加密方式可以驗證數(shù)據是否被篡改??這個需要思考怎么去實現(xiàn)。
多做幾個數(shù)據驗證是沒錯的,至少讓我知道他是怎么把數(shù)據弄到數(shù)據庫中的
5 數(shù)據庫的選擇
現(xiàn)在世界上流行一種新型的數(shù)據結構
叫做NoSql,這玩意不是里我太遠,而是是我的一個知識盲區(qū),暫時先不去觸碰他,還是先做傳統(tǒng)的數(shù)據庫,那么為什么不支持oracle呢?答案很簡單,既然我要做中小程序,
那么和oracle可能就是不是一條路上,而 Mysql MSSql屬于那種中小企業(yè)以及中小型項目常用的數(shù)據庫,而SqlLite屬于MSSql類庫中自帶支持的。
6 接口定義
正統(tǒng)的程序接口返回值肯定是統(tǒng)一的,不存在那種
A是一種格式,B是一種格式,而是大家都是統(tǒng)一的格式,只有某個key是不同的。而JSON這種數(shù)據格式適用于全世界大部分程序需求,那么返回JSON和請求JSON是必然的了。
7.平臺的選擇
雖然是要搭建框架,但是也要事先學習netcore的基本內容,例如通過查資料知道微軟已經全面支持docker,那么也就是跨平臺可以通過docker去實現(xiàn)和完成,但是在學習期間發(fā)現(xiàn),netcoer
webapi也支持自托管和iis托管形式,這也太強大了!
那既然已經都支持這么多情況了,不能讓別人在使用我的框架的時候還要自己引入docker的文件,我直接編輯好,讓大家直接使用不是更好嗎?每個人都只關注業(yè)務就可以了。我真是個小聰明!
8.輔助類
不多說。。誰家項目不做幾個通用輔助類
9.開始搭建初級框架
ok既然已經知道目前自己需要什么,那么就用代碼實現(xiàn)出來,下載個VS2019,隨便創(chuàng)建幾個文件,然后再把大佬的輔助類拖拽進來。然后在隨便加幾個屬性。完成!
?
?有點糊弄人哈。。。那么下一篇文章詳細說說每個類都是什么意思吧!
?
熱門工具 換一換