科百科
当前位置: 首页 范文大全

asp.netcore启动服务器上的服务(asp.netcore系列)

时间:2023-05-23 作者: 小编 阅读量: 2 栏目名: 范文大全

不过,这些并不是asp.netcoremvc项目的全部内容,剩下的内容我将结合实战项目为大家讲解其中的知识。然后,我们依次创建Data、Domain、Web三个项目,其中Data和Domain是classlib,Web是mvc项目。这是因为面向接口编程,我们需要对Service实现层隐藏Domain的实现,所以对于Service的实现层来说,不需要关心Domain层的实现逻辑。

0. 前言

在《asp.net core 系列》之前的几篇文章中,我们简单了解了路由、控制器以及视图的关系以及静态资源的引入,让我们对于asp.net core mvc项目有了基本的认识。不过,这些并不是 asp.net core mvc项目的全部内容,剩下的内容我将结合实战项目为大家讲解其中的知识。现在,就让我们开始吧。

1. 项目构建

抛开之前的项目,现在跟着我重新创建一个项目,第一步依旧是先创建一个解决方案:

dotnet new sln --name Template

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

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

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

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

dotnet sln add Datadotnet sln add Domaindotnet sln add Web

因为Data 中存放着模型层,所以需要其他项目对它有一个引用:

cd Domaindotnet add reference ../Datacd ../Webdotnet add reference ../Data

当然,实际开发中我们应当还有一个Service层,这一层用来存放业务代码,减少控制器里不必要的业务代码。那么继续:

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

然后添加Service的引用:

cd Servicedotnet add reference ../Data

将 Service的引用添加到Web里:

cd ../Webdotnet add reference ../Service

现在一个大型工程基本都是面向接口编程,几个关键层应当都是接口层,我们实际上还缺少Domain的实现层和Service的实现层。

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

在对应的实现层中,引入它们实现的接口层,并引入Data:

cd Domain.Implementsdotnet add reference ../Datadotnet add reference ../Domaincd ../Service.Implementsdotnet add reference ../Datadotnet add reference ../Domaindotnet add reference ../Service

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

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

cd ../Webdotnet add reference ../Domain.Implementsdotnet add reference ../Service.Implements

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

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

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

整体而言,Data是各个层之间的数据流通依据,所以各个项目都依赖于此项目,各个接口层的实现层都只对Web可见,其他各层实际上并不清楚具体实现。

隐藏实现层有什么好处呢?

  • 调用方不知道实现方的逻辑,避免调用方对特定实现的依赖
  • 有利于团队协作,有的团队是针对模块划分,有的是针对分层划分,无论哪种,使用接口都是一个好的选择
  • 有利于后期优化,可以很方便的切换实现层,而不用重新编译过多的代码

当然,并不只有这些好处,不过这样有一个坏处,在web层调用service层时会更繁琐,不过这也不是不可解决的,后续的内容中会为大家介绍如何解决这个烦恼。

2. 项目补充

通常情况下,一个完整的项目还会有一个工具类项目和一个测试项目。所以,继续添加以下项目:

dotnet new classlib --name Utils

Utils 表示工具类,通常一个项目中工具类会比较多,所以就抽成了一个项目,单独列出来。

添加测试项目:

dotnet new nunit --name Test

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

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

dotnet sln add Utilsdotnet sln add Test

3. 总结

本章内容旨在通过创建项目,让大家了解实际开发中项目的层级规划思想,这并不代表我的就是最优的,只是这是我总结出来相对方便的层级关系。这里并没有讲解如何通过Visual Studio或者Rider创建这样的一个项目,我希望大伙能够自己试试。

好了,希望大家能创建好项目,当然了后期我会给大家提供这个项目的源码的,地址暂时保密哦。

求关注,求点赞,求转发~~有啥可以评论哟

