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

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

创造DotNet Core轻量级框架【二】的更多相关文章

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

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

  2. DDD实战进阶第一波(三):开发一般业务的大健康行业直销系统(搭建支持DDD的轻量级框架二)

    了解了DDD的好处与基本的核心组件后,我们先不急着进入支持DDD思想的轻量级框架开发,也不急于直销系统需求分析和具体代码实现,我们还少一块, 那就是经典DDD的架构,只有了解了经典DDD的架构,你才能 ...

  3. DOTNET Core MVC(二)路由初探

    搁置了几天,工作忙的一塌糊涂,今天终于抽空来继续看看MVC的知识.先来看看MVC的路由是如何处理的.以下为替代的路由: app.UseEndpoints(endpoints => { endpo ...

  4. dotnet core 通过修改文件头的方式隐藏控制台窗口

    原文:dotnet core 通过修改文件头的方式隐藏控制台窗口 在带界面的 dotnet core 程序运行的时候就会出现一个控制台窗口,本文告诉大家使用最简单方法去隐藏控制台窗口. 最近在使用 A ...

  5. 从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目

    原文:从零开始学习 asp.net core 2.1 web api 后端api基础框架(二)-创建项目 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.ne ...

  6. 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始

    0x00 简介 DotBPE.RPC是一款基于dotnet core编写的RPC框架,而它的爸爸DotBPE,目标是实现一个开箱即用的微服务框架,但是它还差点意思,还仅仅在构思和尝试的阶段.但不管怎么 ...

  7. spring cloud+dotnet core搭建微服务架构:服务发现(二)

    前言 上篇文章实际上只讲了服务治理中的服务注册,服务与服务之间如何调用呢?传统的方式,服务A调用服务B,那么服务A访问的是服务B的负载均衡地址,通过负载均衡来指向到服务B的真实地址,上篇文章已经说了这 ...

  8. SonarQube系列二、分析dotnet core/C#代码

    [前言] 本系列主要讲述sonarqube的安装部署以及如何集成jenkins自动化分析.netcore项目.目录如下: SonarQube系列一.Linux安装与部署 SonarQube系列二.分析 ...

  9. Dotnet core使用JWT认证授权最佳实践(二)

    最近,团队的小伙伴们在做项目时,需要用到JWT认证.遂根据自己的经验,整理成了这篇文章,用来帮助理清JWT认证的原理和代码编写操作. 第一部分:Dotnet core使用JWT认证授权最佳实践(一) ...

随机推荐

  1. AJ学IOS(24)UI之注册案例

    AJ分享,必须精品 先看效果 制作思路 在做这个的时候,首先用stroyboard画出来界面UI,这个很简单,不多说了,然后下一步就是自定义xib做键盘上面的那一栏了,需要自己做xib还有view,详 ...

  2. 【Tool】IDEA配置Maven依赖管理

    IDEA配置Maven 打开IDEA,在项目界面打开[File] — [Settings] 找到构建工具,下面第一个就是Maven 主选项更换我们自己的主目录和设置目录与本地仓库 勾选[打印异常捕获信 ...

  3. Spring 下,关于动态数据源的事务问题的探讨

    开心一刻 毒蛇和蟒蛇在讨论谁的捕猎方式最高效. 毒蛇:我只需要咬对方一口,一段时间内它就会逐渐丧失行动能力,最后死亡. 蟒蛇冷笑:那还得等生效时间,我只需要缠住对方,就能立刻致它于死地. 毒蛇大怒:你 ...

  4. 如何用python批量生成真实的手机号码

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:Python测试社区 1目 标 场 景 平时在工作过程中,偶尔会需要大 ...

  5. 空间小姐姐生活照,我用python破解加密压缩包,无忧查看

    事情的经过是这样的: 又是奶茶,行吧行吧. 快点开工,争取李大伟回来之前搞定. 李大伟说是6位数字密码 那么我们可以利用python生成全部的六位数字密码 #生成从000000到99999的密码表f ...

  6. tensorflow-参数、超参数、卷积核权值共享

    根据网上查询到的说法,参数就是在卷积神经网络中可以被训练的参数,比如卷积核的权值和偏移等等,而超参数是一些预先设定好并且无法改变的,比如说是卷积核的个数等. 另外还有一个最最基础的概念,就是卷积核的权 ...

  7. [转+自]SSH工作原理

    SSH工作原理 熟悉Linux的人肯定都知道SSH.SSH是一种用于安全访问远程服务器的网络协议.它将客户端与服务端之间的消息通过加密保护起来,这样就无法被窃取或篡改了.那么它安全性是如何实现的呢? ...

  8. SSL 3.0 POODLE攻击信息泄露漏洞_CVE-2014-3566

    0x01 SSL3.0简介 我们知道最开始HTTP协议传输数据的时候,数据是不加密的,不安全的,网景公司针对此,推出了SSL(secure socket layer)安全套接层.SSL3.0时,IET ...

  9. AOP-SheepAspect

    转载https://www.cnblogs.com/InCsharp/p/5902133.html SheepAspect 简介以及代码示列: SheepAspect是一个AOP框架为.NET平台,深 ...

  10. ubuntu(Linux)下,查看CPU性能集合

    CPU: 详细:cat /proc/cpuinfo型号:grep "model name" /proc/cpuinfo |awk -F ':' '{print $NF}'数量:ls ...