ASP.NET Core 8 開發實戰-學員課前注意事項

ASP.NET Core 8 開發實戰:從入門到進階

課程簡介

你還在猶豫要不要擁抱 .NET 嗎?這幾年 .NET 的高速發展,已經從 .NET 生態圈的明日之星,進展到愛不釋手的耀眼巨星。無論是開放原始碼、蓬勃的社群發展、極高的執行效能、真正的跨平台支援、完整的 Cloud Native 微服務架構、完整的文件與開發工具,再再證明選用 .NET 絕對是一條必然的道路。

本課程將從最基礎的 .NET 架構談起,讓你了解全新的 .NET / .NET Core 架構與 .NET Framework 有何不同之處,也會帶你瞭解如何將現有的 .NET Framework 程式升級至全新的 .NET 平台。

如何有效率的開發 ASP.NET Core 8 應用程式,也是本課的重點之一,我會從核心架構談起,搭配 AI 輔助,幫助學員不但能夠真正從底層瞭解 ASP.NET Core 開發框架,更能夠帶著正確的觀念下達準確的「提示」,讓你可以更順利的完成各種需要 ASP.NET Core 幫你完整的任務,本課程將會循序漸進的瞭解 MVC、Web API、Entity Framework Core、SignalR、Identity 等框架介紹,鉅細靡遺的帶領大家從入門到進階,學到真正扎實的開發能力,並能立即運用在日常的開發工作上。

課程特色

  • 本課程包含大量實作練習,確保學員能深刻理解技術細節
  • 本課程包含每周練習作業,做中學才是理解一門新技術的不二法門
  • 本課程包含許多業界實戰經驗分享,從開發到維運一條龍的學習脈絡
  • 本課程包含許多開發工具應用技巧,幫助開發人員大幅提升開發效率
  • 本課程會示範如何正確的使用 GitHub Copilot 輔助開發
  • Will 保哥全程線上授課,無地域限制,可即時回應學員任何疑惑
  • 學員可透過多種管道提問:FB 社團、Zoom 聊天室、Zoom 共享桌面
  • 學員可透過共享螢幕的方式提問與遠端控制,學員可觀摩解決問題的過程
  • 課程全程錄影,學員課後 3 個月內可免費無限次重播!

報名連結

給學員的話

各位同學大家好:

這堂課程是專為 ASP.NET Core 8.0 的開發人員所設計的,上課過程中會使用到 Visual Studio 2022Visual Studio Code 開發工具,可能會有某些範例程式我會用 LINQPad 來快速示範,而在練習 ASP.NET Core Web API 的時候,會以 Postman 來練習 API 呼叫,這幾套軟體都需要大家在課前先熟悉一下。

由於 ASP.NET Core 是一個很大的框架,我們五天的課程不可能涵蓋所有的內容,所以我會特別著重在幾個重點:

  1. 認識 ASP.NET Core 底層架構,講解程式碼背後的重要觀念

    上課的過程中,有任何疑惑都可以提出討論,方便學員更好的理解一些抽象概念。

  2. 分享官方文件的查閱技巧,教會大家如何查找最權威、最正確的資料

    學習如何學習,才是現今這個世代最重要的技能。

  3. 透過每周練習作業,強化學習成效

    我們連續五週的週六上課,週日給大家寫作業,請務必花時間練習上課所學。

  4. 善用開發工具降低開發與學習門檻

    課堂上會分享許多開發技巧,請大家可以多做筆記,有些小技巧覺得不錯就記下來。

  5. 如何透過 GitHub Copilot (AI) 輔助我們開發與理解程式

    建議學員訂購 GitHub Copilot 服務,一個月的費用僅 $10 美金,非常值得投資。

實作環境說明

為了能讓大家能在課堂上順利地進行實作,請大家務必在上課前把需要的軟體全部安裝好,以下是安裝的相關軟體與安裝步驟與說明,請詳細閱讀並提前準備,有任何疑問都歡迎隨時到學員專屬 Facebook 社團提問,提問時請多利用畫面截圖錄影來說明狀況,必要時可以透過 Gist 提供程式碼,有畫面與程式碼通常比較好幫助釐清問題。

