課程 20486-D: Developing ASP.NET Core MVC Web Applications

在為期 5 天的課程中,專業的 Web 開發人員將學習使用 .NET Core 工具和技術開發高級 ASP.NET Core MVC 應用程式。重點將放在增強網站應用程式性能和伸縮性的編碼活動上。本課程還將對學生備考測驗 70-486。

對象設定檔

本課程適用於在個人或團隊、小型到大型開發環境中使用 Microsoft Visual Studio 的專業 Web 開發人員。本課程的考生對開發高級 Web 應用程式感興趣,並希望全面管理呈現的 HTML。他們希望建立將用戶介面、資料存取和應用程式邏輯分開的網站。

職務角色: 開發人員

獲得的技能

  • 描述 Microsoft Web Technologies 堆棧,並選擇適當的技術來開發任何給定的應用程式。
  • 設計 Web 應用程式的體系結構和實作方式,應用程式將滿足一組功能要求、用戶介面要求並解決業務模型。
  • 使用中間件設定 ASP.NET Core Web 應用程式的管道,並在 MVC 應用程式中利用依賴注入模式。

必要條件

在參加本課程之前,學生必須具備:

  • 使用 Visual Studio 2017 的經驗。
  • 使用 C# 編程以及 Lambda 表達式,LINQ 和匿名類型等概念的經驗。
  • 使用 .NET Framework 的經驗。
  • 使用 HTML、CSS 和 JavaScript 的經驗。
  • 使用 ADO.NET 查詢和處理資料的經驗。
  • XML 和 JSON 資料結構的知識。

課程大綱

模組 1: 探索 ASP.NET Core MVC

Microsoft ASP.NET Core MVC 和 ASP.NET Core 的其他 Web 技術可以幫助您建立和託管動態的功能強大且可擴展的 Web 應用程式。ASP.NET Core 有一部分是 ASP.NET Core MVC,是一個開放源代碼、跨平台的框架,使您可以構建 Web 應用程式。您可以在 Windows、macOS、Linux 或任何其他支援它的平台上開發和運行 ASP.NET Core Web 應用程式。

ASP.NET Core MVC 支援測試驅動的敏捷開發週期。它還允許您使用最新的 HTML 標準和前端框架,例如 Angular,React 等等。

課程

  • Microsoft Web 技術概述
  • ASP.NET 4.x 概述
  • ASP.NET Core MVC 導論

實驗室: 探索 ASP.NET Core MVC

  • 探索 Razor Pages 應用程式
  • 探索 Web API 應用程式
  • 探索 MVC 應用程式

完成本課程後,學生將能夠:

  • 了解 Microsoft Web 堆棧中可用的各種技術。
  • 描述 ASP.NET 中可供開發人員使用的不同編程模型。
  • 在 ASP.NET Core 和 ASP.NET 4.x 之間進行選擇。
  • 描述 ASP.NET Core MVC 在 Web 技術堆棧中的作用,以及如何使用 ASP.NET Core MVC 構建 Web 應用程式。
  • 區分 MVC 模型、MVC 控制程式和 MVC 視圖。

模組 2: 設計 ASP.NET Core MVC Web 應用程式

Microsoft ASP.NET Core MVC 是一種編程模型,可用於建立功能強大且複雜的 Web 應用程式。但是,要完全理解所有復雜的開發項目,尤其是大型項目,可能會充滿挑戰並且十分複雜。如果不完全了解項目的目的,就無法為客戶的問題開發有效的解決方案。您需要知道如何識別一組業務需求,併規劃 Model-View-Controller(MVC)Web 應用程式以滿足這些需求。您建立的項目規劃可確保利益相關者相信你了解了他們的要求,並向開發人員傳達了 Web 應用程式的功能、其用戶介面、結構和資料存儲。透過撰寫詳細而準確的項目規劃,您可以確保有效利用 MVC 的強大功能來解決客戶的業務問題。

課程

  • 在項目設計階段進行規劃
  • 設計模型、控制程式和視圖

