Booの開発にはSharpDevelopがオヌヌメ
オープンソースの.NET用IDEに「SharpDevelop」というのがあるが、これがBooの開発環境としては何気におすすめだったので紹介しておく。
SharpDevelop自体はだいぶ前(1.xのころかな)に触った事があったけど、あまり出来がよくなかったのと既にVisual Studioを持っていたというのもあって使う機会がなかった。
でも今回Booを使うことになって久しぶりにSharpDevelopのサイトを覗いたら、いつの間にやらバージョンが3.0(Betaだけど)に上がっていたので勢いでダウンロードして使ってみた。
公式サイトは以下↓
使ってみる
インストール自体はインストーラが用意されているので簡単にできる。
で、起動するとこんな感じ。Visual Studioにそっくりですな。
では、まずBooのプロジェクトを作ってみよう。
プロジェクトを作るには、メニューから[File]→[New]→[Solution]を選択する。
作れるプロジェクトの種類は、
の三種類になる。
ここでは「Windows Application」を作成することにする。[Name]に適当なプロジェクト名を入力して、[Create]ボタンをクリックでプロジェクトを作成する。
できあがったプロジェクト構成を見てみると、フォームとデザイナのコードがちゃんと分離されて作られている。
フォームのコードは以下のようになっている。
MainForm.boo
namespace WinFormTest import System import System.Collections import System.Drawing import System.Windows.Forms partial class MainForm: def constructor(): // The InitializeComponent() call is required for Windows Forms designer support. InitializeComponent() // TODO: Add constructor code after the InitializeComponent() call. [STAThread] def Main(argv as (string)): Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault(false) Application.Run(MainForm())
なんと!Booにはpartialクラスまであるんですね。namespaceの宣言とかもあって、みた感じほとんどC#と変わらないですね。
もちろんフォームデザイナも用意されているので、ポトペタで簡単にUIをデザインする事ができる。
イベントハンドラもお馴染みの方法(UI部品をダブルクリック)で追加することができる。
ボタンのダブルクリックで追加されたイベントハンドラが以下。
private def Button1Click(sender as object, e as System.EventArgs): MessageBox.Show(textBox1.Text)
テキストボックスの値をメッセージボックスで表示しとく。ちなみにはコードエディタはIntellisenceをサポートしている。
あとは「F8」キーでビルド、「F5」キーでデバッグ実行ができる。
これだけできれば十分実用に耐えられるレベルだと思う。
他にもNUnitと統合されてたり、リファクタリング機能やBoo←→C#間のコード変換といったSharpDevelopならではという機能もあったりするので結構使えそう。
あとは若干UIの動作がもっさり気味なので、それが解消されればにゃー。