使用 .NET
ServBay 為 .NET 開發者在 macOS 上提供了一個方便、高效的開發環境。透過 ServBay 的套件管理系統,您可以輕鬆安裝、管理及運行多個 .NET SDK 版本,涵蓋現代的 .NET(即 .NET Core 及後續版本)與經典的 Mono 框架,以滿足不同專案的需求。
概述
.NET 平台歷史與 macOS 支援
.NET 是微軟開發的一個多功能開發平台。它的歷史與版本演進,有助於理解在 macOS 上的支援情況:
.NET Framework(原始版本): 最早於 2002 年發佈的 .NET Framework 是微軟的旗艦開發平台,但主要設計於 Windows 系統。其內含公共語言執行時(CLR)及龐大的類別庫(FCL)。直接在 macOS 執行 .NET Framework 應用通常不可行。
Mono(跨平台先驅): 為將 .NET 應用帶到 Linux 和 macOS 等非 Windows 平台,社群(最初由 Ximian 發起,後由 Novell 與 Xamarin/微軟支援)開發了 Mono。Mono 是 .NET Framework 的開源、跨平台實現。它讓開發者可於 macOS 和 Linux 執行與開發原為 .NET Framework 撰寫的應用程式(特別是 C#)。若需在 macOS 上執行舊版 .NET Framework 應用或函式庫,Mono 至今仍具價值。
.NET Core / .NET 5+(現代跨平台標準): 體認到跨平台的重要性,微軟自底重新設計了 .NET Core。這是現代、高效能、開源且完全跨平台的 .NET 實現,支援 Windows、macOS 與 Linux。從 .NET Core 3.1 起,微軟將其重新命名為 .NET(自第 5 版開始,略過 4 以避免與 .NET Framework 4.x 混淆)。現今我們提及 .NET SDK,基本上就是指這個現代、跨平台版本(.NET 5、6、7、8、9、10 等)。這是微軟推薦所有新應用開發(含 macOS 開發)的平台。
ServBay 對 .NET 的支援
ServBay 深刻理解 .NET 的歷史與開發者多元需求,因此提供:
- 現代 .NET SDK 套件: 涵蓋各個版本的 .NET(如 .NET SDK 2.0 至 10.0),讓您可用最先進的 C#、F# 與 ASP.NET Core 進行跨平台開發。
- Mono 套件: 提供 Mono 執行環境(如 Mono 6),支援需於 macOS 運行或開發的 .NET Framework 舊專案或特定函式庫,也包含舊版 ASP.NET(Web Forms、System.Web MVC)的有限支援。
- 並行安裝: 您可同時安裝多個 .NET SDK 版本及 Mono。
- 專案級版本管理: 透過
.servbay.config
檔,為每個專案指定所需的現代 .NET SDK 版本。 - 簡單管理: 以 ServBay 的圖形介面,直觀檢視、安裝或移除各 SDK 與 Mono 版本。
取得 .NET 套件
- 開啟 ServBay 應用程式。
- 在左側導覽列點選「套件 (Packages)」。
- 進入「套件」頁面後,向下滾動或於左側細項列表選擇「Languages」->「.NET」。
- 右側區塊會顯示所有可用的 .NET SDK 與 Mono 套件列表。
安裝 .NET SDK
套件列表會清楚標明各 .NET SDK 版本的狀態:
- Package Name: 套件名稱,如「.NET SDK 8.0」或「Mono 6」。
- Version: 具體版本號。
- Status: 顯示為「Installed」(已安裝)或「Not Installed」(未安裝)。
- Control: 提供操作按鈕。
若要安裝尚未被安裝的某個 .NET SDK 版本(如「.NET SDK 10.0」):
- 在清單裡找到目標版本。
- 確認其狀態顯示為「Not Installed」。
- 點選該列最右側的 下載/安裝 (Download/Install) 圖示(通常是箭頭向下)。
- ServBay 會開始下載並安裝選定的 SDK 版本。所需時間會依您的網路速度與 SDK 檔案大小而異。
- 安裝完成後,該版本狀態會改顯「Installed」,控制圖示也會變成移除 (Uninstall) 圖示(垃圾桶圖標)。
管理已安裝的 SDK
- 查看已安裝版本: 清單裡「Installed」狀態,清楚顯示您目前環境中已安裝的所有 .NET SDK 與 Mono 版本。
- 移除 SDK: 若您不再需要某個已安裝的 SDK 版本,只需點選該版本對應的 移除 (Uninstall) 圖示(垃圾桶),並確認操作,即可從系統中移除它。
使用已安裝的 .NET SDK
ServBay 安裝 .NET SDK 後,會自動將對應的 dotnet
指令工具加入系統 PATH 環境變數(於 ServBay 環境啟用時)。這意謂著您可直接在 macOS 的終端機 (Terminal) 使用 dotnet
指令。
常用命令範例:
查看可用 SDK 版本: 開啟終端機,執行:
bashdotnet --list-sdks
1此指令會列出 ServBay 管理下所有已安裝的 .NET SDK 版本及其安裝路徑。
檢查目前作用的 SDK 版本(通常是最新安裝或全域設定的版本):
bashdotnet --version
1建立新的主控台應用程式(使用預設 SDK):
bash# 建立一個名為 MyConsoleApp 的專案目錄 mkdir MyConsoleApp cd MyConsoleApp # 使用預設 SDK 建立新的主控台專案 dotnet new console
1
2
3
4
5
6執行應用程式:
bashdotnet run
1使用特定 SDK 版本(如有需要): 若專案需指定特定 SDK 版本,可透過
global.json
檔案。在專案根目錄建立global.json
,內容如:json{ "sdk": { "version": "8.0.408" // 指定已安裝且專案所需的 SDK 版本 } }
1
2
3
4
5於該專案目錄下執行 dotnet 指令,將優先採用
global.json
指定版本的 SDK。
Mono 支援
除標準 .NET SDK 外,ServBay 亦提供 Mono 的安裝選項。Mono 乃 .NET Framework 的開源、跨平台實現。若需開發或運行依賴 .NET Framework 特定功能的應用,您可於 ServBay 安裝並使用 Mono。安裝與移除的流程與 .NET SDK 完全相同。
Mono 主要用於執行以 .NET Framework 編譯的程式(.exe
),或使用特定需搭載 Mono 執行環境的工具,亦包含運行舊版 ASP.NET 應用。
查詢 Mono 版本:
bashmono --version
1運行 .NET Framework 可執行檔: 假設您有一個為 .NET Framework 編譯的
LegacyApp.exe
:bashmono LegacyApp.exe
1運行舊版 ASP.NET 應用(有限支援): Mono 提供一個簡易 Web 伺服器
xsp
,可於開發環境中運行舊版 ASP.NET Web Forms 或 System.Web MVC 應用。也可透過Nginx
+FastCGI
或Apache
+mod_mono
整合。重要提醒:
- 此方式對 ASP.NET Framework 的相容性有限,不是所有應用都能正常執行,特別是強烈依賴 Windows 特定功能者。
- 效能通常不及於 Windows/IIS 下執行。
- 不建議用於新專案開發。 現代 Web 開發應優先使用 ASP.NET Core。
- ServBay 提供完整教學:如何在 macOS 下運行 ASP.NET Framework 4.x 網站。
如確有需求(如測試或維護),可能會用到類似指令(視應用及組態而定):
bash# 範例:於特定資料夾啟動 xsp 伺服器 # cd /Applications/ServBay/www/your_legacy_aspnet_app # xsp4 --port 8080 # (xsp4 代表對應 .NET 4.x)
1
2
3
整合 Web 伺服器(ASP.NET Core)
採用 ServBay 安裝的 .NET SDK,您可開發 ASP.NET Core Web 應用。部署時,亦可利用 ServBay 內建的各種 Web 伺服器(如 Nginx、Caddy 或 Apache):
- 使用
dotnet publish
指令釋出您的 ASP.NET Core 應用。 - 於 ServBay 新增一個網站 (Website)。
- 設定該網站作為反向代理,將流量導向您的 ASP.NET Core 應用所啟動、監聽的 Kestrel 伺服器(如
http://localhost:5000
)。各反向代理設定方式,請依實際使用 Web 伺服器(Nginx、Caddy 或 Apache)查閱相關配置說明。
請參考 ServBay 關於新增網站及反向代理配置的專屬文件。
總結
ServBay 大幅簡化了 macOS 上 .NET 開發環境的建置與管理。透過直觀介面,開發者能輕鬆安裝、切換與移除多個 .NET SDK 版本及 Mono,讓您更專注於 C#、F# 與 ASP.NET Core 應用的開發與測試。