27

Asp.Net でアプリケーションをビルドした経験がありますが、現在は MVC フレームワークがより一般的になっています。Asp.Net MVC または Castle MonoRail を使用して、新しい多言語 Web アプリケーションを構築してみたいと思っていますが、どちらが適しているかわかりません。Web フォーム ビュー エンジンは好きではありませんが、Asp.Net MVC のルーティング機能は好きです。

  • 誰かがそれらの間の長所と短所について教えてもらえますか?
  • マスター テンプレートをオーバーライドするには、どの ViewEngine が適していますか?
4

4 に答える 4

27

モノレールの支持者として言えば、おそらく ASP.NET MVC を選ぶべきだと言わざるを得ません。正直に言うと、ASP.NET MVC が 3 年以内に既定のアーキテクチャになるという単純な事実は、おそらく影響を与えるはずです。この方程式は 1 年前とは異なっていました。これは、デフォルトのアーキテクチャが MonoRail と比較して深刻な生産性の問題を抱えていたためです。

技術的な長所と短所について話したい場合:

  • ASP.NET AJAX はごちゃごちゃしています (避けてください) が、現在は jQuery を使用しています。実際、jQuery のサポートは他のどの環境よりも優れています。もちろん、IDE と標準のビュー エンジンを統合した場合にのみ、それを完全に得ることができます。
  • 美的な改善がいくつかあります (たとえば、モデル情報が渡される方法は、モノレールよりもはるかにクリーンで明白です)。

また、標準のビュー エンジンを軽視しないでください。ASP.NET の場合のようにコントロールを投げる必要はありません。Boo の代わりに C# を使用するだけで、Brail と非常によく似た方法でコーディングできます。

単に醜いものがあります * パラメータのオブジェクトを取るメソッドの数。彼らが正確に何を期待しているかについてのドキュメントを見つけて頑張ってください。* インターフェイスよりも抽象クラスに対する Microsoft の好み。彼らには理由がありますが、私はまだそれが嫌いです。

また、多くの点で、MonoRail はより完全なプラットフォームであり続けます。たとえば、ASP.NET には検証やページングの抽象化はありません。また、モデルにバインドするためのヘルプは実際にはありません。ヘルパーには、モノレールの同等物と比較してほとんど機能がありません。

ただし、全体としては、ASP.NET MVC が勝者だと思います。

于 2009-02-03T16:30:20.550 に答える
10

MonoRail と ASP.NET MVC は基本的に非常に似ているため、どちらを使用しても問題ありません。MonoRail はずっと前から存在しているため、より高度な機能を備えています。

ASP.NET MVC の主な強みは、そのルーティング エンジンです。公平を期すために、MonoRail にはほぼ同等のルーティング エンジンがあり、ルーティング エンジンは実際には ASP にはないため、いくつかの変更を加えることで、MonoRail で ASP.NET MVC ルーティング エンジンを使用できます。 .NET MVC ですが、System.Web.Routing 内にあります (.NET 3.5 SP1 でリリース)。ASP.NET MVC と Visual Studio との統合もプラスであり、v1 の RTM に近づくにつれ、おそらく改善されるでしょう。

MvcContrib プロジェクトには、Spark、NHaml、Brail などの優れたビュー エンジンが含まれています。誰も「最高」と見なすことはできませんでしたが、個人的なお気に入りは Spark です。スパークの詳細: http://dev.dejardin.org/documentation/syntax

WebForms エンジンには IntelliSense があり、これは私の知る限り、他のすべてのビュー エンジンに欠けている大きな利点です。

于 2008-11-14T15:21:38.433 に答える
7

認識されている人気と Microsoft からのサポートは別として、ASP.NET MVC には、モノレールが長い間持っていたコントローラーの編成 (エリア)、ネイティブの ViewComponents、IoC を使用して最も重要なものに名前を付けることができるフィルターなど、いくつかのコア機能がまだありません。

これらの機能をすべて使用するいくつかの大きなアプリケーションがあり、それらを ASP.NET MVC に移植するのに苦労しました。

私はここ数年、モノレールを使用してきました。MVC は有望に見えますが、その柔軟性は素晴らしいですが、私がやろうとしている他のすべてのことに対して、それが存在しないことがわかり、少しプラグインする必要があることにまだ満足しています。 SharpArchitecture の別の部分である MvcContrib の部分を自分で構築すると、画像が得られます。モノレールはとても使いやすい (今のところ)。

いくつかの提案された解決策が他の解決策に対抗し始め、より主流になるため、今後数か月で事態は改善されると思います. オプションの多様性は良いことですが、私を信じてください。3 年前には、ページごとに 1 つを使用してサイトを構築できるほど多くの Web フレームワークがあった Java の世界には行きたくないでしょう!

それまでの間、念のため、MR アプリを MVC にゆっくりと移植し続けます。

于 2009-05-13T16:02:54.800 に答える
1
  1. 私はMVCが圧倒的に勝つと思います。その機能セットは非常に似ていますが、2 つのうちでより「人気」が高くなります (したがって、通常、開発コミュニティ全体でより広くサポートされ、文書化され、拡張されます)。さらに、新しい ViewEngine (Razor).. と IDE の改善が考慮され、モノレールではなく MVC を選択する価値が高まると思います。

  2. 私はほとんどすべての一般的な ViewEngine を使用してきましたが、素晴らしい StringTemplate テンプレート エンジンを利用して独自の (そのための OpenSource プロジェクトを作成した) ロールアップを終了しました。STは真の関心の分離です、IMO。その結果、タグのスープがはるかに少なくなり、より優れたアプリを作成できるようになりました。また、エンジンでタイヤをキックすることを選択した場合の簡単な紹介と参照ガイドも捨てました. これまでに展開したプロジェクトで、それを使用して非常に幸運でした。そうは言っても、Razor (MVC 3) はかなり印象的です。

于 2009-02-13T21:18:43.593 に答える