實驗室: 設計 ASP.NET Core MVC Web 應用程式

  • 規劃模型類
  • 規劃控制程式
  • 規劃視圖
  • 建立 MVC Web 應用程式體系結構

完成本模組後,學生將能夠:

  • 規劃 ASP.NET Core MVC Web 應用程式的整體體系結構,並考慮諸如狀態管理之類的各個方面。
  • 規劃實作一組給定功能需求所需的模型、控制程式和視圖。

模組 3: 在 ASP.NET Core 中設定中間件和服務

ASP.NET Core 是一個框架,允許我們構建許多不同類型的應用程式。在本模組中,您將學習如何利用 ASP.NET Core 框架透過現有的和自定義的中間件來處理請求和響應,以及如何設定服務以在中間件和應用程式的其他部分(例如控制程式)中使用。 中間件是一段代碼,可以用作請求和響應管道的一部分,使我們可以根據任何相關參數來處理它們。這可能允許以完全不同的方式處理多個單獨的請求,並接收單獨的響應。

服務是公開功能的類,您以後可以在應用程式的不同部分中使用這些功能,而不必手動跟踪每個單獨位置的作用域並實例化任何依賴項。這是透過使用依賴注入模式來完成的。

依賴注入模式是 ASP.NET Core 使用的一種技術,它使我們可以向代碼中添加依賴項,而不必擔心實例化對象、將它們保留在內存中或傳遞所需的依賴項。這使應用程式變得更靈活,並在每次更改服務時減少潛在的故障點。

課程

  • 設定中間件
  • 設定服務

實驗室: 在 ASP.NET Core 中設定中間件和服務

  • 使用靜態檔案
  • 建立自定義中間件
  • 使用依賴注入
  • 向控制程式注入服務

完成本模組後,學生將能夠:

  • 使用現有的中間件來設置 ASP.NET Core 應用程式。
  • 建立自己的中間件,並使用它來定義自定義行為。
  • 了解依賴注入的基本原理,以及如何在 ASP.NET Core 中使用它。
  • 知道如何建立自定義服務,設定其範圍並將其註入到中間件和 ASP.NET Core MVC 控制程式中。

模組 4: 開發控制程式

ASP.NET Core MVC 是用於透過使用模型視圖控制程式(MVC)架構模式來構建 Web 應用程式的框架。控制程式本質上負責透過與模型進行交互,然後將結果傳遞給視圖來處理 Web 請求。該模型表示業務層,有時稱為域,並且可以包括資料對象、應用程式邏輯和業務規則。該視圖使用從控制程式接收的資料來生成 HTML 或其他輸出,並將其發送回瀏覽器。

在本模組中,您將學習如何開發控制程式。控制程式是 MVC 應用程式的核心。了解控制程式的工作方式對於能夠建立適當的模型對象,對其進行操作並將它們傳遞給適當的視圖至關重要。

控制程式是一個類。它包含幾種方法。這些方法稱為操作。當 MVC 應用程式接收到請求時,它將查找應處理該請求的控制程式和操作。它透過使用統一資源定位器(URL)路由確定這一點。

URL 路由是開發 MVC 應用程式所必需的另一個非常重要的概念。ASP.NET Core MVC 框架包括一個靈活的 URL 路由系統,使您可以在應用程式中定義 URL 映射規則。

為了最大限度地重複使用控制程式中的代碼,重要的是要知道如何撰寫操作過濾程式。您可以在 Web 應用程式中的每個操作運行之前或之後,在控制程式中的每個操作或控制程式操作的其他組合上使用操作過濾程式運行代碼。

課程

  • 撰寫控制程式和操作
  • 設定路由
  • 撰寫操作過濾程式

實驗室: 開發控制程式

  • 向 MVC 應用程式添加控制程式和操作
  • 使用路由表設定路由
  • 使用屬性設定路由
  • 添加操作檔案管理器

