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. Ecshop各个页面文件介绍,主要文件功能说明

    1.模板文件说明 style.css – 模板所使用样式表activity.dwt – 活动列表article.dwt – 文章内容页article_cat.dwt – 文章列表页article_pr ...

  2. c# Gridview 自动分页功能 解决后面页面不显示问题

    操作步骤: 操作如下: 1.更改GrdView控件的AllowPaging属性为true. 2.更改GrdView控件的PageSize属性为 任意数值(默认为10) 3.更改GrdView控件的Pa ...

  3. JS高级---案例:验证表单

    案例:验证表单 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...

  4. HttpModule介绍

    https://cloud.tencent.com/developer/article/1347498 引言 Http 请求处理流程 和 Http Handler 介绍 这两篇文章里,我们首先了解了H ...

  5. 0009 注册登录(第二步:获取短信接口access token)

    1 在GeneralTools目录下创建一个常量文件Constants.py 获取短信验证之前需要申请腾讯云短信服务. """ 腾讯云短信相关常量 "" ...

  6. Ubuntu切换默认sh为bash或者dash

    Ubuntu切换默认sh为bash或者dash   1 bash与dash 从Ubuntu 6.10开始,默认使用dash(theDebian Almquist Shell)而不是bash(the G ...

  7. 牛客多校第七场H Pair 数位dp理解

    Pair 题意 给出A B C,问x取值[1,A]和y取值[1,B]存在多少组pair<x,y>满足以下最小一种条件,\(x \& y >c\),\(x\) xor \(y& ...

  8. DSDT/SSDT

    版权说明:本文章参考tonymacx86的Patching LAPTOP DSDT/SSDTs这篇文章 如果需要转载,请注明原文地址:http://blog.csdn.net/wr132/articl ...

  9. 圆桌问题 (ArrayList+模拟)

    圆桌上围坐着2n个人.其中n个人是好人,另外n个人是坏人.如果从第一个人开始数数,数到第m个人,则立即处死该人:然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人 ...

  10. 经常犯的错误之递归写不全return

    在写递归函数的时候,只在最后一层写return,中间的过程没有return,导致结果的丢失. 举个例子 LL query(LL i, LL k) { if (sum[i] < k) { ; } ...