ヒマをみつけてWeb開発
その場の思い付きを、ヒマをみつけてWebサイトにしてみるブログ

開発環境をMonoDevelopへ移行しました

Sunday, 14 February 2010 12:30 by sabro

長いことVisualStudio使ってましたが、じつは去年の終わりくらいにMonoDevelopへ移行しました。MonoDevelopは、去年末に出したバージョン2.2から、Windowsを本格的にサポートしたみたいで、若干おかしい動きもありますが、開発に重大な支障なく使えてます。

移行したメインの理由は、Viモードがあるからです。VisualStudioでも有料のVimプラグインや、VimエディタからVisualStudioを操作するようなツールはあるんですが、MonoDevelopはIDEが最初からViのキー入力をサポートしており、メニューで設定をいじるだけでコードエディタでViキーバインドが使えるようになります。まだまだサポートしているキー自体は少ないですが、それでも作業効率が上がった気がします。もちろん、インテリセンスもちゃんと使えますよ( ̄∇  ̄ )

さて、お目当てはViモードだったんですが、他にもいくつか良い点がありました。

1つ目は、C#の最新の構文が使えるようになったことです。じつは、さぶろーは、VisualStudio2005を使っていました。、MonoRailが正式にVS2008をサポートしてないという話だったからです。たぶん2008でも開発は出来るだろうと思うんですけど、大事をとって2005にしていたのでした。2005は、C#2.0までしかサポートしないんで、ラムダ式、LINQ、型推論、拡張メソッドなどの便利な機能が使えません>< MonoDevelop2.2は、C#3.0をサポートしているほか、一部C#4.0をサポートしているそうです ←(これはMonoの話でMonoDevelopは関係なかったかも)。今ではラムダ式使いまくりです(^^)

2つ目は、フリーでありながらExpressEditionの制約がないことです。MonorailをVS2005 ExpressEditionで開発する方法まとめで書いたとおり、ExpressEditionではVSC#とVSWDを切り替えつつ開発していく必要があり、プロジェクト構成も汚くなりがち。MonoDevelopでは、VSのStandardEdition以上と同じく、1つのIDEでクラスライブラリも、ASP.NETプロジェクトも同一のソリューション上で開発できます。

3つ目は、Monoで動かない機能は、そもそも作れないようになっていることです。VisualStudioで作って、Linux上のMonoVMで動かそうとすると、Monoでは動作しないような場合があるんですが、MonoDevelopはMonoと足並みを揃えて開発されているので、そのようなことがありません。MonoVMで動かしたいという方は、検証が楽になると思います。

もちろん、良い点だけではなく、不満点もいくつかありました。

  • MonorailのViewEngineの1つ、AspView用のaspxファイルでで開けないものがある
  • デバッグ時に、変数の値がなかなか表示されないことがある

 

aspxが開けなかった問題は少し面倒でしたが、別途テキストエディタで開いて編集しています。

最後に、移行時に行なった作業ですが、MonoDevelopはVisualStudioのプロジェクトをそのまま開くことが出来るので、基本的には作業不要でした。ただ、日本語は文字化けしたので、Shift-JISから、UTF-8への変換だけ行ないました。

さぶろーは、かなりMonoDevelop気に入ってしまいましたが、みなさんどう感じましたでしょうか。MonoVM上でプログラムを動かしたい方にはオススメです( ̄∇  ̄ )

Tags:   , , ,
Categories:   .NET
Actions:   Permalink | Comments (45) | Comment RSSRSS comment feed

MonorailをVS2005 ExpressEditionで開発する方法まとめ

Wednesday, 26 March 2008 16:03 by sabro

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が正しく表示されるはずです。

Tags:   ,
Categories:   .NET
Actions:   Permalink | Comments (41) | Comment RSSRSS comment feed