完成本模組後,學生將能夠:

  • 將控制程式添加到 Web 應用程式中,以響應項目設計中指定的用戶操作。
  • 將路由添加到 ASP.NET Core 路由引擎,並確保 URL 在 MVC Web 應用程式中便於使用。
  • 在操作過濾程式中撰寫代碼,該過濾程式在控制程式操作之前或之後運行。

模組 5: 開發視圖

視圖是模型-視圖-控制程式(MVC)編程模型的三個主要組成部分之一。您可以透過建立視圖來定義 Web 應用程式的用戶介面。視圖是 HTML 標記和在 Web 伺服器上運行的 C# 代碼的組合。因此,要建立視圖,您需要知道如何撰寫 HTML 標記和 C# 代碼並使用 MVC 內置的各種幫助程式類。您還需要知道如何建立局部視圖和視圖元件,以呈現 HTML 的各個部分,這些部分可以在您的 Web 應用程式中重複使用。

課程

  • 使用 Razor 語法建立視圖
  • 使用 HTML 幫助程式和標籤幫助程式
  • 在視圖中重複使用代碼

實驗室: 開發視圖

  • 將視圖添加到 MVC 應用程式
  • 添加局部視圖
  • 添加視圖元件

完成本模組後,學生將能夠:

  • 建立一個 MVC 視圖並向其添加 Razor 標記以向用戶顯示資料。
  • 在視圖中使用 HTML 幫助程式和標籤幫助程式。在整個應用程式的多個位置重複使用 Razor 標記。

模組 6: 開發模型

大多數 Web 應用程式與各種類型的資料或對象進行交互。例如,電子商務應用程式管理產品、購物車、客戶和訂單。社交網路應用程式可能有助於管理用戶、狀態更新、評論、照片和視頻。博客用於管理博客條目、評論、類別和標籤。當您撰寫模型視圖控制器(MVC)Web 應用程式時,您將建立一個 MVC 模型來為 Web 應用程式的資料建模。在此模型中,為每種類型的對象建立一個模型類。模型類描述每種類型的對像的屬性,並且可以包括與業務流程匹配的業務邏輯。因此,該模型是 MVC 應用程式中的基本構建塊。在本模組中,您將學習如何為模型建立代碼。

課程

  • 建立 MVC 模型
  • 使用表格
  • 驗證 MVC 應用程式

實驗室: 開發模型

  • 添加模型
  • 使用表格
  • 添加驗證

完成本模組後,學生將能夠:

  • 將模型添加到 MVC 應用程式並在其中撰寫代碼以實作業務邏輯。
  • 使用顯示和編輯資料註釋。
  • 驗證帶有資料註釋的用戶輸入。

模組 7: 在 ASP.NET Core 中使用 Entity Framework Core

Web 應用程式經常使用訊息,並且通常需要該訊息的資料存儲區。透過呈現使用資料存儲區中的資料的網頁,您可以建立一個 Web 應用程式,該應用程式會隨著用戶輸入、管理操作和發布事件而不斷變化。資料存儲區通常是一個資料庫,但是偶爾會使用其他類型的資料存儲區。在模型-視圖-控制程式(MVC)應用程式中,您可以建立一個實作資料存取邏輯和業務邏輯的模型。或者,您可以使用存儲庫將業務邏輯與資料存取邏輯分開。存儲庫是控制程式可以調用以從資料存儲區讀取資料並將資料寫入資料存儲區的類。在撰寫 ASP.NET 應用程式時,可以使用 Entity Framework Core(EF Core)和 Language Integrated Query(LINQ)技術,這些技術使資料存取代碼的撰寫和理解變得非常快捷簡單。在本模組中,您將看到如何在 MVC 中構建資料庫驅動的網站。

課程

  • Entity Framework Core 導論
  • 使用 Entity Framework Core
  • 使用 Entity Framework Core 連接到 Microsoft SQL Server

實驗室: 在 ASP.NET Core 中使用 Entity Framework Core

  • 添加 Entity Framework Core
  • 使用 Entity Framework Core 檢索和存儲資料
  • 使用 Entity Framework Core 連接到 Microsoft SQL Server

