当前位置:首页 > Web开发 > 正文

ASP.NET Core搭建多层网站架构【1

2024-03-31 Web开发

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

摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【1-项目布局分层成立】

文章目录
此分支项目代码
此章节介绍了本项目的分层布局,成立了各层级的类库,改削网站项目的启动配置

新建解决方案

新建空白解决方案MSDemo

成立以下解决方案文件夹:

技术图片

一个解决方案文件夹相当于一个层级,解决方案下是src和tests。而src下分了七个层级,并且每个层级向上依赖,不会呈现2.WebCore中的内容依赖5.Model中的内容。

下面在每个层级中新建类库或应用措施,简单介绍每个层级的感化。

层级介绍

1.Common中主要安排一些大众的根本库(例如雪花算法、扩展要领等)

2.WebCore中是网站数据库实体类、网站核心配置(例如跨域配置、多语言配置等)

3.DbAccess中是数据库实体类映射配置、封装事情单元仓储设计类库

4.Component中安排一些Web组件,例如Aop动态代办代理、Jwt授权验证等

5.Model中安排Automapper的映射配置、ViewModel、DTO等内容

6.Business主要是业务内容

7.WebHost就是WebApi地址层级

说明:

6、7之间也可以多加一层Middleware中间件层级(如有需要的话)

WebHost不只仅可以放WebApi,一样可以安排WebMVC网站

主要思路是想遵循严格的下级依赖上级,分层条理清晰易于理解,各层级职责明确

为什么有Component这一层?这一层里的内容其实和中间件很类似,但是按我的设计是可替换的,例如Jwt组件,如果不用Jwt,可以不加上去。而中间件内的对象是与网站强相关的

src项目成立

在解决方案地址文件夹下,成立src文件夹,src下所有项目都放在这个路径下。

类库配置如下图,后面几个类库除了名字差别,都是一样的路径:

技术图片

在1.Common中新建.NET Core类库,,取名为MS.Common,一些公用的根本要领就封装在这里面。

在2.WebCore中新建.NET Core类库,取名为MS.Entities,里面存放数据库实体类

在2.WebCore中新建.NET Core类库,取名为MS.WebCore,里面存放网站核心的一些配置,依赖MS.Common项目

在3.DbAccess中新建.NET Core类库,取名为MS.UnitOfWork,里面是事情单元与仓储设计

在3.DbAccess中新建.NET Core类库,取名为MS.DbContexts,里面存放实体类映射配置和数据库上下文,依赖MS.UnitOfWork项目

在4.Component中新建.NET Core类库,取名为MS.Component.Aop,实现Aop动态代办代理,依赖MS.WebCore项目

在4.Component中新建.NET Core类库,取名为MS.Component.Jwt,实现Jwt验证授权,依赖MS.WebCore、MS.Entities两个项目

在5.Model中新建.NET Core类库,取名为MS.Models,实现存放AutoMapper映射配置、ViewModel和DTO,依赖MS.Component.Jwt、MS.DbContexts两个项目

在6.Business中新建.NET Core类库,取名为MS.Services,是主要的业务实现,依赖MS.Models项目

在7.WebHost中新建ASP.NET Core Web应用措施,取名为MS.WebApi,打消HTTPS配置,依赖MS.Services、MS.Component.Aop两个项目

将MS.WebApi网站设为项目启动项

成立完成后,解决方案如下图:

技术图片

十个项目都是.NET Core 3.1方针框架,并且十个项目都在src文件夹中:

技术图片

编纂网站启动配置

打开MS.WebApi-Properties-launchSettings.json文件,编纂网站启动配置:

技术图片

删除IIS Express节点配置,并将MS.WebApi节点中,launchBrowser值改为false,此时,网站项目将使用Kestrel内核启动,不使用IIS Express,不启动浏览器,仅有个控制台措施:

技术图片

打开Postman,New Collection-输入名称MSDemo

技术图片

在MSDemoCollection中Add Requst,名称填写weatherforecast,添加完成后,输入URL::5000/weatherforecast后回车:

技术图片

可以看到请求告成。

总结

使用Kestrel内核启动Web处事器,而不是使用IIS Express,关于这两种托管模式,可以看老张的哲学出品的ASP.NET Core 学习视频教程,P4-两种托管模式(注意是第四P)

在使用Postman过程中,成立了Collection,再在Collection中Add Requst请求,为的是:

便利一个项目的请求都在一个调集中

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30922.html