2020-05-07

创造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,随便创建几个文件,然后再把大佬的辅助类拖拽进来。然后在随便加几个属性。完成!

 

 有点糊弄人哈。。。那么下一篇文章详细说说每个类都是什么意思吧!

 


No comments:

Post a Comment