天天看點

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

原文: 學習ASP.NET Core Razor 程式設計系列一

一. 概述

      .NET Core 1.0釋出的時候就想進行學習的,不過根據微軟的以往的釋出規律1.0版可以認為是大衆測試版,2.0才算穩定。現在2.1都已經釋出了預覽版,之前對其"不穩定"的顧慮也打消的差不多了,決定學習一下。

      ASP.NET Core 具有如下優點:

  • 生成 Web UI 和 Web API 的統一場景。
  • 內建新式用戶端架構和開發工作流。
  • 基于環境的雲就緒配置系統。
  • 内置依賴項注入。
  • 輕型的高性能子產品化 HTTP 請求管道。
  • 能夠在 IIS、Nginx、Apache、Docker 上進行托管或在自己的程序中進行自托管。
  • 定目标到 .NET Core 時,可以使用并行應用版本控制。
  • 簡化新式 Web 開發的工具。
  • 相容性,.NET Core 通過 .NET 标準與 .NET Framework、Xamarin 和 Mono 相容。
  • 能夠在 Windows、macOS 和 Linux 進行生成和運作。
  • 開放源代碼和以社群為中心。

       如何跨平台?

       我先上一張圖,然後我們再來看一下官方對.NET CORE 的介紹。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

      .NET Framework本身是個"跨Windows"的平台, 而在這個基礎上, 又支援C#和VB等語言進行 "跨語言", 

      .NET Core 是一個通用開發平台,由 Microsoft 和 GitHub 上的 .NET 社群共同維護。 它是跨平台的,支援 Windows、macOS 和 Linux,并且可用于裝置、雲和嵌入式/IoT 方案。

     .NET Core 包括以下部分:

    .NET 運作時:提供類型系統、程式集加載、垃圾回收器、本機互操作和其他基本服務。

    一組 架構庫:提供基中繼資料類型、應用編寫類型和基本實用程式。

    一組 SDK 工具和語言編譯器:提供基本的開發人員體驗,可用于 .NET Core SDK。

    “dotnet”應用主機,用于啟動 .NET Core 應用。 它選擇運作時并托管運作時,提供程式集加載政策來啟動應用。 同一主機還可用于以大緻相同的方式.NET Core 主要以兩種方式發行,以包方式在 NuGet.org 上發行,以及以獨立方式發行。以包方式在 NuGet.org 上發行, 使應用更加靈活、子產品化的同時提高性能.

       .NET API 和相容性

       可将 .NET Core 看作是 .NET Framework 在 .NET Framework 基類庫 (BCL) 的跨平台版本。 它實施 .NET 标準規範。 .NET Core 提供了一個可用于 .NET Framework 或 Mono/Xamarin 的 API 子集。 在某些情況下,類型未完全實作(某些成員不可用或已移動)。

       與 .NET Standard 的關系

       .NET 标準是一種 API 規範,用于描述開發者可以在每個 .NET 實作代碼中使用的一組一緻 .NET API。 .NET 實作需要實作此規範才能被視為符合 .NET Standard ,并且才能支援面向 .NET Standard 的庫。

        與 .NET Framework 比較

        .NET 由 Microsoft 于 2000 年首次釋出,而後發展至今。 15 年多以來,.NET Framework 一直是 Microsoft 出品的主要 .NET 實作。

       .NET Core 和 .NET Framework 的主要差異在于:

       應用模型 -- .NET Core 不支援所有 .NET Framework 應用模型,某種程式上是因為其中許多模型都是基于 Windows 技術,如 WPF(基于 DirectX 生成)。 但 .NET Core 和 .NET Framework 兩者都支援控制台和 ASP.NET Core 應用模型。

       API -- .NET Core 包含很多與 .NET Framework 相同,但數量較少的 API,并且具有不同的組成要素(程式集名稱不同;關鍵用例中的類型形狀不同)。 目前,這些差異通常都需要更改,以将源移植到 .NET Core。 .NET Core 實作 .NET 标準 API,随着時間的推移,将包含更多 .NET Framework BCL API。

       子系統 -- .NET Core 實作 .NET Framework 中子系統的子級,目的是實作更簡單的實作和程式設計模型。 例如,不支援代碼通路安全性 (CAS),但支援反射。

       平台 -- .NET Framework 支援 Windows 和 Windows Server,而 NET Core 還支援 macOS 和 Linux。

       開放源 -- .NET Core 屬于開放源,而 .NET Framework 的隻讀子集屬于開放源。

      雖然 .NET Core 是唯一的且與 .NET Framework 和其他 .NET 實作大不相同,但使用源或二進制共享技術分享代碼仍很簡單。

