SAGA SITE

夢をプロトタイピング

LinuxでC#のプログラムを動かす方法

DDDの本を読んでいて、ふと疑問に思ったことは、C#で書いたコードをWindowsではなくLinux上で動かすことはできるのだろうか?ということ。

調べてみたら、Linux用のランタイム(実行環境)が用意されていて、ある程度は可能なようです。

 

 

 

.NET Core

ja.wikipedia.org

 

.NET(旧称 .NET Core)は、.NETを実装したフリーでオープンソースクロスプラットフォームマネージソフトウェアフレームワークである。

.NET 5以降は、.NET FrameworkおよびXamarin/Monoの機能が統合され、それらの後継にもなっている。

 

 

docs.microsoft.com

 

 

docs.microsoft.com

 

Ubuntuに.NET(dotnet)をインストールすれば、C#で書いたコードをコンパイルして実行できるみたいです。

 

 

 

 

 

MONO

GUIを作りたい場合は、現時点だとまだ.NETは対応が不十分ですが、MONOを使えばいけるようです。

 

ytyaru.hatenablog.com

 

LinuxではMonoDevelopを使うことでGUIアプリ開発できる

MONOが.NET Frameworkをラップしてくれるから

 

LinuxでのdotnetGUIアプリ開発できない

.NET Frameworkが使えないため

Windowsでなら使えるはず

 

MONO vs Core

結論:CoreよりMONO。MONOもCoreもクロスプラットフォームを売りにしている。

しかし実際はMONOのほうが優秀。

 

 

ja.wikipedia.org

 

Mono(モノ)は、GNOMEプロジェクト創設者のミゲル・デ・イカザが開発した、Ecma標準に準じた.NET Framework互換の環境を実現するためのオープンソースのソフトウェア群、またそのプロジェクト名である。

2018年3月現在、マイクロソフトの子会社であるXamarinと.NET Foundationが開発、販売、サポート業務を行っている。

共通言語基盤 (CLI) の実装やC#コンパイラなどが含まれる。

 

 

d.hatena.ne.jp

 

MonoDevelop【ものでべろっぷ】

UNIX/GNOME用のC#/.NET統合開発環境(IDE)フリーソフトウェア

オープンソース.NET Frameworkの実装Monoと併用する。

 

 

ja.wikipedia.org

 

MonoDevelop(Xamarin Studioとも呼ばれる)は、Monoプラットフォーム上で動作するオープンソース統合開発環境

MonoとGTKが対応する環境であればオペレーティングシステム (OS) を問わず動作させることが出来る。

 

 

www.monodevelop.com

 

MonoDevelop enables developers to quickly write desktop and web applications on Linux, Windows and macOS.

It also makes it easy for developers to port .NET applications created with Visual Studio to Linux and macOS maintaining a single code base for all platforms.

 

MonoDevelop

 

 

 

 

 

ちょっと面倒くさそうですが、Linux上でC#のプログラムを動かすことは可能でした。