LinuxシステムでのC#の知識はありますか?


44

私はC#を知っており、システムを切り替えてLinuxを使用したいと思っています。C#を使用して、Linuxでネイティブに動作するアプリケーションを構築できますか?LinuxシステムでC#の知識を活用するにはどうすればよいですか?

私はUnity3Dに特化していますが、それでもC#を使用してLinuxアプリケーションを作成したいことに注意してください。


1
KerbalSpaceProgramはUnityで記述されており、Win / Mac / Linuxで実行されます。KSPのプラグイン/ ModはC#で記述されており、Win、Mac、またはLinuxで開発できます。現在、Linuxではなく、主にMacを$ REASONSで使用していますが、WindowsではなくC#でそのプラットフォームでKSP mod開発を行っています。すぐにKSPの外部でxUnitテストを使用してスタンドアロンのC#コードを作成する予定です。他の開発と同じようになりますが、モノで実行する必要があります。MechJebには、Mac + LinuxでビルドするMakefileの例があります: github.com/MuMech/MechJeb2/blob/master/Makefile(リンクするにはKSPゲームdllが必要です)。
ラモント

3
通常、C#アプリケーションはどこでもネイティブに実行されません。
停止ハーミングモニカ

@OrangeDog Windowsでも、.Netフレームワークをインストールする必要があることを知っています。「ネイティブ」と言った場合、エミュレーションまたは互換性レイヤーがないことを意味します。基本的に、インストールする必要のあるプログラムやパッケージの数に関係なく、Linuxがサポートするかどうかを意味します。
ジェイコブ

2
これはUbuntuとどのような関連性がありますか?
underscore_d

2
@underscore_dどこで聞いたのかわかりませんが、そうではありません。「Ubuntu固有の質問だけではありません」のトピックを参照してください多くの、多くの問い合わせのUbuntu上の質問には、GNU / Linuxシステムの大半にも同様に適用されます。誰かがこの質問をトピック外と考えるもっともらしい理由を見つけるかもしれませんが、もしそうなら、それはそうではありません。(ところで、これはない Ubuntuの固有情報との答えを持って自分のポストの2番目の段落はUbuntuのパッケージについてです。それは他のディストリビューションをいくつかに引き継がれ、すべてではありませんが、。。)
Eliahケーガン

回答:


55

ほとんどの場合、http://www.mono-project.com/につまずくでしょう

モノについてのページは言います:

.NET Frameworkに基づくオープンソース開発プラットフォームであるMonoにより、開発者は開発者の生産性を向上させてクロスプラットフォームアプリケーションを構築できます。Monoの.NET実装は、C#およびCommon Language InfrastructureのECMA標準に基づいています。

サポートされるプラットフォームは Linuxが含まれています。


2
モノ...おなじみの音...そうそう、これは一体性に基づいています!私はそれを個別に使用できるとは知りませんでした。Unity3dの一部だと思いました。
ジェイコブ

41
Microsoftの実装の最新バージョン(.Net Core)もLinuxをサポートしています。
BlueRaja-ダニーPflughoeft

6
Monoは、コアだけでなく.net標準2.0(iirc)を実装します。
ケーシー

13
これは数年前にはいい答えだったでしょう。今ではほとんど使われていません。
コンラッドルドルフ

2
Ubuntuの最新バージョンを使用している場合は、monoを使用しないでください。多くのバグがあり、実装が貧弱です。.netコアを使用してください。私が働いているところでは、古いLinuxディストリビューションでC#アプリケーションを実行するときに発生するほとんどすべての問題は、「モノのため」というステートメントで説明できます。例外フィルターはスタックトレース、Task.Runラッパーである非同期実装、ショット全体にわたるメモリリーク、およびvalgrindサポートの欠如を失い、リークを適切に診断することすらできません。
ルカゾイド

72

はい、Ubuntu上でソフトウェアを開発できます。Ubuntu上でC#で実行されます。Mono.NET CoreはどちらもUbuntuなどのGNU / Linuxシステムをサポートしています。(Debian、Raspbian、Fedora、CentOS、Arch、Gentooなど、他のディストリビューションでも使用できます。)ご存知のように、Unity3DゲームエンジンもUbuntuをサポートしています。Unity3DはMonoを埋め込みます。

