创造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,随便创建几个文件,然后再把大佬的辅助类拖拽进来。然后在随便加几个属性。完成!
有点糊弄人哈。。。那么下一篇文章详细说说每个类都是什么意思吧!