VS StandardEdition以上だと、MonoRailのインストーラで、MonoRail Projectというプロジェクトテンプレートが作られて、かなり簡単に開発を進めれるのですが、ExpressEditionの場合は、開発を始めるまでも一苦労です。以下にその手順を紹介します。
1. VC# ExpressEditionでクラスライブラリ作成
VC#2005 ExpressEditionで、好きなフォルダにクラスライブラリプロジェクトを作成します。このフォルダは後に、WebのDocumentRootになるので注意。ちなみにMonoRailは、VS2008に公式には対応していないそうです。
2. 参照設定追加
以下のライブラリを参照設定に追加します
- System.Web
- Castle.MonoRail.Framework
- Castle.MonoRail.Views.AspView
System.Webは最初から.NETにあります。Castle.MonoRail.Frameworkは、MonoRailのコアとなるライブラリで、
MonoRailのプロジェクトページからダウンロードできます。最後のCastle.MonoRail.Views.AspViewですが、これは少し特殊で、AspViewというViewEngineを使用する場合のみ必要になります。ダウンロードも別途
AspViewのサイトから行います。
3. コントローラクラスの作成
MonoRailはMVCなフレームワークです。そこで、コントローラクラスも必要になってきます。まずは、クラスライブラリプロジェクトに、「Controllers」という名前のフォルダを追加し、その中に、SmartDispatcherControllerを継承したクラスを作成します。クラスを作成したら、その中に適当な名前の関数を定義しておきましょう。この関数名はURLの一部になります。
4. ビルド出力パスの変更
次にプロジェクトのプロパティから、ビルドの出力パスを「bin\Release\ → bin\」と変更します。いらなくなったDebug、Releaseフォルダはエクスプローラから削除しておきましょう。
5. VisualWebDeveloperでWebサイト作成
VisualWebDeveloperを起動し、メニューの新規プロジェクトで、ASP.NET Webサイトを作成します。このとき、場所はファイルシステムの先ほど作成したプロジェクトのフォルダを指定します。(ソリューションフォルダ、プロジェクトフォルダなどあって分かりにくいですが、binを直接含んでいるフォルダです)。すると、Webサイトは既に存在します、というダイアログが表示されるので、「既存の場所に新しいWebサイトを作成するを選んでOKを押します。プロジェクトが作られたら、DeveloperWebサーバの仮想パスを「/」にしておきます。
6. web.configの編集
web.configをプロジェクトに追加後、内容を全て消して、Minimal Web.Config for MonoRail with AspViewにあるAspView用のweb.config最小設定を貼り付ける。さらに、以下の内容を自分のプロジェクト用に編集する。
- aspviewタグ → referenceタグ → assembly属性を自分のプロジェクトの名前に
- monoRailタグ → controllersタグ → assemblyタグの内容を自分のプロジェクトの名前に
7. ビューの作成
VisualWebDeveloperのプロジェクト直下にViewsという名前のフォルダを作成。さらにその下に、コントローラ名のフォルダを作り、コントローラクラスに定義されているメソッド名と同じ名前のViewを作成します。
例
Controllerクラス名 HomeController
Controllerクラスのメソッド名 Index
作成するView Views\Home\Index.aspx
作成したViewの先頭には、次のディレクティブを書いておきます。ブラウザが真っ白なのもアレなので、動作確認用に何か文字列も書いておきましょう。
<%@ Page Language="C#" Inherits="Castle.MonoRail.Views.AspView.ViewAtDesignTime" %>
8. 動作確認
まずは、Webプロジェクトのプロパティから、開始オプション → ページを指定するで作成したページを指定します(上記の例なら、/Home/Index.mvc)。指定後はデバッグを開始してみます。ビルドエラーが発生しますが、気にせず最後に成功したビルドで実行します。初回起動時は、デバッグ用にweb.configの書き換えダイアログが表示されるのでOKを押します。手順があっていれば、HTMLが正しく表示されるはずです。