好了,廢話也不多說,咱們直接來看看這款MVC的造型——你可能會大吼:“這……這特么的都是些什么鬼?”

靠,告訴你吧,我也不知道這都是些什么鬼,反正以前我是沒有見過這樣的MVC。咦,老紙的config文件呢?跑哪去了?config不是說好的標配嗎?我上哪配置數據庫連接去?還有那個wwwroot又是什么玩意兒?還有這個__layout下邊怎么有environment那個東西?
先不管了,我們先來把我們的系統架構搭建起來吧,這些配置上的問題回頭再收拾它。
那好,我們要做的是一個CMS系統,是一個不大不小的玩意兒。那要是把所有的東西都放在一個項目下,回頭弄起來肯定是不會太舒服的。我們也利用當前比較流行的簡單三層架構,給加一些相關項目進去吧。
額,簡單三層架構,都知道吧?三層架構呢分為UI、BLL和DAL,我們的MVC這一整塊就當UI了,除了BLL和DAL外,還得加個Models用存放各種模型,有一個DBUtility用於提供數據庫的訪問。但是呢,我們這里面的數據庫訪問直接會使用Entity Framework來完成,所以那誰誰誰就不需要了。
好,下邊開始快速創建三個類庫項目(BLL、DAL、Models)出來。調出集成終端,用dotnet new -help命令看看創建類庫的命令是啥?好了,發現了——是它:dotnet new classlib,然后 -n 項目名稱。如下:

好了,我們創建好了Models,下邊接着快速弄出BLL和DAL來,然后還有一個用於一般性操作,比如字符轉換啊、文件加密啊之類的公用類common。如下圖:

然后,添加引用……創建了項目之后當然要添加引用啊,不引用我咋用?可是我找了老半天,不知道在哪添加引用,真是蛋疼了。都找不到一個生成dll的地方。我去,生成dll?想起來了,剛剛用help看集成終端命令的時候發現有一個build命令,應該是它吧?試一試唄。(下圖:找不到添加引用的地方很懵逼)

好,我們在集成終端中輸入命令dotnet build MyCMS.BLL/MyCMS.BLL.csproj 或者 dotnet build MyCMS.BLL,先生成BLL試一下,回車,哈哈哈,成了!

接下來生成另外的三個項目。命令分別是dotnet build MyCMS.DAL 和 dotnet build MyCMS.Modles 再和 dotnet build MyCMS.Common。挺好玩是吧?
但是我們的問題還沒有解決啊,就是,怎么進行項目間的相互引用,不會讓我去把生成的dll直接拷貝過來放在當前項目下吧?
於是我去翻了微軟的官方文檔,開源社區什么的,最后在我們自己的項目里的MVC項目下工程文件MyCMS.Web.csproj中發現了下邊這個東西——

不會和這個鬼東西有關吧?看起來很像是添加引用啊。添加引用要在工程文件中手寫?我去,真是low到家了。不管怎么樣,我們來試一下能不能在這里面吧BLL、Models和Common引用進來吧?我試了一下,不行,但是當我把PackageReference改成ProjectReference后,居然成了!!!我特么真是天才(吹流弊的哈,我是在微軟官方文檔里找了老半天才發現的)
代碼如下:

MyCMS.Web.csproj中配置的引用:
MyCMS.BLL.csproj中配置的引用:
MyCMS.DAL.csproj中配置的引用:
好啦,測試一下,比如說在BLL中寫個方法,然后在Web中調一下之類的,一切正常,過程我就不描述啦。具體的操作過程,我們在接下來的項目中繼續倒騰吧。
今天先整到這里,午餐時間到了。
使用VS Code開發.Net Core 2.0 MVC Web應用程序教程之三(配置文件讀取)