完成本模組後,學生將能夠:

  • 將應用程式連接到資料庫以存取和存儲資料。
  • 說明 Entity Framework Core。
  • 使用 Entity Framework Core。
  • 使用 Entity Framework Core 連接到包括 Microsoft SQL Server 的資料庫。

模組 8: 在 ASP.NET Core MVC 中使用 Layouts、CSS 和 JavaScript

在構建 Web 應用程式時,應為應用程式應用一致的外觀。您應該在所有視圖中包括一致的頁眉和頁腳部分。Microsoft ASP.NET Core MVC 包括諸如級聯樣式表(CSS)樣式和佈局之類的功能,這些功能可以增強 Web 應用程式的外觀和可用性。 在 ASP.NET Core MVC 中,可以使用 JavaScript 建立交互式 HTML 元素。您需要知道如何在 Web 應用程式中使用 JavaScript。為了簡化向 Web 應用程式中添加 JavaScript 的工作,您需要知道如何使用 jQuery 之類的庫。

課程

  • 使用 Layouts
  • 使用 CSS 和 JavaScript
  • 使用 jQuery

實驗室: 在 ASP.NET Core中使用 Layouts、CSS 和 JavaScript

  • 應用佈局並鏈接視圖
  • 使用 CSS
  • 使用 JavaScript
  • 使用 jQuery

完成本模組後,學生將能夠:

  • 將一致的佈局應用於 ASP.NET Core MVC 應用程式。
  • 將 JavaScript 代碼添加到 Web 應用程式。
  • 在 Web 應用程式中使用 jQuery 庫。

模組 9: 客戶端開發

建立應用程式時,重要的是要知道如何開發應用程式的客戶端和伺服器端。在本模組中,您將學習客戶端工具,這些工具將使您能夠建立各種規模的廣泛的 Web 應用程式。這些工具基於模組 8 “在 ASP.NET Core MVC 中使用 Layouts、CSS 和 JavaScript” 中涵蓋的主題。

在本模組中,您將學習如何使用 Bootstrap 框架來設置 Web 應用程式的樣式。然後,您將學習如何使用 Sass 和 Less,這是兩個常見的級聯樣式表(CSS)預處理程式,它們向 CSS 添加了功能,例如變量,嵌套規則和函數。這些極大地提高了複雜 Web 應用程式的可維護性。

接下來,您將學習如何在 Microsoft Visual Studio 構建過程中設置任務運行程式,例如 Grunt 和 Gulp,以及如何使用它們來編譯 Sass 檔案。您將學習如何使用 Gulp 任務運行程式執行 CSS 和 JavaScript 檔案的捆綁和最小化操作,以及如何在撰寫代碼時設置觀察程式任務來編譯 Sass 檔案,而無需重建解決方案。

最後,您將學習響應式設計工具,該工具可讓您根據 Web 瀏覽器或設備的功能和規格來自定義 Web 應用程式的顯示。您將學習撰寫 CSS 媒體查詢,如何使用 Bootstrap 響應式網格系統以及如何將 CSS flexbox 佈局應用於視圖。

課程

  • 應用樣式
  • 使用任務運行程式
  • 響應式設計

實驗室: 客戶端開發

  • 使用 Gulp 運行任務
  • 使用 Sass 進行樣式設置
  • 使用 Bootstrap

完成本模組後,學生將能夠:

  • 在 Microsoft ASP.NET Core 應用程式中使用 Bootstrap、Sass 和 Less。
  • 在 ASP.NET Core 應用程式中使用任務運行程式。
  • 確保 Web 應用程式在具有不同屏幕尺寸的設備上正確顯示。

模組 10: 測試和疑難排解

諸如 Web 應用程式之類的軟體系統非常複雜,並且需要多個元件(通常由不同的開發人員撰寫)才能協同工作。錯誤的假設,不正確的理解,編碼錯誤以及許多其他來源都可能導致導致異常或意外行為的錯誤。為了提高 Web 應用程式的質量並建立令人滿意的用戶體驗,您必須從任何來源識別錯誤並加以消除。

