ASP.NET CORE 簡介

ASP.NET CORE 簡介

ASP.NET Core 是一個跨平臺的高性能開源框架,用于生成啟用云且連接 Internet 的新式應(yīng)用。 使用 ASP.NET Core,您可以:

  • 生成 Web 應(yīng)用和服務(wù)、物聯(lián)網(wǎng) (IoT) 應(yīng)用和移動后端。
  • 在 Windows、macOS 和 Linux 上使用喜愛的開發(fā)工具。
  • 部署到云或本地。
  • 在 .NET Core 上運行。

為何選擇 ASP.NET Core?

ASP.NET Core 具有如下優(yōu)點:

  • 生成 Web UI 和 Web API 的統(tǒng)一場景。
  • 針對可測試性進行構(gòu)建。
  • Razor Pages 可以使基于頁面的編碼方式更簡單高效。
  • Blazor 允許你在瀏覽器中使用 C# 和 JavaScript。 共享全部使用 .NET 編寫的服務(wù)器端和客戶端應(yīng)用邏輯。
  • 能夠在 Windows、macOS 和 Linux 上進行開發(fā)和運行。
  • 開放源代碼和以社區(qū)為中心。
  • 集成新式客戶端框架和開發(fā)工作流。
  • 支持使用 gRPC 托管遠程過程調(diào)用 (RPC)。
  • 基于環(huán)境的云就緒配置系統(tǒng)。
  • 內(nèi)置依賴項注入。
  • 輕型的高性能模塊化 HTTP 請求管道。
  • 能夠托管于以下各項:
    • Kestrel
    • IIS HTTP.sys
  • Nginx
  • Apache
  • Docker
  • 并行版本控制。
  • 簡化新式 Web 開發(fā)的工具。

使用 ASP.NET Core MVC 生成 Web API 和 Web UI

  • ASP.NET Core MVC 提供生成 Web API 和 Web 應(yīng)用所需的功能:
  • Model-View-Controller (MVC) 模式 使 Web API 和 Web 應(yīng)用可測試。
  • Razor Pages 是基于頁面的編程模型,它讓 Web UI 的生成更加簡單高效。
  • Razor 標記提供了適用于 Razor Pages 和 MVC 視圖的高效語法。
  • 標記幫助程序使服務(wù)器端代碼可以在 Razor 文件中參與創(chuàng)建和呈現(xiàn) HTML 元素。
  • 內(nèi)置的多數(shù)據(jù)格式和內(nèi)容協(xié)商支持使 Web API 可訪問多種客戶端,包括瀏覽器和移動設(shè)備。
  • 模型綁定自動將 HTTP 請求中的數(shù)據(jù)映射到操作方法參數(shù)。
  • 模型驗證自動執(zhí)行客戶端和服務(wù)器端驗證。

客戶端開發(fā)

ASP.NET Core 與常用客戶端框架和庫(包括 Blazor、Angular、React 和 Bootstrap)無縫集成。 有關(guān)詳細信息,請參閱 ASP.NET Core Blazor 簡介 和“客戶端開發(fā)”下的相關(guān)主題。

ASP.NET Core 目標框架

與 .NET Framework 相比,.NET Core 的部分優(yōu)勢包括:

  • 跨平臺。 在 Windows、macOS 和 Linux 上運行。
  • 性能更強
  • 并行版本控制
  • 新 API
  • 開源

ASP.NET CORE MVC

ASP.NET CORE 是一個使用 HTML、CSS、JavaScript 和服務(wù)器腳本創(chuàng)建網(wǎng)頁和網(wǎng)站的開發(fā)框架。

ASP.NET CORE 支持三種不同的開發(fā)模式: Web Pages(Web 頁面)、MVC(Model View Controller 模型-視圖-控制器)、Web Forms(Web 窗體)。

MVC 編程模式

MVC 是三種 ASP.NET CORE 編程模式中的一種。

MVC 是一種使用 MVC(Model View Controller 模型-視圖-控制器)設(shè)計創(chuàng)建 Web 應(yīng)用程序的模式:

Model(模型)表示應(yīng)用程序核心(比如數(shù)據(jù)庫記錄列表)。 View(視圖)顯示數(shù)據(jù)(數(shù)據(jù)庫記錄)。 Controller(控制器)處理輸入(寫入數(shù)據(jù)庫記錄)。 MVC 模式同時提供了對 HTML、CSS 和 JavaScript 的完全控制。

|
我的照片

|

| MVC 模式定義 Web 應(yīng)用程序 |
| 帶有三個邏輯層: |
| 業(yè)務(wù)層(模型邏輯) |
| 顯示層(視圖邏輯) |
| 輸入控制(控制器邏輯) |

|

Model是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分。 通常模型對象負責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。

View是應(yīng)用程序中處理數(shù)據(jù)顯示的部分。 通常視圖是依據(jù)模型數(shù)據(jù)創(chuàng)建的。

Controller是應(yīng)用程序中處理用戶交互的部分。 通??刂破髫撠?zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。

