Booの開発にはSharpDevelopがオヌヌメ

オープンソースの.NET用IDEに「SharpDevelop」というのがあるが、これがBooの開発環境としては何気におすすめだったので紹介しておく。

SharpDevelop自体はだいぶ前(1.xのころかな)に触った事があったけど、あまり出来がよくなかったのと既にVisual Studioを持っていたというのもあって使う機会がなかった。

でも今回Booを使うことになって久しぶりにSharpDevelopのサイトを覗いたら、いつの間にやらバージョンが3.0(Betaだけど)に上がっていたので勢いでダウンロードして使ってみた。

公式サイトは以下↓

使ってみる

インストール自体はインストーラが用意されているので簡単にできる。

で、起動するとこんな感じ。Visual Studioにそっくりですな。

では、まずBooのプロジェクトを作ってみよう。

プロジェクトを作るには、メニューから[File]→[New]→[Solution]を選択する。

作れるプロジェクトの種類は、

  • Class Library (DLL)
  • Console Application (コンソールアプリ)
  • Windows Application (Windows アプリ)

の三種類になる。

ここでは「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の動作がもっさり気味なので、それが解消されればにゃー。