,
    推荐阅读
  • 怪物猎人世界冰原狩猎笛新增玩法一览 狩猎笛新增哪些_网

    怪物猎人世界冰原狩猎笛新增玩法一览笛子基本可定义为辅助型武器,单人solo虽然也是可以,但组队作战才能把笛子的特色发挥至尽。响音符需要用本次的新动作来发动。响音符可以和音色2或音色3组合出一种旋律,也就是现在每把笛子都多了两个旋律。体力持续恢复相当于尸套龙套装技能的超恢复力效果。回性效果相当于几级回性目前不明。如果想快速凑响音旋律,可以使用柄击来衔接响音攻击。

  • 凤唳九天主演是谁(凤唳九天介绍)

    凤唳九天主演是谁《凤唳九天》是由爱奇艺和花花传媒出品,刘海波、沈阳联合执导,陈哲远、李墨之、张峻宁、程砚萩、晏紫东、张璇、宗峰岩等主演的古装励志大剧。该剧讲述了大褚皇后姚莫心被奸人所害,重生到妹妹姚莫婉体内后与肃亲王夜君清并肩作战,一步步找寻真相,解开谜题的过程中不断成长并收获友情和真爱的故事。李墨之饰演姚莫婉(女主角)姚莫婉,姚府痴傻三小姐,重生后的姚莫心,深爱夜君清。

  • 肉片炒淮山步骤(山药炒肉片)

    肉片炒淮山步骤用料:山药一根,猪里脊肉200克,青红椒各一个,油、盐、生抽、鸡精适量。准备好所有的材料。山药去皮切片,放加了醋的清水里面浸泡,以免变色,青红椒切丁。把山药放人沸水中焯二分钟,捞出沥干待用。热锅放油,油热后下入腌好的肉片滑散后盛出。余油再次烧热,放入青红椒片翻炒,随后加入沥干水分的山药片,继续翻炒,加入盐调味,倒入滑好的肉片,加入鸡精提味即可出锅。

  • 华为mate30的home键在哪里设置(华为mate30的home键怎么设置)

    华为mate30的home键在哪里设置以emui10系统为例。

  • 负罪感什么意思(负罪感的解释)

    负罪感什么意思?跟着小编一起来看一看吧!负罪感什么意思负罪感,是一种比较主观的感觉,当人做了一件自己觉得违反了自己的良知事情,在事后自己对自己的行为产生后悔或罪过的情绪。

  • 现代领动大灯怎么拆下来(现代领动大灯拆下来的方法)

    首先车辆要在熄火5分钟以上,拔掉车钥匙,待发动机完全冷却下来,再打开发动机舱盖,以免零部件烫伤自己。打开发动机舱盖之后,可以看到大灯总成后面的防尘罩,防尘罩大多采用橡胶制作,顺着螺口方向直接拧下来即可,并不需要太多的力气,之后能看到大灯总成里的灯泡底座,捏住底座旁边的钢丝卡簧,待卡子松开之后就可以拿出灯泡了。将灯泡从反射罩中取出。重新盖上防水盖,将灯泡电源插上,更换操作便完成了。

  • 蓟州第七小学2021招生政策(蓟州区第七小学)

    以上范围内居住的无单独自有住房的居住证持有人随迁子女。》》》招生办法符合报名条件的适龄儿童家长须在规定时间内完成网上信息采集登记,并在7月17日-7月18日持相关手续到所属学区片小学报名。

  • 贪生怕死的贪是什么意思(贪的意思到底是什么)

    跟着小编一起来看一看吧!贪生怕死的贪是什么意思贪生怕死的贪释义:求多,不知足。贪生怕死,汉语成语,拼音:tānshēngpàsǐ。原指士兵作战因怕死而退缩不前。现在已逐渐产生新义,即凡是在工作中怕脏、怕累、怕危险等等,皆属此列。出自《汉书·文三王传》。

  • 理解你的星座(你的星座在哪里)

    英仙座与仙后座之间是英仙座双重星团。天狼星和小犬座的南河三、猎户座的参宿四组成一个较大的等边三角形。2016年开始,美国宇航局NASA正式认定:蛇夫座被纳入黄道上的第13个星座。蛇夫座在天蝎座和射手座之间,脚踏天蝎,好不霸气。星座的其他划分阳性星座的人大多是有进取心的、积极主动的理想主义者。阴性星座的人大多是性格内向的、被动的战略家。

  • mind的用法和搭配(进来看看)

    以下内容希望对你有帮助!mind的用法和搭配用作动词表示“介意”、“在乎”等,其后接动词时要用动名词;表示“注意”、“当心”等,其后接动词时要用不定式。请你帮我们一下忙好吗?I’msurehewouldn’tmindyourgoingwithus.我肯定他不会反对你同我们一起去。用作名词表示“脑子”、“心思”等,通常用作可数名词。

热门推荐