MVC 分層有助于管理復(fù)雜的應(yīng)用程序,因為您可以在一個時間內(nèi)專門關(guān)注一個方面。例如,您可以在不依賴業(yè)務(wù)邏輯的情況下專注于視圖設(shè)計。同時也讓應(yīng)用程序的測試更加容易。

MVC 分層同時也簡化了分組開發(fā)。不同的開發(fā)人員可同時開發(fā)視圖、控制器邏輯和業(yè)務(wù)邏輯。

創(chuàng)建 Web 應(yīng)用程序

啟動 VS 并選擇 New Project 來新建項目,選擇ASP.NET CORE Web 模板,創(chuàng)建工程

20201221151605-2020-12-21

按照項目實際需求定義項目名稱、源碼位置

1608534997(1)-2020-12-21

創(chuàng)建完成的項目預(yù)覽如下

20201221151722-2020-12-21

.Net Core 應(yīng)用程序文件夾

|
文件夾列表

|

|
說明

|

|

Properties——launchSettings.json

launchSettings.json文件為一個ASP.NET Core應(yīng)用保存特有的配置標準,用于應(yīng)用的啟動準備工作,包括環(huán)境變量,開發(fā)端口等。在launchSettings.json文件中進行配置修改,和開發(fā)者右鍵項目——屬性中所提交的更改的效果是一樣的(目前右鍵屬性中的Property真是少得可憐),并且支持同步更新。

{
  "iisSettings": {                               #選擇以IIS Express啟動  
    "windowsAuthentication": false,              #是否啟用windows身份驗證
    "anonymousAuthentication": true,             #是否啟用匿名身份驗證
    "iisExpress": {
      "applicationUrl": "http://localhost:64767", #IIS Express隨機端口
      "sslPort": 44377
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "webpagetest": {           #選擇本地自宿主啟動,詳見Program.cs文件。刪除該節(jié)點也將導(dǎo)致Visual Studio啟動選項缺失
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000", #本地自宿主端口
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Startup.cs

在之前的ASP.NET CORE 啟動和運行機制中有介紹Program.cs中會初始化Startup類.

Startup.cs文件是ASP.NET Core的啟動入口文件, 除了構(gòu)造函數(shù)外,它可以定義Configure和ConfigureServices方法, 其中ConfigureServices 方法需會在 Configure 之前被調(diào)用。

  • Configure 方法是用來處理我們程序中的中間件操作
  • ConfigureServices 配置我們應(yīng)用程序中的各種服務(wù)

bundleconfig.json

bundleconfig.json是一個壓縮包的集合文件,它可以自動壓縮關(guān)聯(lián)文件用于項目中,如生成 <script> 和 <link>符號.

wwwroot和bower.json

wwwroot是一個存放靜態(tài)內(nèi)容的文件夾,存放了諸如css,js,img等文件。

appsettings

同樣是顧名思義——應(yīng)用配置,類似于.NET Framework上的Web.Config文件,開發(fā)者可以將系統(tǒng)參數(shù)通過鍵值對的方式寫在appsettings文件中(如程序的連接字符串),而Startup類中也在構(gòu)造器中通過如下代碼使得程序能夠識別該文件

Controllers 文件夾

Controllers 文件夾包含負責(zé)處理用戶輸入和響應(yīng)的控制類。

MVC 要求所有控制器文件的名稱以 "Controller" 結(jié)尾。

在我們的實例中,VS 已經(jīng)創(chuàng)建好了以下文件: HomeController.cs(用于 Home 頁面和 About 頁面)和AccountController.

Models 文件夾

Models 文件夾包含表示應(yīng)用程序模型的類。

VS 自動創(chuàng)建一個 ErrorViewModel.cs 文件,該文件包含用于應(yīng)用程序報錯的模型。

Views 文件夾

Views 文件夾存儲的是與應(yīng)用程序顯示(用戶界面)相關(guān)的文件(HTML 文件)。根據(jù)所采用的語言內(nèi)容,這些文件可能擴展名可能是 html、asp、aspx、cshtml 和 vbhtml。

Views 文件夾中包含每個控制器對應(yīng)的一個文件夾。

在 Views 文件夾中,VS 已經(jīng)創(chuàng)建了一個 Home 文件夾、一個 Shared 文件夾。

Home 文件夾用于存儲諸如 home 頁和 about 頁之類的應(yīng)用程序頁面。

Shared 文件夾用于存儲控制器間分享的視圖(母版頁和布局頁)。

  • _Layout.cshtml 是母版頁的意思
  • 通過Razor import 文件模板添加_ViewImports.cshtml (Tag Helper)

Tag Helper 是一個很重要但容易忽略添加原理的地方貼下如下代碼示意

@using webpagetest
@using webpagetest.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

調(diào)用代碼如下所示

 <a class="navbar-brand" asp-area="" asp-controller="Home" asp-action="Index">webpagetest</a>

具備如上知識點,對ASP.NET CORE 創(chuàng)建項目就具備了基礎(chǔ)知識內(nèi)容

博主GitHub地址

https://github.com/yuyue5945

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容