[ 作業系統 ]

根據官方的 Install .NET on Windows 文件說明,目前 .NET 8 支援的 Windows 作業系統版本主要有:

  • Windows 10, Version 1607 or later
  • Windows 11
  • Windows Server, Version 1903 or later
  • Windows Server 2022
  • Windows Server 2019
  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows Server Core 2012 R2
  • Windows Server Core 2012
  • Nano Server, Version 1809+

我知道有些同學「希望」用 Mac 或 Linux 來開發 ASP.NET Core,這基本上沒有什麼問題,但是有鑑於「大部分同學」都比較熟悉 Visual Studio 2022 開發工具,而且確實在 Visual Studio 2022 有些無可取代的好用功能,可以大幅降低學習門檻。因此,我還是建議使用 Mac 的同學可以準備 Windows 虛擬機,並安裝 Visual Studio 2022 來使用。

不過,如果你「真的」只想用 Mac 搭配 Visual Studio Code 來開發 ASP.NET Core 也是可以的,我會分享許多不靠 Visual Studio 2022 也能開發專案的技巧,如果有需求,隨時都可以在 FB 社團許願,我會盡可能達成大家的願望。😊

根據官方的 Install .NET on macOS 文件說明,目前 .NET 8 支援的 macOS 作業系統版本主要有:

  • macOS 14.0 “Sonoma”
  • macOS 13.0 “Ventura”
  • macOS 12.0 “Monterey”

[ 瀏覽器 ]

使用 Google ChromeMicrosoft Edge 瀏覽器都可以,請更新到最新版本。

[ 開發工具 ]

  • Visual Studio 2022 (注意: Visual Studio 2019 不支援 .NET 8.0 開發)

    請安裝以下工作負載:

    • ASP.NET 與網頁程式開發 (ASP.NET and web development)
    • .NET 桌面開發 (.NET Desktop Development)
  • .NET 8.0 SDK

    基本上不用特別安裝,因為安裝 VS2022 就會自動安裝 .NET SDK 到最新版!

    若是用 macOS 的學員,就需要額外安裝 .NET SDK。

  • Visual Studio Code

    請安裝完 VS Code 最新版後,接著安裝 .NET Core Extension Pack 擴充套件。

  • SQL Server Management Studio (SSMS)

    上課會用到 SQL Server 資料庫,安裝 SSMS 18.7 以上版本。

    目前的最新版本為 20.1,建議安裝最新版本。

[ 測試工具 ]

  • Postman

    在講解 ASP.NET Core Web API 的時候,我們會使用 Postman 這個工具來測試 Web API 的端點。

[ 資料庫系統 ]

課程中會提供 Microsoft SQL Server範例資料庫,請依照自己的作業系統安裝相對應的資料庫系統版本。

你可以選擇安裝 SQL Server 2019 以上版本,無論是 LocalDBExpressDeveloper 版本都可以。

若要將資料庫跑在 Docker 容器中,建議參考我的 使用 Docker 執行 SQL Server on Linux 容器之常用工具與命令 文章。

注意: 要在 Apple Mac M1 成功啟動 SQL Server 2019 Linux 容器,請參考 [Docker 筆記]如何在Apple Mac M1 上建立mssql server 的 docker container 並成功 attach .mdf 檔案 文章。

以下是啟動 SQL Server Linux 容器的命令參考:

# 下載 SQL Server 2019 Linux 容器映像
docker pull mcr.microsoft.com/mssql/server:2019-latest

# 啟動 SQL Server 2019 Linux 容器
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Ver7CompleXPW" -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2019-latest

# 查看 SQL Server 2019 Linux 容器啟動記錄是否有異常
# 看到 SQL Server is now ready for client connections. 訊息就代表沒問題!
docker logs sql1

# 進入容器環境
docker exec -it sql1 "bash"

# 進入 sqlcmd 命令列環境
docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd -U SA -P Ver7CompleXPW -W

你可以透過 SSMSAzure Data Studio 連入 localhost:1433 來管理 SQL Server 2019 Linux 容器中的 SQL Server 資料庫。

