2020/01/26, ASP.NET Core 3.1, VS2019

摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构

目录

0-前言

1-项目结构分层建立

2-公共基础库

3-xUnit单元测试之简单方法测试

4-工作单元和仓储设计

5-网站数据库实体设计及映射配置

6-注册跨域、网站核心配置

7-使用NLog日志记录器

8.1-使用ViewModel注解验证

8.2-使用AutoMapper映射实体对象

8.3-编写角色业务的增删改

9.1-使用Autofac代替原生的依赖注入

9.2-使用Castle.Core实现动态代理拦截器

10-使用JWT进行授权验证

11-WebApi统一处理返回值、异常

12-xUnit单元测试之集成测试

13-扩展之网站支持全球化和本地化多语言语系

14-扩展之部署到IIS

15-扩展之使用Obfuscar混淆加密保护代码

网站内容

  • 简单的后台管理系统,拥有用户登录、角色管理、日志记录的功能

  • 支持MySQL、SQL server数据库

  • 泛型仓储设计完善,不用每个实体单独定义一个仓储(也可以使用this自定义扩展或覆写)

  • 工作单元统一管理所有的仓储,统一管理事务和提交

  • 开发调试阶段,开启EntityFrameworkCore的日志,可以看到每次执行的具体sql,方便排查错误

  • NLog日志记录根据日志等级自动过滤日志事件

  • NLog写入数据库的连接字符串自动与appsettings.json中的配置保持一致

  • 实体类Id使用雪花算法生成

  • Castle.Core实现动态拦截器(AOP)对业务层的异常统一进行日志记录

  • 登录验证使用JWT

  • 用依赖注入的方式使用AutoMapper

  • 使用ResXManager插件对多语言资源文件进行管理维护

  • 使用Obfuscar混淆加密保护代码

技术介绍

  • 主要采用ASP.NET Core 3.1(WebApi) 框架实现一个后台管理系统

  • EntityFrameworkCore 3.1做ORM工具,FluentAPI方式配置实体映射

  • NLog做日志记录

  • Autofac配合Castle.Core实现动态拦截器(AOP)

  • JWT做登录验证

  • AutoMapper做映射工具

  • Postman做接口调试

实现目标

  1. 每一处代码(每一个工具)尽量做到最佳实践
  2. 完善的单元测试
  3. 每一章节都有对应的项目分支代码

ASP.NET Core搭建多层网站架构【0-前言】的更多相关文章

  1. ASP.NET Core搭建多层网站架构【2-公共基础库】

    2020/01/28, ASP.NET Core 3.1, VS2019,Newtonsoft.Json 12.0.3, Microsoft.AspNetCore.Cryptography.KeyDe ...

  2. ASP.NET Core搭建多层网站架构【3-xUnit单元测试之简单方法测试】

    2020/01/28, ASP.NET Core 3.1, VS2019, xUnit 2.4.0 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构[3-xUnit单元测试 ...

  3. ASP.NET Core搭建多层网站架构【4-工作单元和仓储设计】

    2020/01/28, ASP.NET Core 3.1, VS2019, Microsoft.EntityFrameworkCore.Relational 3.1.1 摘要:基于ASP.NET Co ...

  4. ASP.NET Core搭建多层网站架构【5-网站数据库实体设计及映射配置】

    2020/01/29, ASP.NET Core 3.1, VS2019, EntityFrameworkCore 3.1.1, Microsoft.Extensions.Logging.Consol ...

  5. ASP.NET Core搭建多层网站架构【6-注册跨域、网站核心配置】

    2020/01/29, ASP.NET Core 3.1, VS2019, NLog.Web.AspNetCore 4.9.0 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站 ...

  6. ASP.NET Core搭建多层网站架构【7-使用NLog日志记录器】

    2020/01/29, ASP.NET Core 3.1, VS2019, NLog.Web.AspNetCore 4.9.0 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站 ...

  7. ASP.NET Core搭建多层网站架构【8.1-使用ViewModel注解验证】

    2020/01/29, ASP.NET Core 3.1, VS2019 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构[8.1-使用ViewModel注解验证] 使用V ...

  8. ASP.NET Core搭建多层网站架构【8.2-使用AutoMapper映射实体对象】

    2020/01/29, ASP.NET Core 3.1, VS2019, AutoMapper.Extensions.Microsoft.DependencyInjection 7.0.0 摘要:基 ...

  9. ASP.NET Core搭建多层网站架构【9.1-使用Autofac代替原生的依赖注入】

    2020/01/30, ASP.NET Core 3.1, VS2019, Autofac.Extensions.DependencyInjection 5.0.1 摘要:基于ASP.NET Core ...

  10. ASP.NET Core搭建多层网站架构【9.2-使用Castle.Core实现动态代理拦截器】

    2020/01/31, ASP.NET Core 3.1, VS2019, Autofac.Extras.DynamicProxy 4.5.0, Castle.Core.AsyncIntercepto ...

随机推荐

  1. google protocol 入门 demo

    ubunbu系统下google protobuf的安装 说明: 使用protobuf时需要安装两部分: 第一部分为*.proto文件的编译器,它负责把定义的*.proto文件生成对应的c++类的.h和 ...

  2. 详解C/C++中的的:#pragma pack(push) 、#pragma pack(pop) 和#pragma pack()

    前言 我们知道结构体内存对齐字节可以通过#pragma pack(n) 的方式来指定. 但是,有没有想过一个问题,某些时候我想4字节对齐,有些时候我又想1字节或者8字节对齐,那么怎么解决这个问题呢? ...

  3. kali 所有版本

    首先打开kali官方网站 第一步 第二步 找到 第三步点击标黄色的地方 http://cdimage.kali.org/ 第四步将网址中的cdimage替换为old http://old.kali.o ...

  4. 跨站点请求伪造(CSRF、XSRF)

    相关文章: 1. http://www.cnblogs.com/xiaoqian1993/p/5816085.html  深入解析跨站请求伪造漏洞:原理剖析 2 .http://blog.csdn.n ...

  5. Execl导出

    1.ExeclUtil.java public class ExcelUtil { public static <T> HSSFWorkbook exprotExcel(String ti ...

  6. Linux sed识别HTML标签

    在做Linux作业,遇到一题用sed替换掉文件中的特殊字符,其中HTML标签就是一大堆特殊字符. 先来说说sed的替换使用“s/待替换的字符/将替换成的字符/”. 其后还可以跟g,即“s///g”,表 ...

  7. d2admin框架学习

    <template slot-scope="scope"> <el-button @click="upper_score(scope.$index, s ...

  8. android 获取颜色 getColor 方法 deprecated 过期

    可以使用下面代码代替: ContextCompat.getColor(getContext(), R.color.post_list_content_color) 需要引入: compile 'com ...

  9. 新建表需要原表的数据,mysql 如何把查询到的结果插入到新表中

    项目运用情景:新建表需要原表的数据 1. 如果两张张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO  目标表  SELECT  * FROM  来源表 ...

  10. Web设计精髓(转)

    作者:zhouwenqi  地址:http://www.zhouwenqi.com/blog/board_43.html 这篇文章说实际问题的,所以不多强调,下面是我总结的一些比较突出的细节问题,而且 ...