ASP.NET MVCの新しい Razor ビューエンジンに関する Scott Guthrie のブログエントリを読み、これを読んだ後 question 使用可能なビューエンジンを比較します。
Razorは、デフォルトのビューエンジンの問題のほとんどに対処しているようです。機能の違いによって、開発者にとって魅力的な選択になるでしょうか?あなたがそれを使用できないようにするであろうどんな機能が不足していますか?
マークアップ言語を除いて、表示エンジンには他にもたくさんあります。 Spark私が見逃す機能:
私はSpark loops/ifs moreの構文-HTML <>とC#{}の波カッコを混在させると見栄えがよくありませんが、それは純粋に個人的な意見です。
Razorにも非常に有望な機能があります。インラインテンプレート。 Spark作成者がマイクロソフトに雇われたとすると、Razorが適切に記述され、非常に有用で、十分にサポートされているビューエンジンであることが期待されます。もちろん、何百もの私のSpark Razorを使用したビュー(私はSparkを使用して何十ものWebFormsビューを書き直しましたが)ですが、Razorを真剣に検討します-これは質問からしか知りませんでした、ありがとう-もちろん、これは有望に見えます。もちろん、WebFormsとは競合しません(どのビューエンジンもWebFormsより優れています)が、まだない場合は、新しいASP.NET MVCプロジェクトに適しています。別のビューエンジンへの投資が多すぎます。
ユニットテスト可能:新しいビューエンジンの実装は、ビューをユニットテストする機能をサポートします(コントローラーやWebサーバーを必要とせず、ユニットテストプロジェクトでホストできます。特別なアプリドメインは必要ありません)。
やっと!!! Microsoftがこれをサポートするビューエンジンを最終的に導入するのに8年近くかかったとは信じられません。
私には、3つの説得力のある理由があります。
コンパイル-RazorビューをDLLにコンパイルできます。ついに、.NET Webプロジェクトで適切な再利用が可能になります。 Webプロジェクトの一部でコードを.ascxファイルとして浮かび上がらせることなく、自分自身を表示する方法を知っているビジネスオブジェクトを作成できます。
Testability-クラスにコンパイルされているので、単体テストを記述して、そこにオブジェクトの模擬インスタンスをスローし、HTMLが正しいかどうかを確認できます。
IntelliSenseとTerse Syntaxは素晴らしいですが、最も重要な部分ではありません。
明らかに私は実際にはまだ評価していませんが、ASPXエンジンよりも簡潔であるという事実は、切り替えを誘発する最も説得力のある機能です。また、より適切に自動フォーマットされることを願っています。 IntelliSenseでサポートされ、MVCで提供されるという事実は、新しいプロジェクトを開始するための自然な選択になります。切り替えを行う前に、小規模なプロジェクトでそれを公平に検討します。記事を読んだだけでは、現在ASPXエンジンで実行していることで、それを使用して実行できないことは何も見つかりませんでした。
pdate: Razorを1年以上使用していて、ASPXエンジンに戻ることはありません。構文は非常に自然で表現力豊かに見えます。
見た目がすっきりしているだけでなく、レイアウトセクションの柔軟性も非常に優れており、宣言的なHTMLヘルパーは非常に便利です。これまでのところ、それを使用することの欠点は見られませんが、もちろん実際に試してみる必要があります。
Razorはforeach
にブラケットを使用します。 SparkここではXMLタグを使用します。
したがって、Sparkは、XMLプロセッサごとのビューファイルの解析と分析を完全にサポートしています。
それは大きなことではありませんが、一貫性と拡張性を示しています。