傳統上,測試人員在開發項目結束時執行大多數測試。但是,最近在整個項目生命週期中進行測試可以提高質量並確保生產軟體中沒有錯誤,這已被廣泛接受。您需要了解如何在 Web 應用程式的小型元件上運行測試,以確保它們能夠按預期運行,然後再將它們組合成一個完整的 Web 應用程式。

知道異常發生時如何處理也很重要。在應用程式運行時,您可能會遇到意外情況。重要的是,正確管理異常並提供良好的用戶反饋,同時避免洩漏有關應用程式結構的訊息。

最後,透過在整個應用程式中使用日誌,您可以監視可能導致意外問題的用戶活動,然後可以透過跟蹤生產環境中發生的流程並查找額外的錯誤來尋找錯誤的解決方案,通常您無法確定這些錯誤是如何重現的。

課程

  • 測試 MVC 應用程式
  • 實作異常處理策略
  • 記錄 MVC 應用程式

實驗室: 測試和疑難排解

  • 測試模型
  • 使用假存儲庫測試控制程式
  • 在 MVC 項目中實作存儲庫
  • 添加異常處理
  • 添加日誌

完成本課程後,學生將能夠:

  • 針對模型-視圖-控制程式(MVC)元件(例如模型類和控制程式)運行單元測試,並查找潛在的錯誤。
  • 構建一個 Microsoft ASP.NET Core MVC 應用程式,使該應用程式可以平穩、可靠地處理異常。
  • 運行使應用程式受益的日誌記錄提供程式,並使用通用的日誌記錄 API 運行它們。

模組 11: 管理安全性

由於 Web 應用程式通常針對僅使用瀏覽器來使用該應用程式的用戶,因此與已安裝的應用程式相比,可能會有更多的用戶。但是,Web 應用程式的開放性意味著在構建 Web 應用程式時,必須始終將安全性放在首位。作為安全性的一部分,您必須決定哪些用戶可以執行哪些操作,同時保護用戶和您的應用程式免受可能存取應用程式的惡意第三方的侵害。

身份驗證是利用幾個參數來確保用戶是他們聲稱的身份的行為。透過實作身份驗證,您可以確定用戶的身份,並在使用應用程式時為他們提供適當的內容。

授權是可以授予應用程式中已透過身份驗證的用戶存取特定操作或資源的過程。透過使用授權,您可以防止用戶存取他們不想要的敏感材料或執行他們不應該執行的操作。

最後,在生命週期的某個時刻,您的應用程式可能會受到惡意用戶的攻擊。這些手段和意圖可能會有所不同,但不設防禦的代價可能會很大。您可能會失去受影響的潛在用戶,有價值的資料可能會被錯誤地更改,並且在最壞的情況下,整個應用程式可能變得無法使用。本模組將回顧一些最流行的攻擊的解決方案。

課程

  • ASP.NET Core 中的身份驗證
  • ASP.NET Core 中的授權
  • 抵禦攻擊

實驗室: 管理安全性

  • 使用身份
  • 添加授權
  • 避免跨站請求偽造攻擊

完成本模組後,學生將能夠:

  • 向您的應用程式添加基本身份驗證。
  • 設定 Microsoft ASP.NET Core 身份。
  • 向您的應用程式添加基本授權。
  • 使用幾種不同的授權方法。
  • 了解安全漏洞的工作原理以及如何更好地防禦安全漏洞。

模組 12: 性能和通信

現代 Web 應用程式需要與用戶進行複雜的交互。用戶通常會在很短的時間內請求大量資料,同時還希望相關資料盡快出現。這很容易在未準備好的伺服器上造成大量負載,從而導致不必要的複雜或重複操作,並給伺服器帶來沉重的負擔。幸運的是,有多種減少負載的方法。 緩存使您可以存儲通常重複的請求,從而避免了重複執行相同邏輯的需要。透過使用緩存,您可以重複使用已經加載的資料並將其呈現給用戶。這為用戶提供了快速的響應時間,並減少了執行操作邏輯所使用的系統資源。

