也差不多該開始玩 ASP.NET Core 了。最近剛好有個適合練功的題材,拿了 ASP.NET Core + Vue.js 上場演練,將一路上參考到的資源及瑣碎心得理成筆記備忘。

  1. 關於 ASP.NET Core,MVP John Wu 有一系列 IT 鐵人文,是新手上路很不錯的參考:
    [鐵人賽 Day01] ASP.NET Core 2 系列 - 從頭開始 - John Wu's Blog
  2. 如果你習慣 IDE 開發不喜歡下指令,那麼 Visual Studio 仍是開發 ASP.NET Core 的首選,有可能從建立專案、寫程式到測試都不必動用命令列視窗。不過如果你看中的是 .NET Core 跨平台優勢,那麼學習使用 dotnet 命令列指令是必修課程。
    用命令工具建專案沒想像中複雜,例如以下幾個步驟就能建好一個可執行的空白 ASP.NET Core 網站:(要建立包含 MVC Controllers/Views 基本結構專案的話,則是用 dotnet new mvc)
  3. 免費且跨平台的 Visual Studio Code(簡稱VSCode),有愈來愈流行的趨勢,尤其涉及前端開發時,VSCode 已是主流,網路參考資源豐富超多,如果想學習進階的前端開發,無可避免得將 VSCode 列為必修課程。
  4. 簡短試用比較過 VSCode 跟 Visual Studio 2017,二者是不同量級的開發工具,各有其專長。
    VS2017 對 ASP.NET Core 的支援十分完整(記得要更新到最新 Update),具備像是 Add View、Go To View 等便捷功能,跟開發 ASP.NET MVC 4/5 的體驗差不多。
    VSCode 則較像一個開發環境框架,支援程度由所安裝的擴充套件決定,想補足平日慣用的 VS2017 功能,一方面需要花時間尋找組裝,另一方面有些功能還沒有現成的擴充套件可用,故開發體驗不如 VS2017。但在 JavaScript / TypeScript 方面,VSCode 支援的完整度與時效性,以及網路參考資源的豐富程度則遠勝 VS2017。
    最後我琢磨出來較順手的做法是 - 用 VSCode 及 VS2017 開啟同一個專案,寫 MVC/C# 端時用 VS2017,寫到 TypeScript 再切換成 VSCode,各取其優勢。
  5. ASP.NET Core 的專案結構跟 ASP.NET 大不相同,已經看不到 Global.asax / web.config 這些東西,取而代之的是改用 Program.cs 起始,以 OWIN 方式設定網站執行細節。也因此,ASP.NET Core 完全擺脫對 IIS 的依賴,可靠內建的 Kestrel 伺服器單獨執行,也可以搭配 IIS、Nginx、Apache 等 Reverse Proxy 伺服器對外提供服務,借重 Reverse Proxy 滿足安全防護、負載平衡、快取上的較高規格要求。
    ASP.NET Core 中的網頁伺服器實作 - Microsoft Docs
  6. 原本想在 ASP.NET Core 使用 SQLite + Dapper,不幸目前 SQLite ADO.NET 套件還不支援 Core 版本,倒是在 EntityFramework 相關支援已經齊全。順勢調整架構,也練習一下 EF 吧!
    -NET Core 使用者入門 - 新資料庫 - EF Core - Microsoft Docs
  7. .NET Core 預設不再使用 app.config 或 web.config 設定檔,取而代之是多樣化的設定保存選項,像是 INI/JSON/XML/環境變數/記憶體。我個人偏好 JSON,做法可參考 ASP.NET Core 的設定 - Microsoft Docs

未完待續...


Comments

# by Calos

「也可以搭配 IIS、Ngix、Appach 等 Reverse Proxy 伺服器對外提供服務」 Ngix 和 Appach 是不是 key 錯了?

# by Jeffrey

to Calos, 靠,發文前明明有校過稿... 我沒救了。謝謝指正。

# by leo

請問 vscode 可以run asp.net mvc 5嗎?

# by Jeffrey

to leo, 依我的理解,不行。https://www.quora.com/Does-Visual-Studio-Code-support-debugging-an-ASP-NET-MVC-5-web-application-If-yes-can-someone-guide-on-how-to-setup-debugging 另一方面,依我自己的體驗,在 ASP.NET Core 程式支援上,VS 與 VSCode 是商務艙與經濟艙的區別。VSCode 在前端跟非 MS 平台方面較突出。

# by leo

了解!! 謝謝黑大

Post a comment


75 - 64 =