前言
上一章介紹了 Asp.Net Core 的前世今生,並創建了一個控制台項目編譯並運行成功,本章的內容介紹 .NETCore 的各種常用命令、Asp.Net Core MVC 項目文件目錄等信息,通過對命令的學習和操作,對項目結構的認識,進一步理解 Asp.Net Core 的運行機制和項目框架。
創建項目的命令
首先來認識一下創建項目可使用的各種命令,.NETCore 的命令都以 dotnet 打頭,這很好理解,輸入 dotnet xxx,就是執行環境變量指向的 C:\Program Files\dotnet\dotnet.exe 程序,然后給 dotnet.exe 提供參數運行。建議初學者以下命令逐個執行一遍,加深記憶和理解,如果實在記不住也沒有關系,可以通過在控制台中輸入命令
1.幫助命令
dotnet --help
// 或者
dotnet optional --help
// 如
dotnet new --help // 了解創建項目的幫助文檔
2. dotnet new 創建各種類型的項目
模板 | 短名稱 | 語言 |
---|---|---|
控制台應用程序 | console | [C#]、F#、VB |
類庫 | classlib | [C#]、F#、VB |
單元測試項目 | mstest | [C#]、F#、VB |
xUnit 測試項目 | xunit | [C#]、F#、VB |
Razor 頁 | page | [C#] |
MVC ViewImports | viewimports | [C#] |
MVC ViewStart | viewstart | [C#] |
ASP.NET Core 空 | web | [C#],F# |
ASP.NET Core Web應用程序(Model - View - Controller) | mvc | [C#],F# |
ASP.NET Core Web 應用程序 | razor | [C#] |
含 Angular 的 ASP.NET Core | angular | [C#] |
含 React.js 的 ASP.NET Core | react | [C#] |
含 React.js 和 Redux 的 ASP.NET Core | reactredux | [C#] |
ASP.NET Core Web API | webapi | [C#],F# |
Razor 類庫 | razorclasslib | [C#] |
global.json 文件 | globaljson | |
NuGet 配置 | nugetconfig | |
Web 配置 | webconfig | |
解決方案文件 | sln |
- 更多命令,見
https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-new?tabs=netcore21
最最常用的命令有 4 個,這些命令需要在項目根目錄執行
1. 創建一個 asp.net core mvc 項目,指定項目名稱為 MyMvc
dotnet new mvc -o MyMvc
2. 還原項目引用包
dotnet restore
3. 編譯項目
dotnet build
4. 運行項目
dotnet run
Asp.Net Core 項目結構介紹
1. 首先使用上面的命令創建一個 Asp.Net Core MVC 項目
dotnet new mvc -o MyMvc
2. 創建成功,得到一個新的 Asp.Net Core MVC 項目
打開項目文件夾,進入項目,看到一個標准的 Asp.Net Core MVC 項目結構如下
介紹各個目錄和文件的作用
1. 三層架構目錄
/Models
/ViewS
/Controllers
這是一個和 Asp.Net MVC 相同的三層架構 MVC 項目,包含了 模型(Models)、視圖(Views)、控制器(Controllers),簡單來說就是 Models 內可以定義視圖(Views)通過 html 傳遞到 Controllers 內控制器的實體對象
2. obj 目錄
該目錄用於存放相關配置文件暫存項,包引用項目配置說明
3. Properties 目錄
該目錄用於存放程序集信息,運行配置文件、內部資源等文件,該目錄在創建之初,會默認創建一個 launchSettings.json ,該文件包含了一些程序啟動時的信息
{
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:23090",
"sslPort": 44351
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MyMvc": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
4. 無需理解太多,直接在項目根目錄下輸入命令啟動 MVC 項目
dotnet run
你將會得到如下窗口輸出信息
重點關注控制台輸出的一個信息
Now listening on: https://localhost:5001
Now listening on: http://localhost:5000
該信息表示 Asp.Net Core MVC 項目已成功運行於 5001/5000 端口下,在瀏覽器中打開該連接地址
https://localhost:5001
再圖看看 launchSettings.json 中的信息,找到下面的信息,你就了解了這個文件的作用是配置項目運行端口等信息的
"applicationUrl": "https://localhost:5001;http://localhost:5000",
5. wwwwroot
該目錄存放視圖層(Views) html 頁面引用的靜態資源,如圖片、樣式表、腳本文件(js)等
6. appsettings.json 和 appsettings.Development.json
項目主配置文件,兩個文件格式完全相同,實際上 appsettings.Development.json 表示 開發時運行程序的配置文件,使用 appsettings.{env}.json,可以很方便進行運行環境的切換,以加載不同的配置文件
7. MyMvc.csproj 項目描述文件,用記事本打開它,看看
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
</ItemGroup>
</Project>
第一行表示項目是一個 web 應用程序,當前使用的 SDK 版本為 netcoreapp2.1,配置節點 ItemGroup 包含了項目引用的 Nuget 包,如有新的包引用,可以加入該 ItemGroup 配置節
8.Program.cs 文件,程序運行主入口,Main 方法所在
9.Startup.cs
- 該文件是默認文件,不可隨意刪除,在此文件中可以以包含服務配置、定義請求處理管道的重要操作。
結語
總的來說,這是一篇小白入門答疑,簡單的介紹了一個標准的 Asp.Net Core MVC 項目都包含了哪些文件和目錄,以及各自的作用,希望對未入門的同學有點幫助