跳過到頁腳內容
Iron Academy Logo
學習 C#
學習 C#

其他分類

Linux 上的 C#: 系列介紹

Tim Corey
14m 29s

對於大多數C#開發者來說,Windows是他們曾經工作過的唯一作業系統。 工具、IDE、部署目標都圍繞著單一平台。 這樣的運作方式直到不再運作為止,無論是因為最近作業系統變更中隱私問題的擔憂,還是希望重新利用較舊硬體的願望,或者僅僅是因為了解多於一個環境帶來的職業優勢。

在他的视频 "C# on Linux: Series Introduction" 中,Tim Corey 開始了一個完全在 Linux 上開發 .NET 應用程式的多部分系列。 這開場的一集涵蓋了在寫任何代碼之前的全景:選擇哪個 Linux 發行版,哪些編輯器適用於 C# 開發,哪些類型的專案可以和不能建置,以及當工作流程不再像 Windows 時可以期待什麼。 如果您對於讓.NET運行在它傳統家之外感到好奇,這就是您的路線圖。

為什麼選擇 Linux? 更多選擇的理由

[0:00 - 1:17] Tim 首先做出直率的觀察:被鎖定在單一平台上限制了您的靈活性。 先前關於 Microsoft 對 Windows 進行的與 AI 相關變更的影片引發了關於替代方案的對話,這個系列便是從那些討論中誕生的。 目標不是放棄 Windows,而是在您的技能中添加一個可行的環境。

擁有這種廣度帶來了真正的職業價值。 如果新工作需要在 Mac 或 Linux 上工作,或者如果部署目標運行在 Linux 服务器上,那位已經知道工作流程的開發者則顯然具備優勢。 Tim 將這個系列框架化,使其成為從不同角度來加深您的.NET知識,而不是平台戰爭。

選擇 Linux Mint

[1:28 - 2:42] 一件讓新手們感到意外的事情是 "Linux" 並不是一個單一的作業系統。 它是一個在數百個不同發行版下的核心,每個有自己的桌面環境、軟體管理默認值和設計哲學。 Tim 承認大量選擇可能會讓人感到不知所措,然後為這個系列簡化了決策:Linux Mint。

Mint 在穩定性和熟悉度之間找到了平衡。 它的桌面佈局類似於 Windows 使用者已經知道的東西,有任務欄類似開始功能表和可預測行為的檔案管理器。 這種視覺上的相似度簡化了過渡,而不假裝兩個系統是相同的。 其他發行版像 Pop!_OS 也是穩定的選擇,但對於那些經常使用 Windows 的開發者來說,Mint 提供了最容易接觸的起點。

適用於 .NET 開發的 IDE 選項

[2:42 - 3:57] 因為Visual Studio是一個 Windows 專屬的應用程式,Linux 開發者需要一個不同的編輯器。 Tim 強調了兩個主要路徑:VS Code 配合 C# Dev Kit 擴充套件, 和 JetBrains Rider。

VS Code 隨著 C# Dev Kit 最近的版本已經大幅改善,雖然 Tim 注意到一些粗糙的邊緣仍然存在。 授權遵循與 Visual Studio 相同的模型:對於個人開發者和小團隊免費,對於較大組織有付費等級。 JetBrains Rider 現在為個人專案提供免費社區版,使開發者有第二個選擇而不需要預先支付費用。該系列將傾向於 VS Code,但仍然涵蓋這兩者,因為根據任務的不同而各具優勢。

機器規格:您實際需要的

[4:00 - 6:14] Linux 一個最實際的賣點是其對硬體需求極少。 Tim 分享了兩個範例以說明其範圍。 首先是他描述在 Raspberry Pi 鍵盤電腦上運行 VS Code 和 C# Dev Kit,一個大約 400 MHz 的處理能力和雙核心 CPU 的裝置。 他在上面建立並運行了一個 Blazor 應用程式。 這過程是遲鈍的,但依然運行。

第二個範例對大多數開發者更為可關聯。 一臺在 Windows 10 下變得無法使用的舊筆記型電腦(點擊超時,應用程式拒絕載入)在重新安裝 Linux Mint 後無故障地運行。 同樣的硬件只能勉強顯示 Windows 桌面,但卻成為可運作的開發機器。Tim 清楚地表示較好的規格依然會帶來更好的體驗,但在 Linux 上進行 C# 開發的最低標準比在 Windows 上要低很多。

您能和不能構建的專案類型