公式にコミュニティでサポートされているソフトウェアソースからUbuntuのパッケージマネージャーでインストール可能なUbuntu用のパッケージは、C#で記述され、Monoを使用しています。これには、音楽プレーヤーBanshee、ノート作成アプリTomboy、ラスターグラフィックエディターPinta、およびパスワードマネージャーKeePass(バージョン2以降)が含まれます。

Gedit、Vim、Emacsなどのほとんどのテキストエディターには、C#の構文強調表示があります。MonoDevelopVisual Studio Codeは、Ubuntu上で実行され、C#開発をサポートする2つの一般的な統合開発環境です。


10
Rider、ReSharper for Visual Studioのすべての機能を含むC#用のintellijアイデアベースIDEについても言及します。
ウィルバート

この回答を調整して、Linuxの他のディストリビューションが存在することを示唆することもできます。また、モノを提供またはサポートするため、もう少し中立的で包括的なものにすることもできます。
-user2066657

@ user2066657提案をありがとう。編集しました。Monoと.NET CoreがUbuntu(「UbuntuのようなGNU / Linuxシステム」)に限定されないことを明確にするつもりでした。しかし、さらに検討すると、私がこれを伝えようとしていることをまだ知らなかった読者には、これが明らかではなかったかもしれないことに気付きます。だから私はその部分を拡大しました。私はこの編集があなたを満足させないかもしれないことを理解しています:私はそれをより包括的にしましたがより中立ではありません。このサイトの投稿がUbuntuを強調するのは合理的です。中間部分では、ダウンストリームのUbuntuパッケージを使用したC#プログラムの例を示し、意図的にUbuntuに焦点を当てています。
エリアケイガン

OPがUbuntu以外のOSについて尋ねたいと思っていたら、おそらくUnixとLinuxで尋ねたでしょう。
ミスターリスター

@MrListerはい、同意しました。しかし、私が追加した説明によって何かが得られ、何も失われていないと思います。ただし、投稿全体を作り直すつもりはありません。たとえば、MonoDevelopとVisual Studio Codeのインストールと使用がかなり簡単なディストリビューションについて説明することを検討しましたが、やや複雑で、トーンとフォーカス(および長さ! )の投稿。
エリアケイガン

20
  1. JavaまたはPythonを使用できるように、C#(. NET Coreフレームワーク)を使用してLinux上でサーバーアプリケーションを開発できるようになりました。サーバーアプリケーションとは、主にWebアプリケーションとWebサービス(REST)アプリケーションを意味します。これは、Linuxコンテナー(Docker / K8s)およびクラウドと完全に一致します。
  2. Mono Framework(.NET実装)およびGTK#(GtkSharp)ツールキット(GTKのラッパー)を使用して、C#でデスクトップアプリケーションを開発できます。多くのプロジェクトが開発されています。このフレームワークは、過去にLinuxコミュニティの一部からある程度の抵抗を受けてきました。一部のディストリビューションとユーザーは、Monoアプリケーションを必要としませんでした。
  3. LinuxのC#を使用して、Unityエンジンでゲームを開発できます。Unity EditorはまだLinux上で実験的です。

あ、はい。C#に関する知識は、今日のLinuxシステムで非常に役立ちます。


4
.NET Coreでデスクトップアプリケーションを実行することもできます。
PmanAce

また、クロスプラットフォームのWPF再実装であるAvaloniaを使用して、Mac + Linux + Windowsでモバイル+デスクトップアプリを実行することもできます。最後に、非ガベージUIツールキット!
クリス・ボルデマン

2

.Net CoreとAvaloniaと呼ばれる新しいプロジェクトを使用して、XAMLベースのフロントエンドクロスプラットフォーム(Linux、Mac、Windows、Android、iOS、UWP)アプリを実行できるようになりました。Avaloniaはベータ版ですが、現在はかなりうまく機能しています。WPFに似ていますが、スタイル設定の機能強化のようなCSSがいくつかあります。

Linux Avaloniaは現在Gtkをターゲットにしていると思いますが、彼らは別のものに移行したいと考えています。それはこのビデオで言及されていますが、私は彼が言ったことを個人的に理解できませんでした:https : //www.youtube.com/watch?v=WESJUJWBLJ0

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.