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