网站模板后台管理-《asp.net core系列》从0.1构建完整项目

0. 前言

在《asp.net core系列》之前的文章中,我们简单了解了路由、控制器和视图之间的关系以及静态资源的介绍,这让我们对asp.net core mvc项目有了一个基本的了解。 不过这些并不是asp.net core mvc项目的全部内容,剩下的内容我会结合实际项目给大家讲解一下。 现在网站模板后台管理,让我们开始吧。

一、项目立项

抛开之前的项目,现在跟我来创建一个新项目,第一步仍然是先创建一个解决方案:

dotnet new sln --name Template

首先介绍一下这个项目(指的是整个项目,不是一个单独的asp.net core应用),它是一个后台管理模板应用,提供常用的后台系统(管理员端)功能,包括员工管理、部门管理、作为角色管理。

现在回到项目,通常一个项目需要模型层、数据提供层和Web显示层。 然后,我们依次创建Data、Domain、Web三个项目,其中Data和Domain是classlib,Web是mvc项目。

# 确保当前目录与 Template.sln 处于相同的目录
dotnet new classlib --name Data
dotnet new classlib --name Domain
dotnet new mvc --name Web

将三个项目添加到解决方案中:

dotnet sln add Data
dotnet sln add Domain
dotnet sln add Web

由于模型层存储在Data中,因此其他项目需要对其有引用:

cd Domain
dotnet add reference ../Data
cd ../Web
dotnet add reference ../Data

当然,在实际开发中,我们还应该有一个Service层,用于存放业务代码,减少控制器中不必要的业务代码。 所以请继续:

# 回到项目的根目录
cd ..
dotnet new classlib --name Service
dotnet sln add Service

然后添加对Service的引用:

网站模板后台管理-《asp.net core系列》从0.1构建完整项目

cd Service
dotnet add reference ../Data

将服务引用添加到 Web:

cd ../Web
dotnet add reference ../Service

现在一个小项目基本都是面向接口编程,几个关键层应该就是socket层。 事实上,我们还缺少Domain和Service的实现层。

cd ..
dotnet new classlib --name Domain.Implements
dotnet new classlib --name Service.Implements

在对应的实现层中,引入他们实现的socket层,并引入Data:

cd Domain.Implements
dotnet add reference ../Data
dotnet add reference ../Domain
cd ../Service.Implements
dotnet add reference ../Data
dotnet add reference ../Domain
dotnet add reference ../Service

这里,Service的实现层添加了Domain套接字层的引用,而不是实现层的引用。 这是因为面向接口编程,我们需要向Service实现层隐藏Domain的实现,所以对于Service实现层来说,不需要关心Domain层的实现逻辑。

添加对Web中新创建的两个实现层的引用:

cd ../Web
dotnet add reference ../Domain.Implements
dotnet add reference ../Service.Implements

将这两个实现层添加到解决方案中:

cd ..
dotnet sln add Domain.Implements
dotnet sln add Service.Implements

下图是目前为止的项目结构图:

网站模板后台管理-《asp.net core系列》从0.1构建完整项目

整体来看,Data是各层之间数据流通的基础,因此每个项目都依赖于这个项目,而每个socket层的实现层只对Web可见网站模板后台管理,其他层实际上并不知道具体的实现。

隐藏实现层有什么好处?

当然,不仅有这些用途,而且这个还有一个优点。 当web层调用service层的时候会比较复杂,但这并不是无法解决。 后续内容将介绍如何解决这个烦恼。

2. 项目补充

通常,一个完整的项目将包含一个实用项目和一个测试项目。 因此,继续添加以下项目:

dotnet new classlib --name Utils

Utils的意思是工具类。 通常一个项目中工具类较多,所以将其提取到一个项目中单独列出。

网站模板后台管理-《asp.net core系列》从0.1构建完整项目

添加测试项目:

dotnet new nunit --name Test

这里使用的是nunit 3测试框架,当然另一个是xunit测试框架。

将两个项目添加到解决方案中:

dotnet sln add Utils
dotnet sln add Test

三、总结

本章的内容致力于创建项目,让你了解实际开发中项目的分层规划思想。 这并不是说我的就是最好的,但这只是我总结出来的一个比较方便的层级关系。 这里没有解释如何通过Visual Studio或者Rider创建这样的项目,希望大家可以自己尝试一下。

好吧,我希望你能创造一个好的项目。 当然,稍后我会向大家提供这个项目的源代码,地址暂时保密。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 模板插件 网站模板后台管理-《asp.net core系列》从0.1构建完整项目 https://www.wkzy.net/game/168047.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务