欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

创造DotNet Core轻量级框架【一】

程序员文章站 2024-01-30 11:04:22
前言 net core 已经出了很久了,网上的各种框架也很多了,但是没看到一个很小很轻的框架,基本都是那种啥功能都有,但是我需要的功能只占他们框架的百分之几,很少很少,所以自己创造一个框架。 因为之前的知识断层太多了,现在为了拟补这些知识,也是走了不少弯路,现在和一个新手没啥区别,所以那里写的不对也 ......

前言

net core 已经出了很久了,网上的各种框架也很多了,但是没看到一个很小很轻的框架,基本都是那种啥功能都有,但是我需要的功能只占他们框架的百分之几,很少很少,所以自己创造一个框架。

因为之前的知识断层太多了,现在为了拟补这些知识,也是走了不少弯路,现在和一个新手没啥区别,所以那里写的不对也请大家谅解。

 

1.我需要的框架结构是什么样的?

我在搭建这个框架的时候查阅了很多资料,园子里有很多很多的大佬都已经写了怎么搭建一个框架,而阅读最广泛的是一套di框架。但是不知道怎么回事园子里面的原文是加密的,打不开。可能是作者不想让爬虫爬吧。。

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

冥思苦想,有几个要求

  • 1.不为现在工作而做一个框架
  • 2.通用性高
  • 3.简单易懂
  • 4.中小型项目压力小

然后就随便画了一下结构图

创造DotNet Core轻量级框架【一】

 

 哪我需要做的就是从中转平台到数据库支持这一块内容。

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

创造DotNet Core轻量级框架【一】

 

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