前言 net 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,隨便創建幾個文件,然後再把大佬的輔助類拖拽進來。然後在隨便加幾個屬性。完成!
有點糊弄人哈。。。那麼下一篇文章詳細說說每個類都是什麼意思吧!