Aspire 13
一個專案的開始
開發專案時,通常會在本地端進行,並結合 Database 和 Cache 等服務。目前常見的做法是使用 Docker 啟動 Database 或 Cache container 來建立本地測試環境,而非直接連線到公司提供的測試環境。
1 | version: '3.9' |
以上面的例子來說,你需要先有以下的知識:
- 你需要知道 docker 使用的基本知識
- 你需要懂 docker-compose 的格式
- 你需要知道 postgres container 所提供的設定資料種類與設定方式
當然,以現代結合 AI 的做法,以上的方式其實很簡單,不容易出問題 (以上範例也是直接讓 ChatGPT 給我的)。但如果你還需要更深入一點的操作,包含取得連線字串,放到系統中使用,或者是管理資料庫的生命週期,舉例來說如果有以下問題:
- 資料庫什麼時候啟動?
- 啟動後如果要重設的方式?
- 如果有一個以上的服務需要使用資料庫,但是 schema 不一樣?
- 假設有一個以上的服務需要用到資料庫,但是實際生產環境是不同的兩個 database ? 我該怎麼啟動兩個資料庫,然後使用不同的 Port ?
- 怎麼樣讓資料庫已啟動就有相對應的 schema or data?
如果一個新進專案的工程師要了解以上服務的關聯性以及啟動方式,你需要將以上的資訊整理成一份 README,或者是寫好一個 script 來將以上的動作都一次處理完畢。但這又有其他問題:
- README 要怎麼寫,才能讓新加入的成員很好理解?
- script 要用什麼格式?Bash or Powershell?(如果遇到團隊有使用不同環境的電腦)
- 如果遇到要存取檔案,路徑格式的表現方式?
- 如果有使用到其他工具,還需要說明其他工具的安裝方式
所以,如果公司內沒有一個懂以上資訊或怎麼做的人,這些對團隊來說,都會是痛點。而且如果團隊成員會有不同想法,不同意見,以及考慮到人員異動,專案成員來來去去,情況就更複雜了。
當然,以上問題以現代的做法來講,你都可以讓 AI 來幫你處理掉以上的問題,你可以不需要找其他工具來處理,直接把以上問題都整理好,一次讓 AI 處理掉以上問題。如果有發生其他狀況,直接讓 AI 來幫你處理掉以上問題。但是,你每個專案可能都需要來一次。如果中途要修改,你還需要花一點時間測試與了解做法,這些,都是隱性成本 (人力 or Tokens 數)。
Aspire is glue
微軟認為,Aspire 這個工具是一個用來黏合其他服務的一個方式,而且是使用我們已經習慣的 C# 語言,搭配已經開發好的 NuGet Packages,你可以很快速的啟動資料庫,並且將連線字串直接注入到專案中使用,也不需要再管理連線字串。
1 | using Aspire.Hosting; |
以上的專案啟動後,還會有一個漂亮的 Dashboard 可以使用,裡面可以看所有服務的 Console Output,並且直接結合 OpenTelemetry,有 Tracing、Metric 等相關資訊可以檢視。


現在已經到 Aspire 13,是可以嘗試看看了

