创造DotNet Core轻量级框架【二】
10 题外话
上一篇文章感谢大家提出的各种小建议和各种讨论,但是在写文章的时候框架最最最基础的样子已经做出来了,所以大家的各种建议和意见我会在后续逐渐升级。
源码我会发给出来的,我的知识大部分来源网络上的各种社区,所以我做的框架完全开源,随意商用!~
后面的更新速度可能会慢一些,我想把很多知识吸收的更好之后在发出来。
11 Entity类
Entity类是实体类,类似于EF 5 6时代的视图形式,但是没有视图,只有cs文件,这样的好处是自由(可能是我EF 5用的不好,每次svn更新都会有很多异常),同样这样做的话即使刚刚使用框架的人也知道如何创建自己表的类库
DataTable文件夹就是用来存放这些cs文件的
NCSContext,用过的EF框架的人都知道,他的底层都是基于上下文这个类文件进行与数据库的交互沟通,其他封装的方法只不过是这个东西的一种衍伸。
里面的代码也很简单
using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Text; namespace NCSCore.Entity { public class NCSContext : DbContext { public NCSContext() { } public NCSContext(DbContextOptions<NCSContext> options) : base(options) { } override protected void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { base.OnConfiguring(optionsBuilder); optionsBuilder.EnableSensitiveDataLogging(); } #region 数据集 #endregion } }
12 Dao类库
Dao类库也分为两个子层级,接口以及实现
接口类中定义所有基础类型接口,增删改查,调用sql语句,等等各种方法的基类,所有的实体类型都通过泛型T来进行传递。而业务层只需要调用Dao层的接口就可以。
Dao中的操作都是对DBContext上下文进行操作,也就是最后的对数据库的操作。而具体操作的封装是在Service中
13 Service类库
Service类库中带有基类服务,开发者只需要在这里定义自己的接口并调用Service的接口既可以调用具体业务并操作数据库,而为了不让开发者去关心底层到底如何运行的,在ServiceBase中只需要让开发者传递实体类或查询条件就行
14 WebAPI
WebAPI为第一个创建的类库,我们大部分的依赖注入,操作返回配置都是在WebAPI中定义以及重写,例如我的WebApi已经做好Dao层的注入以及Service的注入,并且配置了接口调试插件Swagger,而为了让框架更适用于各种发布后的情况
也做了可配置的数据库字符串,而WebAPI默认的5000端口不适用于但机器部署多个站点,所以也将端口号变为外部可配置。
这么做的好处是整体框架经常变化的内容都变为可配置,未来部署的时候不需要再做代码生成等调整。
15 小结
目前这个框架只是很雏形很雏形的样子,还没有进行大量的优化以及扩展或者变更,只是满足了可以快速开发一套中小型WebAPI程序,目前我没看到能进化成为一个大型项目可支撑的框架。后续也会继续写框架的升级以及每一块内容的含义。
写的不好请见谅
源码地址:https://github.com/NothingTech/NCSCore
程序员之家。偷文章都不加链接。。也是醉了。