上一篇 创造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

程序员之家。偷文章都不加链接。。也是醉了。

最新文章

  1. ssh配置git clone简易流程
  2. SVM实践
  3. 解决jquery mobile的header和footer在点击屏幕的时候消失的办法
  4. /proc/sysrq-trigger该文件能做些什么事情-转载
  5. Ajax.ActionLink打开页面之后,表单验证失效
  6. [转载]Ubuntu14.04 LTS更新源
  7. poj3984迷宫问题 广搜+最短路径+模拟队列
  8. 从Profile中窥探Unity的内存管理
  9. 探讨socket引发SIGPIPE信号的问题
  10. 实验八 sqlite数据库操作
  11. git上传本地项目到github
  12. Ansible系列(七):执行过程分析、异步模式和速度优化
  13. VS2013创建Windows服务 || VS2015+Windows服务简易教程
  14. 原生js实现canvas气泡冒泡效果
  15. python获取日期加减之后的日期
  16. HTTP笔记1
  17. java8 stream lambda 一个例子
  18. 使用kbmmw 实现图形验证码
  19. 记一次需要用到复杂的groupingBy的需求
  20. 晓晨高效IP提取工具 附源码

热门文章

  1. 选择IT行业的自我心得,希望能帮助到各位!(三)失败篇
  2. XFS文件系统的备份与恢复
  3. 从Generator入手读懂co模块源码
  4. Python实现按键精灵(一)-键鼠操作
  5. 基于Python的Webservice开发(四)-泛微OA的SOAP接口
  6. testNG 预期异常、忽略测试、超时测试
  7. 【论文笔记】YOLOv4: Optimal Speed and Accuracy of Object Detection
  8. Springboot:静态资源加载(七)
  9. WTF Python:有趣且鲜为人知的Python特性
  10. 【山外笔记-云原生】《Docker+Kubernetes应用开发与快速上云》读书笔记-2020.04.25(六)