二、開始學習第一個ASP.NET Core應用程式

       本教程學習如何建立基于ASP.NET Core Razor頁面的Web應用程式。

       第一,請先安裝以下軟體

  • .NET Core SDK 2.0版本或更高版本
  • Visual Studio 2017版本15.3 或更高版本,并且包含 ASP.NET Web開發功能子產品

      第二,建立一個Razor Web應用程式

  1. 在Visual Studio 2017中選擇菜單-->檔案-->建立-->項目。如下圖。
學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

        2.  在彈出的“建立項目”的對話框中做如下選擇。

  • 在左邊的清單中,選擇 .NET Core ,如下圖中1處
  • 在中間的清單中,選擇 ASP.NET Core Web應用程式,如下圖中2處。
  • 在名稱文本框中輸入“RazorMvcBooks” ,如下圖中3處。
  • 在下圖中4處,點選“确定”按鈕,建立Web應用程式
學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

      3.在彈出的“建立ASP.NET Core Web 應用程式-RazorMvcBooks”的對話框中做如下選擇:

  • 在下圖1處,從下拉框中選擇“Net Core”與“Asp.NET Core 2.0”
  • 在下圖2處,選擇Web應用程式
  • 滑鼠點選确定按鈕,如下圖3處。
學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

         使用ASP.NET Core的.NET架構,你必須首先選擇在第一個下拉框中選擇架構,然後在第二下下拉框中選擇ASP.NET Core的版本。如上圖1處。

          4. Visual Studio  2017使用預設模闆建立了一個ASP.NET  Core MVC Razor頁面項目。我們剛才通過輸入一個項目名稱并選擇了幾個選項,建立了一個Web應用程式。這是一個簡單的入門項目,項目結構如下圖。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

           5.按F5在調撥模式下運作這個應用程式或者按Ctrl+F5在不調試模式下運作這個應用程式。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?
  • Visual Studio 2017 将啟動IIS Express并運作RazorMvcBooks應用程式。注意,位址欄顯示“localhost:端口”而不是域名(如www.cnblogs.com)。這是因為localhost是本地計算機的标準主機名。當Visual Studio 2017建立Web項目時,Web伺服器使用随機端口。在上面的圖檔中,端口号是53416。浏覽器中的URL顯示“http://localhost: 53416/”。你運作應用程式時,可能會看到一個不同的端口号。

          6.如果使用Ctrl + F5(非調試模式)啟用應用程式,在這個模式下允許您進行代碼更改,在儲存檔案之後,重新整理浏覽器,不需要重新啟動應用程式就可以檢視代碼更改之後的結果。許多開發人員喜歡使用非調試模式來快速啟動應用程式并檢視更改。見下圖。圖中1 處是啟動時的在頁面中要顯示的内容。我在程式代碼中進行了修改。如圖2處。在浏覽器中按F5,進行重新整理之後,頁面顯示就如圖3處所示。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

          7. 使用預設模闆建立的RazorMvcBooks項目,有Home,About和Contact三個頁面。根據浏覽器視窗的大小,您可能需要單擊菜單圖示來顯示相關菜單連結。如下圖。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

          8.測試連結。在RazorMVCBooks的頁面可以點選About連結。如下圖。所示。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?

         第三、項目檔案與檔案夾

          下表列出了項目中的檔案和檔案夾。如下圖。在本教程中,将startup.cs檔案了解是最重要。

學習ASP.NET Core Razor 程式設計系列一一. 概述       如何跨平台?
檔案或檔案夾 作用
wwwroot 存放靜态檔案的檔案夾,些檔案包括網站使用的CSS樣式表、圖像和 JavaScript 檔案
Pages 這個檔案夾中主要放是Razor頁面檔案。以 .cshtml 結尾的檔案是 Razor 檔案,以 .cs 結尾的檔案是C#類檔案
appsettings.json 基于 json 格式的檔案,用于應用程式範圍的配置設定
Program.cs ASP.NET Core 應用程式的入口點
Startup.cs 配置服務和請求管道, 用于處理所有對應用程式請求。

             第四、Page檔案夾中的檔案說明

            _layout.cshtml檔案中包含通用的HTML元素(腳本和樣式表)和應用程式的總體布局。例如,當你點選RazorMvcBooks,Home,About的連結時,你會看到同樣的頁眉與頁腳布局。

           _viewstart.cshtml檔案當作_layout.cshtml檔案的布局屬性來使用。

          _viewimports.cshtml包含導入到每個Razor頁面的Razor指令。

           _validationscriptspartial.cshtml檔案提供對jQuery驗證腳本的引用。當我們添加建立和編輯網頁時,_validationscriptspartial.cshtml檔案将被使用。

           About.cshtml、Contact.cshtml和Index.cshtml是用來啟動應用程式的基本頁面。

           Error.cshtml用于顯示錯誤資訊。

繼續閱讀