狀態同時允許實作不同請求之間的一致性狀態。透過利用各種形式的狀態管理,您可以將通常無狀態的 Web 體驗轉變為針對各個客戶定制的體驗,而不同的用戶在同一應用程式中可享受單獨且相關的體驗。

最後,SignalR 是一個框架,該框架允許將幾種不同的通信協議抽象為易於使用的 API,從而使您可以在伺服器和客戶端上輕鬆建立一套工具,以促進雙向通信。這使您可以專注於希望實作的邏輯,而不必迎合特定的瀏覽器。

課程

  • 實作緩存策略
  • 管理狀態
  • 雙向通信

實驗室: 性能和通信

  • 實作緩存策略
  • 管理狀態
  • 雙向通信

完成本模組後,學生將能夠:

  • 在 Microsoft ASP.NET Core 應用程式中實作緩存。
  • 使用狀態管理技術,透過為用戶提供一致的體驗來改善客戶體驗。
  • 透過使用 SignalR 實作雙向通信,允許伺服器在發生重要事件時通知客戶端。

模組 13: 實作 Web API

大多數 Web 應用程式都需要與外部系統(例如移動應用程式)集成。您需要知道如何使用 Web API 來促進應用程式與外部系統的交互。您可以使用 Web API 在應用程式中實作代表性狀態移轉(REST)服務。REST 服務有助於減少應用程式經常性開銷並限制在客戶端和伺服器系統之間傳輸的資料。您需要知道如何透過使用伺服器端代碼和 jQuery 代碼來調用 Web API,以在應用程式中有效地實作 REST 風格的 Web API。

課程

  • 引入 Web API
  • 開發 Web API
  • 調用 Web API

實驗室: 實作 Web API

  • 使用 Microsoft Edge 添加並調用操作
  • 使用伺服器端代碼調用 Web API
  • 使用 jQuery 調用 Web API

完成本模組後,學生將能夠:

  • 使用 ASP.NET Core Web API 建立服務。
  • 從伺服器端代碼和 jQuery 調用 Web API。

模組 14: 託管和部署

ASP.NET Core MVC 應用程式旨在向多個用戶同時提供服務,而只需要安裝伺服器,並且客戶端使用瀏覽器來存取它。這導致了要建立出非常理想的應用程式,這些應用程式不依賴於用戶安裝專用軟體,並能確保各種機器上的客戶端都可以存取這些應用程式。 為了設置生產環境的 ASP.NET Core 應用程式,您將需要編譯代碼並對其進行壓縮,然後對其設置並在專用伺服器上運行。

託管涉及使用專用伺服器來包含已編譯的應用程式,並將其作為基於 Web 的服務提供給用戶。有很多不同的技術可以用來託管您的應用程式,您應該選擇一種適合您要求的技術。

部署是一個過程,在該過程中,將項目代碼進行編譯,然後以一種能在託管環境要求範圍內正常運作的方式將其傳輸到託管伺服器。 Microsoft Azure 是 Microsoft 提供的一種雲服務。它可以用於託管 ASP.NET Core 應用程式,並且是一個雲技術市場中非常流行的工具。它可以根據要求在多個計費選項中提供便捷的 Web 應用程式相關服務。

課程

  • 本地託管和部署
  • 部署到 Microsoft Azure
  • Microsoft Azure 基礎知識

實驗室: 託管和部署

  • 將 Web 應用程式部署到 Microsoft Azure
  • 將圖像上傳到 Azure Blob 存儲

完成本模組後,學生將能夠:

  • 在 IIS 上託管和部署 ASP.NET Core MVC 應用程式。
  • 在 Microsoft Azure 上託管和部署 ASP.NET Core MVC 應用程式。
  • 能夠利用 Microsoft Azure 提供的服務來改善 Web 應用程式的功能。