41

ASP.NETMVC用の新しいRazorビューエンジンに関するScottGuthrieのブログエントリを読み、利用可能なビューエンジンを比較するこの質問を読んだ後

Razorは、デフォルトのビューエンジンの問題のほとんどに対処しているようです。開発者としてのあなたにとって、どのような機能の違いが魅力的な選択になりますか?あなたがそれを使うのを妨げるであろうどんな機能が欠けていますか?

4

6 に答える 6

23

ユニットテスト可能:新しいビューエンジンの実装は、ビューをユニットテストする機能をサポートします(コントローラーやWebサーバーを必要とせず、任意のユニットテストプロジェクトでホストできます。特別なアプリドメインは必要ありません)。

やっと!!!Microsoftがこれをサポートするビューエンジンを最終的に導入するのに約8年かかったとは信じられません。

于 2010-07-04T14:12:42.533 に答える
22

マークアップ言語以外にも、表示エンジンにはまだまだたくさんのことがあります。私が見逃すSparkの機能はほとんどありません。

  • C#(マクロ)ではなく、同じマークアップ言語を使用してhtml拡張機能を記述します-Razorもこれをサポートしているようですが、メソッド/パラメーターのオーバーライドをサポートしていることを願っています。
  • カスタムタグ(<Tag />を使用するには_Tag.sparkを記述します);
  • varIsFirst、varIndexなどの自動生成された変数。
  • 特別な式の形式(条件付き属性の場合は?{}、エラーをスキップする場合は$!{}など)。
  • 優れたマスター/部分レイアウトのサポート。マークアップの一部をマスターで1回だけレンダリングするように部分的に指定する機能が含まれます(スクリプトに含まれるなど)。
  • WebFormsマークアップを引き続き使用できます。互換性とインクリメンタルアップグレードに最適です。
  • ""と''の両方の引用符を相互に使用するためのサポート(非常に便利)。

私はループ/ifsのSpark構文が好きです-HTML<>とC#{}中括弧を混ぜてもあまり見栄えが良くありません-しかしそれは純粋に個人的な意見です。

Razorには、インラインテンプレートなど、非常に有望な機能もあります。Sparkの作成者がMicrosoftに採用されたことを考えると、Razorが適切に記述され、非常に便利で、十分にサポートされているビューエンジンになることが期待されていると思います。もちろん、Razorを使用して何百ものSparkビューを書き直すことはしません(ただし、Sparkを使用して何十ものWebFormsビューを書き直しました)。しかし、私は確かにRazorを真剣に検討します-私はあなたの質問からこれを見つけただけです、ありがとう-そして私が今見ているものは有望に見えます。もちろん、WebFormsとは競合しませんが(どのビューエンジンもWebFormsよりも優れています)、別のビューエンジンにあまり投資していない場合は、新しいASP.NETMVCプロジェクトに適しているように見えます。

于 2010-07-04T14:04:36.057 に答える
15

私にとって、3つの説得力のある理由があります。

  1. コンパイル-RazorビューはDLLにコンパイルできます。ついに、.NETWebプロジェクトで適切な再利用が可能になりました。Webプロジェクトの一部でそのコードを.ascxファイルとして浮かび上がらせることなく、それ自体を表示する方法を知っているビジネスオブジェクトを持つことができます。

  2. テスト容易性-クラスにコンパイルされるので、単体テストを記述し、オブジェクトのモックインスタンスをスローして、HTMLが正しいかどうかを確認できます。

  3. IntelliSenseTerse構文は優れていますが、最も重要な部分ではありません。

于 2010-07-07T08:07:31.640 に答える
4

明らかに私はまだ実際にそれを評価していませんが、それがASPXエンジンよりも簡潔であるという事実は、切り替えを誘発するための最も魅力的な機能です。私はそれがよりうまく自動フォーマットされることを願っています。インテリセンスでサポートされ、MVCで提供されるという事実は、新しいプロジェクトを開始するための自然な選択になります。切り替えを行う前に、小さなプロジェクトでフェアショットを出します。記事を読んだだけでは、現在ASPXエンジンで行っていることではできないことは何もわかりませんでした。

更新:私はRazorを1年以上使用しており、ASPXエンジンに戻ることはありません。構文は非常に自然で表現力豊かに見えます。

于 2010-07-04T13:26:10.757 に答える
0

見た目がすっきりしていることに加えて、レイアウトセクションの柔軟性は非常に良く見え、宣言型HTMLヘルパーは非常に便利に見えます。これまでのところ、それを使用することにマイナス面は見られませんが、もちろん実際に試してみる必要があります。

于 2010-07-04T14:06:05.997 に答える
0

かみそりはブラケットを使用します。つまり、foreachものに使用します。SparkはここでXMLタグを使用します。

そのため、SparkはXMLプロセッサごとのビューファイルの解析と分析を完全にサポートしています。

Mabyeは大したことではありませんが、一貫性と拡張性を示しています。

于 2010-07-05T11:35:25.717 に答える