使用VS Code開發.Net Core 2.0 MVC Web應用程序教程之二

  好了,廢話也很少說,我們直接來看看這款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中配置的引用:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
    <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
    <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
    <UserSecretsId>aspnet-MyCMS.Web-45772B25-03D5-4AE3-8841-5C07D7104590</UserSecretsId>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0-preview2-final" />
  </ItemGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyCMS.Models\MyCMS.Models.csproj" />
    <ProjectReference Include="..\MyCMS.BLL\MyCMS.BLL.csproj" />
    <ProjectReference Include="..\MyCMS.Common\MyCMS.Common.csproj" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0-preview2-final" />
  </ItemGroup>

</Project>
 

MyCMS.BLL.csproj中配置的引用:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyCMS.Models\MyCMS.Models.csproj" />
    <ProjectReference Include="..\MyCMS.DAL\MyCMS.DAL.csproj" />
    <ProjectReference Include="..\MyCMS.Common\MyCMS.Common.csproj" />
  </ItemGroup>

</Project>
 

MyCMS.DAL.csproj中配置的引用:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\MyCMS.Models\MyCMS.Models.csproj" />
    <ProjectReference Include="..\MyCMS.Common\MyCMS.Common.csproj" />
  </ItemGroup>

</Project>

 

  好啦,測試一下,好比說在BLL中寫個方法,而後在Web中調一下之類的,一切正常,過程我就不描述啦。具體的操做過程,咱們在接下來的項目中繼續倒騰吧。

今天先整到這裏,午飯時間到了。

 

下一篇↓↓↓

 

使用VS Code開發.Net Core 2.0 MVC Web應用程序教程之三(配置文件讀取)

相關文章
相關標籤/搜索