跳至頁尾內容
Iron Academy Logo
學習C#
學習C#

其他類別

C#在Linux上的系列介紹

Tim Corey
14分 29秒

對於大多數C#開發者來說,Windows一直是他們唯一使用的操作系統。 工具、IDE和部署目標都圍繞著一個平台。 這樣是可行的,直到因為近期操作系統變更帶來的隱私問題、想將舊硬體重新利用,或者只是因為知道多個環境會帶來專業優勢時,不再可行。

在他的影片《在Linux上的C#: 系列介紹》中,Tim Corey開啟了一個在Linux上完全開發.NET應用程式的多部系列。 這第一集影片介紹在編寫任何程式碼之前的情況:選擇哪個Linux發行版、哪些編輯器適合C#開發、您可以和無法構建的專案型別,以及當工作流程不再像Windows時的預期。 如果您對在傳統環境之外運行.NET感到好奇,這就是您的路線圖。

為什麼選擇Linux? 選擇更多選項的原因

[0:00 - 1:17] Tim以坦率的觀察開場:被限制在一個單一的平台上會限制您的靈活性。 之前關於微軟對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和網頁。

可運行的應用範圍很廣。 控制台應用程式,它構成了學習C#的基礎,無需修改即可運行。 服務應用程式(在Linux術語中稱為守護程式)完全支持。 整個ASP.NET Core網頁棧,包括API,Blazor應用程式,gRPC服務和工作者服務,都在Linux上完全運行。 對於需要跨操作系統運行的桌面應用程式,Uno Platform作為本系列未來的主題,允許您從Linux構建並部署到Windows和macOS。

本系列不會做什麼

[8:37 - 11:52] Tim早早設立了三個期望。 首先,本系列並不反對微軟。 GitHub、Azure、Edge、VS Code和.NET本身都是微軟的產品,且在系列中會多次提及。 重點是在自己的條件下選擇採用哪些工具,而不是被強加於您。

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

第三點,也許對於正要轉換的開發者而言最重要:不要期望Linux會像Windows一樣運作。 安裝軟硬體需要更多的命令行互動。 包管理採取基本不同的模型。 某些在Windows上自動的工作流程,在Linux上需要明確的步驟。 系列會隨著這些差異出現時逐一介紹,解釋為什麼它們存在以及如何處理它們。

期望差異而非缺陷

[11:52 - 13:34] 在切換平台時,一個常見的陷阱是對您已知的事物進行比較。 Tim直接說明了這一點:離開Windows意味著要接受某些任務會看起來和感覺上都不熟悉。 窗口管理、軟體安裝和系統配置在Linux上都有自己的規範。

其中的一些模式確實更優越。 例如,Linux的包管理器模型通過單一系統讓您的整個軟體棧保持更新,而不是依賴每個應用程式來管理其自己的更新程式。 其他差異則僅需適應。 Tim將其比作從Windows切換到Mac,他在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 C#在Linux上的系列介紹
Hero Affiliate related to C#在Linux上的系列介紹

分享您所愛以賺取更多報酬

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

Iron 支援團隊

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