ASP.NETMVCでいくつかの異なるビューエンジンを使用できることを知っています。
- ASPX、明らかに
- NVelocity
- 点字
- NHaml
- etal..。
デフォルトのASPXビューエンジンは、ASP.NET WebFormsのバックグラウンドから来ているので、私には最も理にかなっているようです。
しかし、私はそれぞれの長所と短所を理解し、ほとんどの人が何を使用しているかを確認したいと思いました。
StackOverflowはどちらを使用しますか?
ASP.NETMVCでいくつかの異なるビューエンジンを使用できることを知っています。
デフォルトのASPXビューエンジンは、ASP.NET WebFormsのバックグラウンドから来ているので、私には最も理にかなっているようです。
しかし、私はそれぞれの長所と短所を理解し、ほとんどの人が何を使用しているかを確認したいと思いました。
StackOverflowはどちらを使用しますか?
Sparkを使用しています。HTMLとコードの間の流れは素晴らしいです。スコット・ハンゼルマンも、毎週のソースコードレビューの投稿で投稿しました。私は本当にそれをたくさん掘っています。主な機能の1つは、ビューの事前コンパイルです。
「StackOverflowはどちらを使用しますか?」
Webフォーム。
私はジェフ・アトウッドに彼のタグスープの投稿に関する彼の決定について尋ねました。彼は返事をしなかった-私は彼が行方不明の終了タグを探すのに忙しかったと思う;-)
NHamlは、その簡潔さで私のお気に入りです。ASPXやNVelocityのような従来の「コードが挿入されたHTML」テンプレートシステムとは非常に異なって見えることを考えると、人々はそれを好きか嫌いかのどちらかです。
編集:
@ベン、
コンパイルダウンする他のビューエンジンがあります(NHamlはその1つです)ので、それらはカスタムHTMLヘルパーをサポートします。現在解釈されているビューエンジンがすべて最終的にコンパイルモデルになってしまうのを見ても驚かないでしょう。
Microsoft は最近、新しいビュー エンジンである Razor を発表しました。
かなり面白そうです: http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx
地球上のほとんどの人はASPXを使用するだけです。なぜなら、それが彼らが知っていることだからです。もう1つの優れた利点は、コンパイルされた性質です...したがって、型安全性とインテリセンスを取得できるだけでなく、パフォーマンスの利点も取得できます。
私が見る欠点は、それが非常に冗長であるということです。私はアプリをNVelocityに変換し、その見た目がいかにきれいであるかに驚いていました。問題は、NVelocityでは機能しないものがたくさんあり(独自のカスタムビューヘルパーなど)、ドキュメントが大幅に不足していることです。
MvcContribに、独自のHtmlExtensionタイプを登録できる機能を追加しましたが、より良い解決策が出るまでは、それはバンドエイドです。
過去にNVelocityを使用しました。ほとんどの場合、コードは非常にクリーンで簡単に理解できます。ただし、通常は、事前に XSLT ファイルによって埋められたいくつかの ViewData 変数に過ぎません。したがって、私のビュー エンジンは、XSLT (好き嫌いは分かれますが、拡張メソッドを使用すると非常に便利です) と NVelocity の両方になると思います。
しばらくの間、MonoRail で NVelocity を使用してきましたが、最近、Asp.Net MVC と MonoRail の両方でSparkに切り替えました。構文は私には非常に自然に思えますが、それは当然のことだと思います。;)