使用VS Code開發.Net Core 2.0 應用程序
咱們直接來看看這款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。如下圖:
然後,添加引用……創建了項目之後當然要添加引用啊,不引用我咋用?可是我找了老半天,不知道在哪添加引用,剛剛用help看集成終端命令的時候發現有一個build命令,應該是它吧?試一試唄。
好,我們在集成終端中輸入命令dotnet build MyCMS.BLL/MyCMS.BLL.csproj先生成BLL試一下,回車,哈哈哈,成了!
接下來生成另外的三個項目。命令分別是dotnet build MyCMS.DAL/MyCMS.DAL.csproj 和 dotnet build MyCMS.Modles/MyCMS.Models.csproj再和dotnet build MyCMS.Common/MyCMS.Common.csproj。挺好玩是吧?
但是我們的問題還沒有解決啊,就是,怎麼進行項目間的相互引用,不會讓我去把生成的dll直接拷貝過來放在當前項目下吧?
於是我去翻了微軟的官方文檔,開源社區什麼的,最後在我們自己的項目里的MVC項目下工程文件MyCMS.Web.csproj中發現了下邊這個東西——
不會就是這個鬼東西吧?添加引用要在工程文件中手寫?不管怎麼樣,我們來試一下能不能在這裡面吧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.ModelsMyCMS.Models.csproj" />
<ProjectReference Include="..MyCMS.BLLMyCMS.BLL.csproj" />
<ProjectReference Include="..MyCMS.CommonMyCMS.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.ModelsMyCMS.Models.csproj" />
<ProjectReference Include="..MyCMS.DALMyCMS.DAL.csproj" />
<ProjectReference Include="..MyCMS.CommonMyCMS.Common.csproj" />
</ItemGroup>
</Project>
MyCMS.DAL.csproj中配置的引用:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..MyCMS.ModelsMyCMS.Models.csproj" />
<ProjectReference Include="..MyCMS.CommonMyCMS.Common.csproj" />
</ItemGroup>
</Project>
好啦,測試一下,一切正常。具體的操作過程,我們在接下來的項目中繼續整吧。
更多優質內容推薦:
有錢任性,某公司豪擲500萬幫助20左右年輕人找工作,起因是做善良的人:
http://www.ujiuye.com/zt/jyfc/?wt.bd=zdy35845tt
學IT,用周末給自己加薪!
http://www.ujiuye.com/zt/zmb/?wt.bd=zdy35845tt
IT職業教育:http://xue.ujiuye.com/
※dubbo源碼分析:超時原理以及應用場景
※分散式web架構中對session同步的常用處理方法及優缺點
※同一個表單,傳遞到不同的處理器中
TAG:IT優就業 |
※Office 365 應用開發的.NET Core 模板庫
※使用C#開發Android應用之WebApp
※NET Core開發日誌——WCF Client
※PowerVR開發工具和SDK 2018 Release1正式發布!
※C#開發Android應用之WebApp
※BCH應用開發的門戶網站:developer.bitcoin.com
※貿澤即日起供應Cypress PSoC 6 WiFi-BT Pioneer套件,用於開發穩健的物聯網及可穿戴應用
※BCH新開發者平台Developer.bitcoin上線,加速BCH應用開發
※Android開發學習-Day17-19 多線程&Service
※為什麼 web 開發人員需要遷移到.NET Core,並使用 ASP.NET Core MVC 構建 web和API
※watchOS 5 將停止支持為 watchOS 1 開發的應用
※使用 Visual Studio Code 搭建 C/C+開發和調試環境
※Magic Leap One開發NAB專屬AR應用程序
※VR遊戲《Wands》開發商Cortopia完成約879萬RMB融資
※Google I/O 開發者大會:Android Things 1.0問世
※ComponentOne 控制項集發布2018V1版本,助您加速 .NET項目開發
※RED正在開發基於Facebook Surround360技術的VR相機
※ASP.NET Core MVC+EF Core從開發到部署
※Google的DeepMind開發AI 可將2D圖片渲染成3D
※Android P開發者預覽版公布 Nexus 6P/5X無緣