上一篇 创造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. Simple Chat Application for Python

    一.知识点介绍: asyncore .asynchat模块使用 由于 Python 是一门带 GIL 的语言,所以在 Python 中使用多线程处理IO操作过多的任务并不是很好的选择.同时聊天服务器将 ...

  2. 吾八哥学k8s(二):golang服务部署到kubernetes

    本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容.纯新手入门方式,生产服务需要完整的CI/CD流程来支持. golang服务代码 ...

  3. 软件包管理rpm和yum

    rpm的使用: 安装的包相关包信息会保存在/var/lib/rpm目录下的文件中 安装参数: -i install安装 -v 显示详细信息 -h 打印####号 -V 校验软件包,会到/var/lib ...

  4. 小说免费看!python爬虫框架scrapy 爬取纵横网

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 风,又奈何 PS:如有需要Python学习资料的小伙伴可以加点击下方 ...

  5. L18 批量归一化和残差网络

    批量归一化(BatchNormalization) 对输入的标准化(浅层模型) 处理后的任意一个特征在数据集中所有样本上的均值为0.标准差为1. 标准化处理输入数据使各个特征的分布相近 批量归一化(深 ...

  6. E - Farthest Nodes in a Tree

    Given a tree (a connected graph with no cycles), you have to find the farthest nodes in the tree. Th ...

  7. Python - Python的基础知识结构,学习方法、难点和重点

    [原创]转载请注明作者Johnthegreat和本文链接. 相信大家都知道,Python很容易学,有编程基础的人,最多两个星期就可以很愉快的撸Python的代码了,那么具体涉及的知识有哪些,下面为大家 ...

  8. ChaosBlade--动态脚本实现 Java 实验场景

    动态脚本实现 : 参考文档:https://github.com/chaosblade-io/chaosblade/wiki/%E5%8A%A8%E6%80%81%E8%84%9A%E6%9C%AC% ...

  9. 漫画:工作这么多年,你居然不知道 Maven 中 Optional 和 Exclusions 的区别?

    欢迎关注笔者的公众号: 小哈学Java, 专注于推送 Java 领域优质干货文章!! Maven 依赖排除(Exclusions) 因为 Maven 构建项目具有依赖可传递的特性,当你在 pom.xm ...

  10. wechall前十题

    今天开始打一打wechall 累了打wechall,不累的时候开始打buu 第一题:Get Sourced 查看源代码即可,拉到底部 第二题:Stegano 属于misc的范畴,直接下载下来,然后no ...