過去 18 か月間、中小企業のオンライン ストアにMonoRail RC2 を使用してきました。これは、従来の ASP ページの 7 年間の災害に取って代わりました。MonoRail RC2 はうまく機能しており、1 日あたり平均 14,000 ページ リクエストを処理しています。これにより、サイトを非常に迅速に開発でき、無料で、うまく機能しました。そのために、MonoRail チームに感謝しています。
MonoRail ビットを使用しました。私は ActiveRecord ではなく iBATIS.NET を選びました。7 年前の糞のようなデータベースとの互換性を維持するために、独創的な SQL を書かなければならなかったからです。そのため、他のキャッスル ライブラリの一部について話すことはできません。
MonoRail の利点には次のようなものがあります。
- そこに入って物事を変更するのはとても簡単です。たとえば、デフォルトのルーティングの実装では、再ルーティング時にクエリ文字列が保持されませんでした (SEO の理由で、現在は廃止されている従来の ASP サイトで使用されていた古い URL 形式との後方互換性を維持するためにこれが必要でした)、HTTP 301 の発行をサポートしていませんでした。そのシナリオの永続的なリダイレクト ヘッダー。そこで、そのための MonoRail インターフェイスを実装し、構成ファイルにプラグインして、作業を開始しました。
- これはまだ ASP.NET であるため、フォーム認証、Codeproject の非常に優れたHTTP/HTTPS スイッチャー、およびキャッシュを引き続き使用できます。
- 比較的少ない驚き。1 年以上使用した後、MonoRail で悪態をついた日はほとんどありません。それはかなり良いリトマス試験紙です。一部のヘルパー クラス (FormHelper) は少し奇妙な動作をする可能性があり、ウィザード フレームワークはまったく奇妙で、パラメーター バインドによってループが発生することがありますが、頻繁に発生するわけではありません。
- ビュー エンジン (テンプレート) の選択。これをここに置いたのは、ほとんどの人がここでの選択は良いことだと思っているように見えるからです。
ただし、MonoRail には問題がないわけではありません。
- 開発の方向性の欠如。RC2 と RC3 の間の変更の数はとんでもないものでした。多くの保護された仮想メソッドがなくなり、多くのヘルパーが変更され (ビュー エンジンが静的に型付けされていない場合、これは大きな問題です)、ユニット テストのコントローラーとビューのメカニズムさえも変更されました。このため、私たちはおそらく永久に RC2 にとどまるつもりです。ASP.NET MVC がリリースされた今、MonoRail の背後にあるコミュニティがどれだけ健全であるかは不明です (ただし ayende と hammett は相変わらず熱狂的で活発です)。
- MonoRail の「事実上の」ビュー エンジンである NVelocity (少なくとも開発を開始した時点では) は、実装と保守の見通しが不健全な有望なテンプレート言語です。(動作しますか? 十分です。ただし、Java バージョンから CTRL+C CTRL+V への移植であるため、そのライブラリのソースを読まないでください。目が充血するからです。)
- NVelocity と RC2 には、複数のユーザーが同時にサイトにアクセスすると、他のユーザー向けのページが提供される可能性があるという、非常に深刻なスレッド バグが付属していました。これは最新のリリースで修正されており (Castle プロジェクトのリリースの性質上、アップグレードが非常に困難です)、回避することができました。しかし、Microsoft フレームワークで発生する可能性が非常に低い、非常に気がかりで予想外の問題でした。買い手責任負担。
MonoRail は、2007 年 6 月に、Microsoft スタック上の既存のサイトを .NET プラットフォームに移行する方法を提供してくれたことで、私たちに絶好の機会を提供してくれました。私の意見では、一般公開された Web サイトでの HTML 出力のきめ細かい制御が必要です)。(本当の理由は、私が WebForms ポストバック モデルを軽蔑しているだけだからです。) ASP.NET MVC は、その時点で Microsoft の目にはきらめきさえありませんでした。
しかし、ASP.NET MVC が存在するようになり、Microsoft が ASP.NET MVC を WebForms の代替として位置付けていることを考えると、個人的には今後のプロジェクトで ASP.NET MVC を強く検討することになるでしょう。MonoRail は素晴らしいプロジェクトであり、私たちの役に立ちました。オープンソース コミュニティには感謝していますが、私の作業台の下の引き出しに隠されている、頻繁に使用され、使い古されたツールであると私は懐かしく思っています。それがなければ、ASP.NET MVC は現在存在していない可能性があります。