11

そのため、ASP.NET Web フォームを使用するのに十分な時間を費やしてきたので、それらを使用するよりも従来の ASP に戻りたいと思うようになりました。しかし、ASP.NET MVC が成熟するまでは、ASP.NET MVC に移行することをためらっています。オープンソースの代替手段はありますか?

私が探している主なものは、簡単に習得でき、プロトタイプを作成して実行できるものです。参考になれば、私の主な好みは Python の「ミックス アンド マッチ」アプローチです (たとえば、web.py/SQLAlchemy/当時の私の空想に合ったテンプレート エンジンなら何でも)。

4

5 に答える 5

11

過去 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 は現在存在していない可能性があります。

于 2008-11-19T05:38:57.717 に答える
6

個人的には、CastleProject による ASP.NET MVC と MonoRail の両方を試しました。私は他の CastleProject ライブラリを本当に楽しんでいますが、CastleProject MonoRail モデルよりも ASP.NET MVC 実装モデルを楽しんでいることがわかりました。ASP.NET MVC がリリースに jQuery を含めることを発表した今、私は本当に興奮しています。最終的には、使用する他のライブラリに依存すると思います。NHibernate、ActiveRecord、Castle Windsor を使用している場合は、おそらく MonoRail ライブラリをお楽しみいただけます。これらのライブラリを使用しない場合、または Microsoft Enterprise Libraries (現在、私が働いている会社の標準) を好む場合は、ASP.NET MVC がニーズにより適していることがわかるでしょう。Scott Guthrie 自身が ASP.NET MVC に焦点を当てているため、すぐになくなるとは思えません。実際には、

于 2008-11-19T05:30:54.333 に答える
1

私が経験していない別の代替手段はProMeshです。個人的には、ASP.NET MVC に移行しています。

于 2008-11-19T04:08:00.023 に答える
0

完全にテストしたわけではありませんが、興味深い代替案の 1 つにMonoRailがあります。

于 2008-11-19T03:39:19.910 に答える
0

ASP.NET MVC は、成熟したものとして急速に受け入れられるようになるはずです。ベータ版であり、ほぼ機能が完成したと思われる現在、人々がそれを採用する割合は増加し続け、おそらくさらに急激になるでしょう. 近い将来に RTM/RTW がリリースされることが約束されているため、今こそ導入を開始して、すぐに使用できるようにするのに最適な時期です。

ASP.NET MVC に特定の欠点がある場合は、必ず Microsoft に知らせてください。 Scott Guthrieはフィードバックを非常に受け入れやすく、MVC Contribプロジェクトは提案を受け付けており、ライブラリを通じて利用可能な拡張機能の素晴らしいコレクションを持っています。

于 2008-11-29T17:46:05.643 に答える