完全以 command 方式管理 .NET Core

.NET Core 為了要跨平台,在 .NET Core SDK 提供了全套的 CLI,讓我們可以完全用 command 方式管理專案。

Version


macOS High Sierra 10.13.3
.NET Core SDK 2.1.101

為什麼要用 Command ?


傳統 .NET Framework 都是在 Visual Studio 以 GUI 方式操作,GUI 對 End User 是友善的,但對 Developer 與 DevOps 而言卻不見得友善 :

  1. GUI 很難自動化,但 command 很適合寫 script 自動化,而且可以 git 版控
  2. 若要遠端管理 server,GUI 只能透過 Remote Desktop,但 command 只要 SSH 就可執行
  3. Command 可以寫在 Dockerfile 內,但 GUI 無法
  4. .NET Core 最新功能會先在 SDK 支援,Visual Studio 支援稍慢於 SDK
  5. Command 適合在 macOS 與 Linux 執行

這也是為什麼目前潮流是 End User 與 Designer 使用 GUI,但 Developer 與 DevOps 使用 command。

.NET Core 全部的動作都可以使用 command 執行。

就類似學 Git 要從 command 開始學,只要原理懂,自然會使用 Visual Studio / Rider 的 GUI

.NET Core SDK Command


1
$ dotnet help

列出全部 .NET Core SDK 指令的說明。

sdk000

  • dotnet help : 顯示所有 command 與 option 的文件
  • dotnet new : 根據指定 template 建立 project
  • dotnet restore : 根據 *.csproj 的資訊 restore dependency
  • dotnet run : 執行 .NET Core 應用程式
  • dotnet build : 編譯 .NET Core 應用程式為 assembly (dll)
  • dotnet publish : 發布 .NET Core 應用程式
  • dotnet test : 執行 .NET Core 單元測試
  • dotnet pack : 建立 NuGet package
  • dotnet migrate : 將 project.json 專案升級到 msbuild 專案
  • dotnet clean : 將之前編譯的 assembly (dll) 刪除
  • dotnet sln : 管理 solution 檔
  • dotnet add : 新增 project reference 或 package reference
  • dotnet remove : 移除 project reference 與 package reference
  • dotnet list : 列出 project 所有的 reference
  • dotnet nuget : 執行 NuGet command
  • dotnet msbuild : 執行 MSBuild
  • dotnet vstest : 對 assembly 執行單元測試

Conclusion


  • 透過 .NET Core SDK,我們可以完全使用 command 的方式管理專案,完全不需要 GUI
2018-03-16