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

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

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

不过,这些并不是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创建这样的一个项目,我希望大伙能够自己试试。

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

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

,
    推荐阅读
  • 结婚周年祝福语简短(结婚一周年唯美句子)

    我们一起去了解并探讨一下这个问题吧!感谢时光没有抛弃你我,你一直陪伴着我,我一直深爰着你。我们是两个半圆,相遇之后组成了幸福的起点,纪念日快乐!你只能是第二幸运的人,因为最幸运的是我,能够陪你白头到老。和你在一起的每一天,都是甜蜜的婚姻时光,祝我们一周年快乐!结婚一年了,你依然十分宠爱我,我觉得非常幸福。在纪念日的时候,我没有很多矫情的情话,只愿我们初心不变,幸福永远。

  • 纯杯子为什么不能装热水(这几种杯子不适合用来喝热水)

    双层带盖的保温不锈钢杯子可以将热饮保温数小时。但是抛开剂量谈毒性也是不科学的,苯乙烯单体的迁移量主要取决于接触的温度、饮料中脂质含量的高低以及盛装的时间。还有人觉得一次性纸杯对人体也是有害的。推荐使用陶瓷杯或玻璃杯,这两种杯子基本不会存在有害物质的迁移。另一方面由于玻璃杯碰撞后容易出现缺口、表面划痕会影响美观等因素。

  • 便宜的食用油和贵的食用油的区别(建议大家买食用油)

    首先来看一下非转基因,比如玉米油,玉米油就是以玉米为主要原料加工制作出来的食用油,这就是非转基因的食用油,食用起来会更加地健康。食用油质量由高到低可分为一级、二级、三级、四级。日常家用,建议选择一级、二级食用油。

  • 冬季的宝石花的养殖方法(怎么在冬天养殖宝石花)

    下面希望有你要的答案,我们一起来看看吧!冬季的宝石花的养殖方法浇水:冬季浇水,要让盆土保持干燥的状态,如果温度低于5℃,一个月浇水一次,如果温度高于10℃,一个月浇水两次。宝石花不耐寒,尤其在冬季时,养护一定需要注意,它喜光照充足的环境,所以不可长期放置在荫庇处养护。其实想要养好宝石花,最主要的就是需要在不同的季节里严格控制浇水了。

  • 关于彼岸花的唯美诗句(彼岸花的唯美诗句有哪些)

    黄泉一路凝泪眼叶落花开花独艳,世世轮回,花叶空悲恋莫叹人间魂黯淡,何知生死相怜远,今天小编就来聊一聊关于关于彼岸花的唯美诗句?接下来我们就一起去研究一下吧!关于彼岸花的唯美诗句彼岸花,彼岸花开开彼岸,独泣幽冥,花艳人不还。尘世忍离谁再念?黄泉一路凝泪眼。叶落花开花独艳,世世轮回,花叶空悲恋。彼岸花开开彼岸,断肠草愁愁断肠。奈何桥前可奈何,三生石前定三生。

  • 秋衣秋裤有什么特点(秋衣秋裤的特点是什么)

    我们一起去了解并探讨一下这个问题吧!秋衣秋裤有什么特点秋衣秋裤的特点就是比较暖和。秋裤,是指气温比较冷时候穿在毛裤、棉裤或外裤里面用来保暖用的长裤。一般在秋天天气转凉时,穿一条单裤不够保暖,就在裤子里面再添加一条贴身的裤子,所以就叫秋裤。在淮河以南地区叫作棉毛裤,有些地方又叫衬裤,线裤。秋裤属于内衣类,不能外穿出门。且保暖程度仅次于保暖裤,可以有效的防寒。

  • 赏析王建历史的天空(千树万树梨花开)

    不过梨树中优良的品种被人们人工培植引种,为古人提供可口的水果。只能说岑参有非常重的梨花乡土情结。但是让梨花梦成名的不是岑参,是中唐叫王建的诗人,他做了一个梦。唐朝温庭筠《菩萨蛮·满宫明月梨花白》这是一对相爱的情侣,男子去了边关,女子却选作了宫女。后世多用梨花梦来形容那些香甜而缥缈的如仙梦境,是没有读懂王建的这首诗,逐渐梨花梦成为一种春梦闲梦,一种美丽女子的幽微的心思。

  • 单身男最大的禁忌就是吹嘘情史(单身男生的表现)

    带着疑问,樊磊再次踏上寻求女友的征程。经朋友介绍,樊磊与一位职业女性见了面。两人初次相遇对对方的印象都不错,兴趣爱好也很投机,樊磊觉得这次他能告别单身。樊磊很绅士地邀请女方共进午餐,对方欣然接受。然而,用餐时樊磊的表现让他再一次被拒绝。樊磊的心情从云端坠入到谷底,他知道自己又被拒绝了。朋友的训斥让樊磊找到了自己的缺陷,吹嘘情史让女性对他嗤之以鼻。

  • 荠菜煮鸡蛋饺子(春食野菜-荠菜饺子)

    可用于辅助治疗感染性疾病。所含的胡萝卜素有明目的作用,可作为眼科患者的食疗佳品。

  • 黄金叶一年销售额(黄金叶铺就致富路)

    据介绍,为提升产品附加值,延伸产业链,公司除利用鲜叶外,还积极开展对紫苏的全株利用,提高经济效益和生态效益,9月初公司向市场推出紫苏茶。“紫苏茶可用于治疗风寒感冒、胸腹胀满、恶心呕吐、海鲜过敏等。”何富枝表示,公司目前还与泉州市农科所合作,研发从紫苏中提炼精油,作为药品和化妆品的原料,争取明年推出。井头自然村的低保户何锦辉,今年53岁,他和妻子都是残疾人,两个孩子还在学校上学。