[ 部署環境 ]

  • Windows 10 部署環境

    • 請以系統管理員身份執行用 Windows PowerShell 執行以下命令以安裝 IIS 角色服務

        Get-WindowsOptionalFeature -Online
        Enable-WindowsOptionalFeature -Online -FeatureName IIS-WebServerRole,IIS-HttpCompressionDynamic,IIS-ApplicationInit
      
    • 請在安裝完 IIS 之後,下載 .NET 8.0 SDK 頁面中最新版 ASP․NET Core Runtime 的 Hosting Bundle 安裝檔。

      請注意:你一定要先安裝 IIS 之後才能執行 Hosting Bundle 安裝程式。

  • Windows Server 部署環境 (2016/2019)

    • 請以系統管理員身份執行用 Windows PowerShell 執行以下命令以安裝 IIS 角色服務

        Get-WindowsFeature | Format-Table -Wrap
        Install-WindowsFeature Web-WebServer,Web-Dyn-Compression,Web-AppInit
      
    • 請在安裝完 IIS 之後,下載 .NET 8.0 SDK 頁面中最新版 ASP․NET Core Runtime 的 Hosting Bundle 安裝檔。

      請注意:你一定要在安裝 IIS 之後才能執行 Hosting Bundle 安裝程序。

  • Linux 部署環境

  • Docker 部署環境

    • 如果你的作業系統是 Windows 10 Build 16299 以後的版本,請安裝 Docker Desktop on Windows

      Requires Microsoft Windows 10 Professional or Enterprise 64-bit, or Windows 10 Home 64-bit with WSL 2

[ 常用工具與擴充套件 ]

[ 驗證安裝 ]

  • 確認 .NET SDK 版本

      dotnet --version
    

    請確認為 8.0.204 版本!

  • 確認可以建立 MVC 專案範本並可透過瀏覽器開啟網站

      mkdir m1 && cd m1
      dotnet new mvc
      dotnet run --no-launch-profile
    

    用瀏覽器開啟 http://localhost:5000 網址,能看到網頁就是可以正常執行 ASP.NET Core 應用程式。

  • 確認 dotnet-ef 版本資訊:

      dotnet ef --version
    

    你會得到以下結果:

      Entity Framework Core .NET Command-line Tools
      8.0.4
    
  • 確認 Visual Studio Code 版本

      code --version
    

    請確認至少為 1.88.1 以上版本!

    請確認 C# 擴充套件 已確實安裝。

    參考文件:C# 與 Visual Studio Code 使用者入門

  • 確認 Visual Studio 2022 版本 (Windows Only)

    建議直接升級到 Visual Studio 2022 目前最新版本 (v17.9.6),你可以到這裡下載最新版。

  • 務必確認你的 Windows 10 輸入法設定 🔥🔥🔥

    請參考 開發者必學的多語言輸入法設定技巧:使用 Windows PowerShell 快速建立 文章進行設定。

    在 Visual Studio Code 裡面有許多好用的快速鍵,當你使用 Windows 10 預設的輸入法設定,就會完全按不出這些快速鍵,例如:

    • Ctrl + Space

      在各種開發工具中,這個快速鍵通常用來觸發 IntelliSense 輸入建議。

      但是當系統切換到 中文 語言時,主要用來啟用/停用中文輸入法。

    • Ctrl + ,

      在許多應用程式的快速鍵中,這個快速鍵通常用來開啟 設定 視窗。

      但是當系統切換到 中文 語言時,無論你切換到中文或英文模式,都會輸出「全形逗點」。

    • Ctrl + .

      在各種開發工具中,這個快速鍵通常用來觸發 Code Actions 或 Quick Fixes 等程式碼重構建議。

      但是當系統切換到 中文 語言時,無論你切換到中文或英文模式,都會輸出「全形句點」。

上課前注意事項

由於我們上課時會採用 Zoom 軟體進行授課,因此請學員在上課前先安裝好 Zoom 軟體的最新版,並且測試好麥克風喇叭是否可以正常運作,以免上課時無法順利聽到課程內容。

