好了,废话也很少说,我们直接来看看这款MVC的造型——你可能会大吼:“这……这特么的都是些什么鬼?”html
靠,告诉你吧,我也不知道这都是些什么鬼,反正之前我是没有见过这样的MVC。咦,老纸的config文件呢?跑哪去了?config不是说好的标配吗?我上哪配置数据库链接去?还有那个wwwroot又是什么玩意儿?还有这个__layout下边怎么有environment那个东西?数据库
先无论了,咱们先来把咱们的系统架构搭建起来吧,这些配置上的问题回头再收拾它。架构
那好,咱们要作的是一个CMS系统,是一个不大不小的玩意儿。那要是把全部的东西都放在一个项目下,回头弄起来确定是不会太舒服的。咱们也利用当前比较流行的简单三层架构,给加一些相关项目进去吧。app
额,简单三层架构,都知道吧?三层架构呢分为UI、BLL和DAL,咱们的MVC这一整块就当UI了,除了BLL和DAL外,还得加个Models用存放各类模型,有一个DBUtility用于提供数据库的访问。可是呢,咱们这里面的数据库访问直接会使用Entity Framework来完成,因此那谁谁谁就不须要了。测试
好,下边开始快速建立三个类库项目(BLL、DAL、Models)出来。调出集成终端,用dotnet new -help命令看看建立类库的命令是啥?好了,发现了——是它:dotnet new classlib,而后 -n 项目名称。以下:ui
好了,咱们建立好了Models,下边接着快速弄出BLL和DAL来,而后还有一个用于通常性操做,好比字符转换啊、文件加密啊之类的公用类common。以下图:加密
而后,添加引用……建立了项目以后固然要添加引用啊,不引用我咋用?但是我找了老半天,不知道在哪添加引用,真是蛋疼了。都找不到一个生成dll的地方。我去,生成dll?想起来了,刚刚用help看集成终端命令的时候发现有一个build命令,应该是它吧?试一试呗。(下图:找不到添加引用的地方很懵逼)lua
好,咱们在集成终端中输入命令dotnet build MyCMS.BLL/MyCMS.BLL.csproj 或者 dotnet build MyCMS.BLL,先生成BLL试一下,回车,哈哈哈,成了!spa
接下来生成另外的三个项目。命令分别是dotnet build MyCMS.DAL 和 dotnet build MyCMS.Modles 再和 dotnet build MyCMS.Common。挺好玩是吧?3d
可是咱们的问题尚未解决啊,就是,怎么进行项目间的相互引用,不会让我去把生成的dll直接拷贝过来放在当前项目下吧?
因而我去翻了微软的官方文档,开源社区什么的,最后在咱们本身的项目里的MVC项目下工程文件MyCMS.Web.csproj中发现了下边这个东西——
不会和这个鬼东西有关吧?看起来很像是添加引用啊。添加引用要在工程文件中手写?我去,真是low到家了。无论怎么样,咱们来试一下能不能在这里面吧BLL、Models和Common引用进来吧?我试了一下,不行,可是当我把PackageReference改为ProjectReference后,竟然成了!!!我特么真是天才(吹流弊的哈,我是在微软官方文档里找了老半天才发现的)
代码以下:
MyCMS.Web.csproj中配置的引用:
MyCMS.BLL.csproj中配置的引用:
MyCMS.DAL.csproj中配置的引用:
好啦,测试一下,好比说在BLL中写个方法,而后在Web中调一下之类的,一切正常,过程我就不描述啦。具体的操做过程,咱们在接下来的项目中继续倒腾吧。
今天先整到这里,午饭时间到了。