好了,廢話也很少說,我們直接來看看這款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中調一下之類的,一切正常,過程我就不描述啦。具體的操做過程,咱們在接下來的項目中繼續倒騰吧。
今天先整到這裏,午飯時間到了。