以下幾點請在上課前確認完畢:

  1. 檢查 Zoom 是否為最新版本

    我這邊目前最新的 Zoom 版本為 6.0.4 (38135)

    Zoom 版本

  2. 檢查 Zoom 麥克風與喇叭是否正常運作

    你可以透過 Zoom 的測試功能來檢查麥克風與喇叭是否正常運作,如果你的麥克風與喇叭都正常運作,你會看到以下畫面:

    Zoom 麥克風與喇叭測試

上課時的注意事項

  1. 你可以在課程開始前 30 分鐘進入 Zoom 會議室,以下是進入會議室的步驟

    開啟 Zoom 軟體,點擊「加入會議」

    開啟 Zoom 軟體,點擊「加入會議」

    輸入我們課前通知的「會議號碼」與「顯示名稱」

    輸入我們課前通知的「會議號碼」與「顯示名稱」

    輸入會議密碼

    輸入會議密碼

    測試喇叭和麥克風

    測試喇叭和麥克風

    請務必測試一下麥克風與喇叭是否正常運作,以免上課時無法順利聽到課程內容。

    請務必測試一下麥克風與喇叭是否正常運作,以免上課時無法順利聽到課程內容。

    進入會議室之後,如果聽的到聲音,就按下「回應」的 ✅ 按鈕。

  2. 多利用「回應」功能給予課程回饋

    過往有許多同學都找不到 Zoom 的「回應」功能,我特別截圖跟大家說明怎樣操作。

    Zoom Reactions

    基本上在 Zoom 最下方的工具列上,會有個「回應」的按鈕,按下去之後會有三排的表情符號可以按:

    第一排:這些表情符號按下之後可以表達你在課堂上的心情,而且 10 秒之後就會自動消失。這些表情非常重要,因為這可以讓講師知道你當下的心情,感覺開心的時候可以選 😂 (大笑),聽到很厲害的內容時可以按下 👍 (讚)、❤ (愛心)、👏 (拍手)、🎉 (獻花) 等表情,這可以讓課程變的相當活絡有趣!

    第二排:這些符號按下去之後就不會自動消失,主要用來回應講師的提問,方便大家回答問題。例如講師問「大家都聽的到我的聲音嗎?」,你可以按下 ✅ (打勾) 來回答「聽的到」,或是按下 ❌ (叉叉) 來回答「聽不到」,這樣講師就可以知道你的聲音是否正常。

    第三排:只有一顆「舉手」的按鈕,按下去代表你想要開麥克風發言,講師會看到你的舉手,然後依序讓你發言。先按「舉手」的人會排在最上面,講師會更容易看到你的舉手狀態。

  3. 利用【聊天室】來向講師或學員傳達訊息

    Zoom 軟體有個「聊天」功能,但請不要在「所有人」的視窗聊天,因為很多人一起聊天的結果,就是大家都找不到訊息。

    這個「聊天室」功能主要用來讓學員與講師之間的溝通,如果你有任何問題,可以在「聊天室」中發問,講師、助教或其他學員都會盡量回答你的問題。

    留言時,請務必在一個訊息中把問題打完,不要像 LINE 一樣,想到一句打一句,否則可能會不同人發問的問題之間交錯出現,導致閱讀困難。

  4. 利用【麥克風】使用語音提問

    進入會議室之後,麥克風會處於「鎖定」的狀態,如有問題想透過語音發問,請先點擊 Zoom 軟體的「舉手」按鈕,講師會開啟你的麥克風讓你線上發問。

    如果講師需要學員進行語音互動時,願意發言的人,也可以先按下「舉手」等候講師呼喚,並準備開啟麥克風,這樣才不會花太多時間等待學員回應。

  5. 不開放【視訊】使用

    原則上我們上課不需要開啟視訊鏡頭,以確保大家的個人隱私。

上課連結

由於我們上課時會採用 Zoom 軟體進行授課,而上課的 Zoom 會議室連結實際上是會透過另外的郵件通知學員,郵件主旨會是:

【上課通知】ASP.NET Core 8 開發實戰:從入門到進階

我們的通知信都會以 training@miniasp.com 為主要寄件人,建議先將我們的電子郵件地址設定為「信任的寄件者」,以免誤判為垃圾郵件。

如果你在上課前一天都還沒有收到我們的上課通知郵件,請立即寫信與我們聯繫!🔥