GTK#

先日からmonoに興味を持ったのでいろいろ調べ中。monoのサイトにGTK#やCairoが載ってるのでこれを機会にGTK+プログラミングを始めてみました。ちまちまお試しコーディングしていますが、見せられるほどのものはできてませんので、ここまでのまとめです。
#まだちゃんと把握できていないところがあるのでうそ書いてるかも。間違ってたら指摘お願いします。
GTK#はLinuxGNOMEが使ってるウィンドウツールキット、ようするにSystem.Windows.FormsやMFCwxWidgetsなどと同じGUIアプリを作るライブラリ。元はGTK+というC言語版があって、それを.NETにポートしたもの。.NETにポートしているということはつまりはmonoでも使える。
CairoはFireFoxレンダリングバックエンドに使われてたりする2D描画ライブラリ。.NETで言うとSystem.Drawing。GTK+レンダリングバックエンドもCairo。
もともとLinuxでも動くアプリが作りたかっただけなのでSystem.Windows.Formsでもよかったんですが、簡単な自作アプリでSplitterを動かしただけで表示がおかしくなってたのでげんなりしてGTKで行くことにしました。

インストール

Windows

http://www.go-mono.com/mono-downloads/download.html
ここのWindowsを選んでインストーラをダウンロードしてインストール、、、するとMono.Cairoでビルドエラーになるのでスルーして(笑
http://medsphere.org/projects/gtksharp/
ここのSDKのリンクからインストーラをダウンロードしてインストール。

Ubuntu(Linux)

synapticでmonodevelop入れればたぶん大丈夫(超適当^^)

Tao Framework

http://www.taoframework.com/
OpenGLLua、ODE、SDLなどをC#にポートしてくれるライブラリ。これ使えばC#からOpenGLが扱える。
ただし、これはそのまんまLinuxには持っていけなくてTao.OpenGLとは別にWindowsならTao.Platform.WindowsLinuxならTao.Platform.X11でプラットフォーム依存のコードを書く。ちなみにWindowsX11も.exeにルーチンを仕込んでおいてランタイムでスイッチすることで同じ.exeをWindows/Linux共用にはできるみたい。

Googleソースコード検索

http://www.google.co.jp/codesearch
ウェブ上で公開されているソースコードに対して検索がかけられる。GTKやCairo、Taoは日本語ドキュメントが少ないのでこれで実際に使っているコードを探すとすんごい便利。