C# na Linuksie: Wstęp do Serii
Dla większości programistów C#, Windows był jedynym systemem operacyjnym, na którym kiedykolwiek pracowali. Narzędzia, IDE, cele wdrożenia — wszystkie obracają się wokół jednej platformy. To działa, dopóki nie przestaje, czy to z powodów prywatności związanych z ostatnimi zmianami w systemie operacyjnym, pragnieniem przekształcenia starszego sprzętu, czy po prostu z doświadczenia zawodowego wynikającego z znajomości więcej niż jednego środowiska.
W swoim wideo "C# on Linux: Series Introduction" Tim Corey rozpoczyna wieloczęściową serię rozwijania aplikacji .NET w całości na Linuxie. Ten odcinek otwierający obejmuje krajobraz zanim jeszcze kod zostanie napisany: która dystrybucja Linuxa wybrać, które edytory działają dla rozwoju C#, jakie projekty można i nie można zbudować, oraz czego się spodziewać, gdy przepływ pracy przestaje wyglądać jak Windows. Jeśli byłeś ciekawy uruchamiania .NET poza jego tradycyjnym domem, to jest mapa drogowa.
Dlaczego Linux? Przypadek dla więcej opcji
[0:00 - 1:17] Tim rozpoczyna od szczerej obserwacji: ograniczenie się do jednej platformy ogranicza twoją elastyczność. Poprzednie wideo o AI- związanych zmianach Microsoftu w Windows wywołało rozmowy o alternatywach, a ta seria wyrosła z tych dyskusji. Celem nie jest porzucenie Windows, lecz dodanie drugiego, realnego środowiska do twojego zestawu umiejętności.
Posiadanie tej szerokości niesie realną wartość zawodową. Jeżeli nowa praca wymaga pracy na Mac lub Linux, albo jeżeli cel wdrożenia działa na serwerze Linux, programista, który już zna przepływ pracy, ma wyraźną przewagę. Tim wyraża tę serię jako sposób na pogłębienie twojej wiedzy o .NET poprzez podejście z innej perspektywy, nie jako wojny platformy.
Wybór Linux Mint
[1:28 - 2:42] Jedną rzeczą, która zaskakuje nowicjuszy, jest to, że "Linux" nie jest jednym systemem operacyjnym. Jest to jądro, które znajduje się pod setkami różnych dystrybucji, z każdą z własnym środowiskiem pulpitu, domyślnymi menedżerami pakietów i filozofią projektowania. Tim przyznaje, że sama ilość wyborów może być przytłaczająca, a następnie upraszcza decyzję dla tej serii: Linux Mint.
Mint utrzymuje równowagę między stabilnością a znajomością. Rozkład jego pulpitu przypomina to, co użytkownicy Windows już znają, z paskiem zadań, równoważnikiem menu start i menedżerem plików, który zachowuje się przewidywalnie. To wizualne podobieństwo ułatwia przejście, nie udając, że oba systemy są identyczne. Inne dystrybucje, takie jak Pop!_OS, również są solidnymi wyborami, ale Mint zapewnia najbardziej przystępny punkt startowy dla programistów, których pamięć mięśniowa jest zbudowana wokół Windows.
Opcje IDE dla rozwoju .NET
[2:42 - 3:57] Ponieważ Visual Studio jest aplikacją tylko dla Windows, deweloperzy na Linux potrzebują innego edytora. Tim charakteryzuje dwie główne ścieżki: VS Code w połączeniu z C# Dev Kit i JetBrains Rider.
VS Code z C# Dev Kit znacznie poprawił się w ostatnich wydaniach, choć Tim zauważa, że pozostały jeszcze pewne niedoskonałości. Licencjonowanie podąża za tym samym modelem co Visual Studio: za darmo dla indywidualnych programistów i małych zespołów, z płatną warstwą dla większych organizacji. JetBrains Rider oferuje teraz darmową wersję społecznościową do osobistych projektów, dając programistom drugą opcję bez kosztów wstępnych. Seria będzie skłaniała się ku VS Code, ale obejmie oba, ponieważ każde narzędzie ma mocne strony w zależności od wykonywanego zadania.
Specyfikacje maszyny: Co naprawdę potrzebujesz
[4:00 - 6:14] Jednym z najbardziej praktycznych punktów sprzedaży dla Linuxa jest to, jak niewiele wymaga sprzętu. Tim dzieli się dwoma przykładami ilustrującymi ten zakres. Po pierwsze, opisuje uruchamianie VS Code z C# Dev Kit na komputerze klawiatura Raspberry Pi, urządzeniu z około 400 MHz mocy przetwarzania i dwurdzeniowym CPU. Zbudował i uruchomił aplikację Blazor na nim. Doświadczenie było wolne, ale działało.
Drugi przykład jest bardziej relatywny dla większości deweloperów. Stary laptop, który stał się nieużywalny na Windows 10 (kliknięcia kończyły się czasem, aplikacje odmawiały załadowania) obsługiwał Linux Mint bez problemu po świeżej instalacji. Ten sam sprzęt, który ledwo renderował pulpit Windows, stał się funkcjonalną maszyną deweloperską. Tim wyraźnie stwierdza, że lepsze specyfikacje nadal oferują lepsze doświadczenie, ale minimalna poprzeczka dla rozwoju C# na Linuxie jest znacznie niższa niż na Windows.
Typy projektów, które możesz i nie możesz zbudować
[6:17 - 8:23] Nie każdy typ projektu .NET działa poza Windows, a zrozumienie tych granic z góry zapobiega frustracji później. WinForms i WPF oba zależą od bibliotek specyficznych dla Windows wbudowanych w system operacyjny. UWP ma to samo ograniczenie. Żaden z nich nie skompiluje się ani nie uruchomi na Linuxie.
MAUI dodaje subtelność wartą odnotowania. Chociaż platformę docelową stanowią różne systemy (Windows, macOS, iOS, Android), Linux nie jest jednym z nich. To rozróżnienie ma znaczenie, ponieważ programiści czasami zakładają, że "cross-platform" oznacza "wszędzie", podczas gdy w praktyce zasięg MAUI wyklucza zarówno Linuksa, jak i sieć.
To, co działa, obejmuje szeroką powierzchnię. Aplikacje konsolowe, które stanowią podstawę do nauki C#, działają bez modyfikacji. Aplikacje usługowe (demony w terminologii Linuksa) są w pełni obsługiwane. Cały stos sieciowy ASP.NET Core, w tym API, aplikacje Blazor, usługi gRPC i usługi robocze, działa identycznie w Linuksie. W przypadku aplikacji desktopowych, które muszą obejmować różne systemy operacyjne, Uno Platform jest przyszłym tematem w serii, umożliwiającym budowanie w Linuksie i wdrażanie do Windows oraz macOS.
Czego ta seria nie zrobi
[8:37 - 11:52] Tim na początku ustala trzy oczekiwania. Po pierwsze, seria nie jest przeciwko Microsoft. GitHub, Azure, Edge, VS Code i sam .NET to produkty Microsoft, a kilka z nich pojawi się w całej serii. Chodzi o wybranie narzędzi do adoptowania na własnych zasadach, zamiast narzucania ich.
Po drugie, te odcinki nie będą przedstawiać Linuksa jako jedynego słusznego wyboru. Windows pozostaje właściwym środowiskiem dla wielu programistów i przepływów pracy. Linux rozszerza twoje opcje; nie zastępuje każdego scenariusza, w którym dobrze sprawdza się Windows. Wartość leży w zrozumieniu obu platform, aby móc wybrać tę, która pasuje do danej sytuacji.
Po trzecie, i być może najważniejsze dla programistów dokonujących przesiadki: nie oczekuj, że Linux będzie działał tak jak Windows. Instalowanie oprogramowania wymaga większej interakcji z linią poleceń. Zarządzanie paczkami opiera się na zupełnie innym modelu. Niektóre przepływy pracy, które wydają się automatyczne w Windowsie, wymagają jawnych kroków w Linuksie. Seria przejdzie przez każde z tych różnic, jak się pojawią, wyjaśniając, dlaczego istnieją i jak sobie z nimi radzić.
Oczekuj różnic, nie niedostatków
[11:52 - 13:34] Częstym pułapką przy zmianie platform jest mierzenie wszystkiego względem tego, co już znasz. Tim odnosi się bezpośrednio do tego: rezygnacja z Windows oznacza akceptację tego, że niektóre zadania będą wyglądać i czuć się obco. Zarządzanie oknami, instalacja oprogramowania i konfiguracja systemu mają własne konwencje w Linuksie.
Niektóre z tych wzorców są naprawdę lepsze. Model menedżera pakietów Linuksa, na przykład, utrzymuje całą twoją stertę oprogramowania zaktualizowaną za pomocą pojedynczego systemu zamiast polegać na każdej aplikacji zarządzającej własnym aktualizatorem. Inne różnice wymagają po prostu dostosowania. Tim porównuje to do przełączania się z Windows na Mac, gdzie instaluje narzędzie zewnętrzne, aby uzyskać preferowane zachowanie migania okien. Odpowiednik zdarza się na Linuksie: dostosowujesz środowisko do swoich preferencji z czasem, zamiast oczekiwać, że zreplikuje to, co zostawiłeś za sobą.
Zakończenie: Mapa drogowa dla serii
[13:34 - 14:10] Tim kończy, przedstawiając, co będzie dalej. Seria rozpoczyna się instalacją Linuksa Mint na dysku USB, abyś mógł przetestować całe doświadczenie bez dotykania swojej istniejącej instalacji Windows. Stamtąd, kolejne odcinki obejmują trwałą instalację, konfigurację narzędzi deweloperskich i budowanie rzeczywistych aplikacji. Wideo "mini-zadania" poświęcone będą zadaniom konfiguracyjnym specyficznym dla Linuksa po drodze.
Wnioski
[14:10 - 14:29] Wniosek wprowadzający jest prosty: Linux to użyteczna, zdolna platforma do rozwoju C# i .NET, z kilkoma ograniczeniami, które powinieneś zrozumieć, zanim się zanurkujesz. Wymagania sprzętowe są skromne, narzędzia dojrzałe, a typosy projektów, które najbardziej liczą się dla nowoczesnego rozwoju (web, API, usługi, konsola) działają bez kompromisów.
Dla programistów, którzy pracowali wyłącznie na Windowsie, ta seria oferuje ustrukturyzowaną ścieżkę do poszerzania swoich horyzontów. Rozpoczęcie od dysku USB oznacza, że nic nie tracisz i zyskujesz wartościową umiejętność.
Przykładowa Rada: Zanim zobowiążesz się do pełnej instalacji, uruchomaj Linux Mint z przenośnego USB na swojej głównej maszynie. Poczujesz pulpit, terminal i ogólny przepływ pracy bez zmieniania swojego istniejącego ustawienia. Jeśli doświadczenie będzie odpowiadać, możesz przejść do trwałej instalacji, wiedząc, czego się spodziewać.
Obejrzyj pełne wideo na jego kanale YouTube Channel i zyskaj więcej informacji o rozwoju C# na Linuksie.
