フッターコンテンツにスキップ
Iron Academy Logo
C#を学ぶ
C#を学ぶ

その他のカテゴリー

C# on Linux: シリーズイントロダクション

Tim Corey
14m 29s

ほとんどのC#開発者にとって、Windowsはこれまでに使ったことのある唯一のオペレーティングシステムです。 ツール、IDE、デプロイ対象はすべて1つのプラットフォームを中心に展開されます。 それは機能しますが、それが機能しなくなることもあります。最近のOSの変更によるプライバシーの懸念、古いハードウェアを再利用したいという願望、または複数の環境を知っていることによるプロフェッショナルな利点のためです。

彼のビデオ"C# on Linux: Series Introduction"で、Tim Coreyさんは、Linux上で完全に.NETアプリケーションを開発することに関するマルチパートシリーズを開始します。 このオープニングエピソードでは、コードを記述する前の状況をカバーしています。どのLinuxディストリビューションを選ぶべきか、C#開発に適したエディターはどれか、どのようなプロジェクトが構築可能でどのようなプロジェクトが構築不可能なのか、そしてワークフローがWindowsのように見えなくなったときに何を期待すべきかについて説明します。 .NETを従来の環境以外で動かすことに興味がある場合、こちらがロードマップです。

なぜLinux? より多くのオプションの必要性

[0:00 - 1:17] Timは率直な観察から始め、単一のプラットフォームに固定されると柔軟性が制限されることを指摘します。 マイクロソフトのAI関連のWindows変更に関する以前のビデオが代替案についての会話を促し、このシリーズはその議論から発展しました。 目標は、Windowsを放棄することではなく、スキルセットにもう1つの有効な環境を追加することです。

その幅広さが、実際にプロフェッショナルな価値を持ちます。 新しい仕事がMacやLinuxでの作業を必要とする場合、またはデプロイメントターゲットがLinuxサーバーで動作する場合、すでにワークフローを理解している開発者は明らかな利点を持っています。 Timは、このシリーズを、プラットフォームの競争としてではなく、異なる視点から.NETの知識を深める方法として位置付けています。

Linux Mintを選択する

[1:28 - 2:42] 新しいユーザーが驚くのは、"Linux"が単一のオペレーティングシステムではないということです。 それは数百の異なるディストリビューションの下に位置するカーネルであり、それぞれが独自のデスクトップ環境、パッケージマネージャーのデフォルト、および設計理念を持っています。 ティムは、選択肢の多さに圧倒されることがあると認めた後、このシリーズに最適な選択肢をLinux Mintに絞ります。

Mintは安定性と親しみやすさのバランスを取っています。 そのデスクトップのレイアウトは、Windowsユーザーが既に知っているものに似ており、タスクバー、スタートメニューの相当するもの、そして予測可能に動作するファイルマネージャーが含まれています。 その視覚的な類似性は、2つのシステムが同一であると偽ることなく、移行を容易にします。 Pop!_OSなどの他のディストリビューションも優れた選択肢ですが、MintはWindowsの操作に慣れている開発者にとって最も取っ付きやすい出発点を提供します。

.NET開発のためのIDEオプション

[2:42 - 3:57] Visual StudioはWindows専用のアプリケーションであるため、Linux開発者には異なるエディターが必要です。 Timは主に2つの方法を強調しています: VS CodeとC# Dev Kit拡張機能を組み合わせる方法、そしてJetBrains Riderです。

VS CodeでのC# Dev Kitは最近のリリースで大幅に改善されましたが、ティムはまだいくつかの粗が残っていると指摘しています。 ライセンスはVisual Studioと同じモデルに従い、個人開発者や小規模チームの場合は無料で、大規模組織には有料の階層があります。 JetBrains Riderは現在、個人プロジェクト向けに無料のコミュニティ版を提供しており、開発者に先行費用なしの選択肢を追加しています。このシリーズはVS Codeに重点を置きますが、各ツールがそのタスクに応じた強みを持っているため、両方を網羅します。

マシンスペック:実際に必要なもの

[4:00 - 6:14] Linuxの最も実用的なセールスポイントの一つは、必要とするハードウェアが非常に少ないことです。 Timは、その範囲を示す2つの例を共有します。 まず、彼はRaspberry PiキーボードコンピュータでC# Dev Kitを使用してVS Codeを実行する様子を説明しています。このデバイスはおおよそ400MHzの処理能力とデュアルコアCPUを搭載しています。 彼はそれを用いてBlazorアプリケーションを構築し実行しました。 体験は鈍かったですが、動作しました。

