「オンラインコンパイラ」と呼ばれるサービスがあります。これは、Webブラウザを使ってオンラインでソースコードをコンパイルしたり、実行できるサービスです。オンラインIDE(統合開発環境)をうたったサービスも登場しています。C#やVB.NETに対応したオンラインコンパイラを探してみたところ、結構見つかりました。そこで今回はその内「Compilr」を紹介させていただきます。†Compilrを使用するには、アカウントを作成する必要があります。アカウントを作成するには、メールアドレスと、ユーザー名、パスワードが必要です。これらを入力してアカウントを作成すれば、すぐに使用可能になります。Projects」の2つのボタンがあるページが表示されます。Projects」をクリック(あるいは、メニューの[Explore]をクリック)すると、Compilrで公開されている様々なプロジェクトの一覧を見ることができます。ここでプロジェクトを選択すると、そのプロジェクトを開いて閲覧することができます。自分のプロジェクト以外は編集することができません。Project]を選択)すると、新しいプロジェクトを作成するウィザードが開始されます。language」でプログラミング言語を選択します。.NET関係では、C#とVBがあります。それ以外には、C、C++、Java、JavaScript、Pascal、PHP、Python、Rubyがあります。ここではC#を選んでみます。platform」を選択します。Windows」のいずれかを選択できます。4.0」を選択してみました。template」を選択します。Application」を選択できます。Game」を選択できます。Application」を試してみましょう。「Next」ボタンをクリックすると、次のページに移動します。name」には、プロジェクトの名前を入力します。日本語は文字化けしますので、使わないほうがよさそうです。URL」が自動的に決まります。Application1」にしました。するとプロジェクトURLは「http://compilr.com/(アカウント名)/c-sharp-console-application1」になりました。公開されたプロジェクトの場合は、このURLのページから誰でもプロジェクトの閲覧や実行ができます。type」を「Private」か「Public」のどちらかから選択します。「Public」にした場合はプロジェクトが公開されます。公開したくないならば「Private」にします。無料では「Public」しか選択できません。「Private」を選択するためには、アカウントのアップグレードが必要です。category」でプロジェクトのカテゴリを選択します。これはオプションですので、選択しなくても構いません。「Next」をクリックすると、次のページに移動します。description」にプロジェクトの説明を入力できますが、しなくても大丈夫です。「Finish」をクリックすれば、プロジェクトが作成されます。新しいプロジェクトを作成した直後の画面は以下のようになります。左側にコードエディタのペイン、右側にプロジェクトに追加されているファイルを表示するペインがあります。コードエディタはタブで複数のコードを開くことができます。エディタの左側には行番号が付いています。コードはシンタックスハイライトで色付けされています。コードを入力して改行すると、自動でインデントされます(VBではされませんでした)。IntelliSenseや自動でメンバを表示する機能のような高度な機能はありません。画面の一番上にはメニューが、その下にはツールバーがあります。状況によって、コードエディタの下にConsoleとErrorsタブが表示されます。†プロジェクトが作成された直後のコードは、次のようになっています。SampleNamespace早速実行させてみましょう。実行させるには、ツールバーにある三角のボタンをクリックするか、メニューで[Bulid]-[Run]を選択します。するとコードエディタの下に「Console」が現れ、以下のように表示されます。World!」が表示されました。次にプロジェクトをビルドしてみましょう。Runボタンの左にある金槌のボタン(または、メニューの[Build]-[Build])でビルドできます。Project...」という画面が表示されます。してビルドに成功すると、ダウンロードできるようになります。「Download」ボタンをクリックするとZIPファイルをダウンロードできます。このZIPファイルの中に「app.exe」というファイルが入っています。これがビルドされてできた実行ファイルです。以下の様な間違のあるコードを実行してみました。SampleNamespaceすると、「Errors」タブがコードエディタの下に現れ、エラーが発生したファイル、行、列、説明が表示されました。†Console.ReadLineを使用できるか、以下の様なコードで試してみました。SampleNamespaceすると、「Console」で「------------------------------」が表示された後、入力待ちになりました。ここで「hello」と入力してエンターキーを押すと、以下のように表示されました。????????????????????????????????????????????????????????????hello??????????????????Console.ReadLineによるユーザーの入力は成功しました。日本語が文字化けしました。ブラウザ上だけでなく、ビルドしたEXEファイルをダウンロードして実行しても文字化けしました。Out」となり終了します。20秒以内に入力しないといけないようです。†ファイルへの書き込み、読み込みができるか、以下の様なコードで試してみました。SampleNamespaceするとConsoleにhello!/root/bin/app.exe/root/bin/hello.txtと表示され、ファイルへの書き込みと読み込みができたことが分かりました。作成されたファイルはプロジェクトを実行した時に削除されるようなので、永続的に保存はできません。†コードを実行すると、Consoleの先頭に「Note」として、「startとタイプしても実行できる」というようなことが書かれています。実際にConsoleに「start」と入力してエンターキーを押してみると、「Run」ボタンを押した時と同じように実行させることができました。この方法ならコマンドライン引数も指定できるようなことが書かれているので、試してみました。コードを以下のように書き換えて、コマンドライン引数を表示するようにしました。/c」と入力し、エンターキーを押してみました。結果は以下の通りで、残念ながらコマンドライン引数は取得できませんでした。Exited.Environment.GetCommandLineArgsメソッドも試してみましたが、やはりコマンドライン引数を取得することはできませんでした。†デフォルトでは参照に「System」と「System.Data」と「Syatem.Xml」が追加されています。参照を変更(追加あるいは削除)するには、「Projects」タブで「References」フォルダを右クリックしてメニューを表示し、「Edit」を選択します。References」というウィンドウが表示され、追加できる参照の一覧が表示されます。このリストで選択状態になっている(白地に黒文字の)項目が現在プロジェクトに追加されている参照です。項目をクリックすることで選択状態を変えられますので、必要な参照だけを選択状態にしてから「Save」ボタンをクリックすれば、それがプロジェクトに反映されます。追加できる参照は以下の通りです。「Projects」タブには、「Libraries」というフォルダもあります。Libraries」という項目が現れます。これでDLLをアップロードできるのかな?ということで、実際にやってみました。Files」というウィンドウが表示されます。Files」ボタンをクリックすることで、アップロードするファイルを選択できます。ここで自分で作成した「ClassLibrary1.dll」というライブラリを選択してみました。するとなぜかファイルをダウンロードするかブラウザから聞かれます。わからないのでとりあえずダウンロードしてみましたが、ファイルの中身はアップロードしたファイル名が書かれたテキストだけでした。ダウンロードしなくてもアップロードされるようです。Files」ウィンドウを閉じても、Librariesフォルダには何も表示されません。F5キーを押してブラウザのページを更新すると、Librariesフォルダに「ClassLibrary1.dll」が表示されました。無事に「ClassLibrary1.dll」を追加できたようなので、このライブラリを使ったコードを書いて実行してみました。残念ながらエラーが発生し、うまく行きませんでした。†ライブラリの追加には失敗しましたが、今度はcsファイルの追加に挑戦してみます。Files」ダイアログが現れます。Files」ボタンをクリックすると、ファイルをアップロードすることができます。ここでは、ルートのフォルダを選択して、「Class1.cs」というファイルをアップロードしてみました。すると先ほどと同じように、なぜかファイルをダウンロードするか聞かれます。Files」ダイアログを閉じても「Projects」にはアップロードしたファイルが表示されませんが、ページを更新すると表示されます。アップロードしたファイルはCompilrで開いて編集することもできます。結果的に新しいファイルを作成してコピペするのと変わらないようですが、大量のファイルをアップロードしたい時に重宝しそうな機能です。†メニューの[File]-[Export]によって、プロジェクトに追加されているファイルをダウンロードすることができます。ダウンロードされるファイルはZIPで、その中にファイルが入っています。†メニューで[View]-[Settings]を選択(あるいは、「Projects」タブでプロジェクトを右クリックしてコンテキストメニューを表示し、[Settings]を選択)して、プロジェクトの設定を変更できます。platform」と同じです。Application」の他に「Library」を選択できます。いうことはライブラリも作成できるのかと思い試してみましたが、ビルドしてできたファイルは「app.exe」でした。Class」には、メインとなるクラスを名前空間付きで入力できます。Application」以外のプロジェクトも作成してみました。Application」のプロジェクトには、csファイルが2つ作成されます。1つはエントリポイントを持つメインクラスで、もう1つはフォームクラスです。フォームデザイナはありませんので、コントロールの追加などは自分でコードを書く必要があります。ビルドはできますが、オンラインで実行しようとするとエラーが発生します。Game」で作成されるプロジェクトは、追尾カメラサンプルを元にしたもののようです。ビルドはできますが、オンラインで実行はできません。Profile」が加わり、「Reach」か「HiDef」かを選択できます。†Compilrでできることは限られていますが、アイデア次第では面白いことができるかもしれません。日本語が使えないのは残念です。次回は別のオンラインコンパイラを試してみたいと思います。