- PR -

.NETをWindows以外のプラットフォームで使えますか?

投稿者投稿内容
Atsushi.Eno
ベテラン
会議室デビュー日: 2003/04/23
投稿数: 60
投稿日時: 2003-07-30 05:35
引用:
CLIについては、Microsoft shared source CLIのリンク先にあるECMA-334および
ECMA-335に仕様があります。


そうですね。しかし、私の見た限り、2nd editionでは、ライブラリの内容を記述したXMLが、ごっそり消えて無くなっています。

引用:
また、業務で使うことを前提とする場合は、まずライセンス条項を確認する必要があります。


「何の」ライセンス条項の話か読み取れませんでしたが、APIやフレームワークには著作権はありません。sscliは研究目的等に限定された非商用ライセンスだと記憶しています。dotGNUは(ライブラリも含めて)GPL、Monoは(部品によって)GPL,LGPL,MIT/X11のいずれかです。

引用:
Microsoftや、System.Windowsなど、明らかな名前付けがされているように思います。それ以外は動くはずです(仕様上)。


これは違います。ECMAの「仕様」の話だとしたら、(改版前の仕様の話になりますが)ECMA CLIではASP.NETやADO.NETはおろか、W3CのDOMすらサポートされません。ランタイムとしてのCLIの「仕様」の話だとしたら、MicrosoftやSystem.Windows.Formsとそれ以外(たとえばSystem.Runtime.InteropServices)に違いはありません。

この辺の記事が参考になると思います。
http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20030527/1/

(あ、この記事の読者さんでしたら、Mono projectで発表されたばかりのWineパッケージを試してみることをおすすめします。サンプルはすんなり動きました。)

引用:
また、System.Windowsについても、近日中に動くようになると思われます。というのも、Borland社が「Linux版のC# Builderを出す」というような発表をしているからです。


Linux版C#Builderが出ることと、それが.NET Framework互換環境上で動くこととは、直接の繋がりは無いような気がします。VisualStudio.NET2002のdevenv.exeも、有効なCLRヘッダを持つ.NETアプリケーションではありませんね。

引用:
GUIに関して、クラスライブラリがどうあった方がすっきりするのか私にもよく分かりません。例えば、Unix、Linux、FreeBSDなどのUNIX系のFrameworkの場合、System.XWindowとか、そういうのがあった方がいいんですかね?


Windows Forms以外の、Linuxらしい or portabilityの高いGUIライブラリなら、既にいくつかあります。
XSharp http://savannah.gnu.org/cgi-bin/viewcvs/dotgnu-pnet/pnetlib/Xsharp
Gtk# http://gtk-sharp.sourceforge.net/
Qt# http://qtcsharp.sourceforge.net/
wx.NET (wxWindows) http://wxnet.sourceforge.net/
SharpWT (SWT) http://www.icsharpcode.net/OpenSource/SharpWT/

一方、同じWindows Formsでも、MonoにはWine版、Gtk#版、Gtk版、XLib版とあるそうです。

引用:
なるほど。でも、あれですね。LinuxでSystem.Windowsをサポートするというのもなんでね。GUIの文化はOSごとにあるわけですから、かなり違和感があるような気がします。


同感です。もっとも、Windows FormsサポートはMono projectの注目点のひとつになっているようですが、当のプロジェクトのページ曰く "System.Windows.Forms is brain-dead in certain areas" だそうです。
http://www.go-mono.com/faq.html#gui

引用:
うーん、自分の考えとしては例外は無いほうがいいと考えます。
(中略)
もし、例外を許すようなら.NET FrameworkはWindowsだけでいいのでは、と考えます。


.NET FrameworkはMicrosoftの製品なのですから、例外はWindowsだけで閉じている(*nixでしか使えないAPIを含まない)のが、Windows企業としてのMicrosoftにとっては良いのかもしれません。

スキルアップ/キャリアアップ(JOB@IT)