[6:17 - 8:23] 並不是每個 .NET 專案類型在 Windows 以外的地方都能運行,提前了解這些界限可避免以後的挫折。 WinForms 和 WPF 都依賴於操作系統內建的 Windows 特定函式庫。 UWP 具有相同限制。 這些都無法在 Linux 上編譯或運行。

MAUI 增添了值得注意的微妙差異。 盡管它支持多個平台(Windows, macOS, iOS, Android),但不包括 Linux。 這一區別很重要,因為開發者有時會假設 "跨平台" 意味著 "無所不在",而實際上 MAUI 的範圍排除了 Linux 和 Web。

能運作的專案範圍很廣。 控制台應用程式,這是學習 C# 的基礎,無需修改即可運行。 服務應用程式(在 Linux 中稱為守護程序)完全受支持。 整個 ASP.NET Core 網絡棧,包括 API、Blazor 應用程式、gRPC 服務和工作服務,均可在 Linux 上以相同方式運作。 對於需要跨操作系統的桌面應用程序,Uno 平台 是該系列未來的主題,可以從 Linux 建立並同時部署至 Windows 和 macOS。

本系列不會做什麼

[8:37 - 11:52] Tim 早早就設下了三個期望。 首先,該系列不是反對 Microsoft。 GitHub, Azure, Edge, VS Code 和 .NET 本身都是 Microsoft 的產品,並且其中幾個將在整個系列中出現。 重點是選擇在自己條件下採用哪些工具,而不是被強加於你。

其次,這些劇集不會將 Linux 定位為唯一正確的選擇。Windows 仍然是許多開發者和工作流程的正確環境。 Linux 擴展了您的選項; 它並不取代 Windows 所能良好處理的每一種情況。 其價值在於了解兩個平台,以便您能選擇適合特定情況的平台。

第三,對於轉換的開發者來說可能最重要的是:不要指望 Linux 與 Windows 的運作相同。 安裝軟體涉及更多的命令行互動。 包管理遵循一個根本不同的模型。 在 Windows 上感覺自動化的某些工作流程在 Linux 上則需要明確的步驟。 該系列將在這些差異出現時逐一介紹,解釋為什麼這些差異存在以及如何處理它們。

期待差異,不是缺陷

[11:52 - 13:34] 換平台時的一個常見陷阱是以您已知的東西來衡量一切。 Tim 直接提到這一點:離開 Windows 意味著接受某些任務會看起來和感覺都不熟悉。 窗口管理、軟件安裝和系統配置在 Linux 上都有其自己的傳統。

其中一些模式是真正更好的。 例如,Linux 的套件管理器模型,通過單一系統更新整個軟体棧,而不是依賴於每個應用程式管理自己的升級。 其他差異僅僅需要調整。 Tim 將其比作從 Windows 切換到 Mac,他會安裝一個第三方工具來獲得他喜好的窗口貼附功能。 同樣情況發生在 Linux 上:您會隨著時間的推移將環境適應您的喜好,而不是期望它像您離開的一樣。

總結:本系列的路線圖

[13:34 - 14:10] Tim 最後介紹了接下來的內容。 該系列從在 USB 驅動器上安裝 Linux Mint 開始,因此您可以在不影響現有 Windows 安裝的情況下體驗整個過程。 之後,後續的視頻包含永久安裝、開發工具設置和構建真實應用程式。 旁支影片將在這過程中解決 Linux 特定的配置問題。

結論

[14:10 - 14:29] 此次介紹的收穫是簡單的:Linux 是一個可行的、有能力的平台,用於 C# 和 .NET開發,您應在深入之前首先了解一些界限。 硬體要求很低,工具已經成熟,現代開發(包括網絡、API、服務、控制台)最重要的專案類型都可以毫不妥協地運行。

對於那些僅在 Windows 上工作的開發者來說,這個系列提供了一個結構化的途徑,以擴展您的能力。 從隨身碟開始意味著無所損失並獲得一項有意義的技能。

範例提示:在進行完整安裝之前,請在您的主要機器上從可攜式USB閃存棒啟動Linux Mint。您將能感受到桌面、終端和一般工作流程,而不更改現有設定。如果這次體驗讓您覺得舒服,您便可以移向永久安裝,知道會有什麼期待。

觀看他的 YouTube 頻道上的完整影片,獲得更多關於在Linux上進行C#開發的見解

Hero Worlddot related to Linux 上的 C#: 系列介紹
Hero Affiliate related to Linux 上的 C#: 系列介紹

通過分享您所愛的東西賺得更多

您是否在為使用.NET、C#、Java、Python或Node.js的開發者創建內容?將您的專業知識轉化為額外收入!

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我