2番目の例は、ほとんどの開発者にとってより親しみやすいです。 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は早い段階で3つの期待を設定します。 まず、このシリーズは反マイクロソフトではありません。 GitHub、Azure、Edge、VS Code、.NET自体はすべてMicrosoft製品であり、いくつかはシリーズ全体で登場します。 大切なのは、押し付けられるのではなく、自分の条件に応じてどのツールを採用するかを選ぶことです。

第二に、これらのエピソードはLinuxを唯一の正しい選択として位置づけるものではありません。Windowsは、多くの開発者やワークフローにとって適切な環境であり続けます。 Linux はオプションを広げます。 Windowsがうまく処理するすべてのシナリオを置き換えるわけではありません。 価値は、両方のプラットフォームを理解することで、特定の状況に合ったものを選べる点にあります。

第三に、そしておそらく切り替えを行う開発者にとって最も重要な点は、LinuxがWindowsと同じように動作することを期待しないことです。 ソフトウェアのインストールには、より多くのコマンドライン操作が含まれます。 パッケージ管理は根本的に異なるモデルに従います。 Windowsでは自動的に感じられるワークフローの中には、Linuxで明示的なステップを要するものがあります。 このシリーズでは、それらの違いが生じるたびに、それがなぜ存在するのか、どのように対処すべきかを説明します。

違いを期待し、欠点ではありません

[11:52 - 13:34] プラットフォームを切り替える際によくある落とし穴は、すべてを既に知っているものと比較して測定してしまうことです。 ティムはこれに直接言及しています:Windows を去ることは、特定の作業が見慣れない、感じ慣れないものになることを受け入れることを意味します。 ウィンドウ管理、ソフトウェアのインストール、およびシステム構成は、Linuxでそれぞれ独自の規則があります。

これらのパターンの中には、本当に優れたものがあります。 たとえば、Linux のパッケージマネージャーモデルは、各アプリケーションが自身のアップデーターを管理するのに頼るのではなく、単一のシステムを通じてソフトウェアスタック全体を更新します。 他の違いは調整するだけです。 ティムは、WindowsからMacに切り替えることに例えています。その際、彼は好みのウィンドウスナップ機能を得るためにサードパーティのツールをインストールします。 Linuxでも同様のことが起こります。時間をかけて環境を自分の好みに適応させるのであり、以前の環境をそのまま再現することを期待するのではありません。

まとめ: シリーズのロードマップ

[13:34 - 14:10] Timは次に何が来るかを概説して締めくくります。 シリーズは、USBドライブにLinux Mintをインストールすることから始まります。これにより、現在のWindowsインストールに触れることなく、すべての体験をテストすることができます。 その後のエピソードでは、恒久的なインストール、開発ツールのセットアップ、実際のアプリケーションの構築について説明します。 サイドクエストのビデオは、道中でLinux特有の設定タスクを取り上げます。

結論

このイントロの要点は簡単です。LinuxはC#と.NET開発において実行可能で有能なプラットフォームですが、取り組む前に理解しておくべきいくつかの境界があります。 ハードウェア要件は控えめで、ツールも成熟しており、モダンな開発において重要なプロジェクトタイプ(ウェブ、API、サービス、コンソール)すべてが妥協なく動作します。

Windowsのみで作業してきた開発者にとって、このシリーズは視野を広げるための体系的な道を提供します。 サムドライブを使い始めれば、失うものがなく、得るべき有意義なスキルが手に入ります。

例のヒント: 完全インストールを行う前に、ポータブルUSBメモリからメインマシンでLinux Mintを起動してください。これにより、デスクトップ、ターミナル、および一般的なワークフローを既存の設定を変更せずに体験することができます。体験がしっくりくる場合、何を期待すればよいかを知った上で、恒久的なインストールに移行することができます。

彼のYouTubeチャンネル動画をフルで視聴し、LinuxでのC#開発に関するさらなる洞察を得てください。

Hero Worlddot related to C# on Linux: シリーズイントロダクション
Hero Affiliate related to C# on Linux: シリーズイントロダクション

好きなことを共有することで収入を増やす

.NET、C#、Java、Python、またはNode.jsを使用する開発者向けのコンテンツを作成しますか?あなたの専門知識を副収入に変えましょう!

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね