1

XSL の大ファンとして、ASP.NET 上の独自の MVC フレームワークで xsl をビューとして使用できることを非常に嬉しく思います。モデル内のオブジェクトは内部で .NET の xml シリアライザーを使用してシリアル化され、非常にアトミックな xsl テンプレートを使用して、各オブジェクトまたはプロパティがどのように変換されるかを宣言します。

例えば:

  <xsl:template match="/Article">
    <html>
      <body>
        <div class="article">
          <xsl:apply-templates />
        </div>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="Article/Title">
    <h1>
      <xsl:apply-templates />
    </h1>
  </xsl:template>

  <xsl:template match="@*|text()">
    <xsl:copy />
  </xsl:template>

このメカニズムにより、リスト内の最後のアイテムや選択されたアイテムなどに一致するテンプレートを作成するなど、デフォルトの一致するテンプレートをすばやくオーバーライドできます。 . 共通の共有テンプレートを分割して含めることができます。

でも

xsl の冗長性のマイナス面は無視できますが (Visual Studio スキーマのインテリセンス + スニペットは非常に洗練されているため、VS チームを称賛します)、モデル内のストロングタイプ オブジェクトに対してインテリセンスがないことのマイナス面は、本当に私を悩ませているものです。

ASP.NET MVC + ユーザー コントロールが実際に動作しているのを見て、本当に気に入り始めましたが、不思議です。

私たちが反復している XML である種のインテリセンスを取得する方法はありますか、または XSL の自由と宣言性を提供しながら、webforms/usercontrols/asp.net のようなストロングタイプ/インテリセンスの利点を持つ言語を知っていますか? .mvc ビュー?

(私はおそらく答えを知っています:「いいえ」、そして私はすぐにPhil Haackの非常にクールなmvcシズルを使用していることに気付くでしょう...)

4

2 に答える 2

1

オブジェクトのシリアル化された (xml) 形式を使用して、VS の XML エディターで編集できます(私は VS2008 を使用しています)。

次に、xsd スキーマをこの xml ドキュメントに関連付けます。xsd,exe 自体が生成し、シリアライゼーション/デシリアライゼーションで使用するスキーマを使用します。

インテリセンスを無料で入手できることがわかります

また、スキーマを編集して追加すると

    <xs:注釈>
      <xs:ドキュメンテーション>
        役立つ説明。
      </xs:ドキュメント>
    </xs:注釈>

XML エディタは、可能な要素または属性の名前と値を表示するだけでなく、xml スキーマに入力された注釈データを持つすべての要素について「役​​立つ説明」をポップアウトします。

xml スキーマを xml ドキュメントに関連付ける方法については、 ローカルの VS2008 ヘルプを参照するか、MSDN オンラインで検索するか、こちらを参照してください

これが役に立ったことを願っています。

乾杯、

ディミトレ・ノヴァチェフ

于 2008-11-21T04:01:48.803 に答える
0

これは一種のオフトピックですが、xsl(t)を使用してCMSを作成する途中であり、インテリセンス以外の理由でasp.netmvcをお勧めします。しかし、それは素晴らしいことです。

私はもともとxslを使用して、ビューをデータから分離していました。しかし、設計者は、すべてがhtmlのように見えたため、非常に困難であることに気づきました。アングルブラケットなどが増えました。そして、私は継続的に会話をしていました。「しかし、なぜすべてが含まれているドキュメントを作成できないのですか」

Xslも遅く、非常にメモリが不足していました。メモリ不足のエラーは恥ずかしいものであり、遅くなるまでに発生します。そしてもちろん、キャッシュはより多くのメモリを使用します。

MVCを使用して以来、振り返ることはありませんでした。本当に冒険心があれば、独自のビューエンジンを作成するオプションもあります。したがって、必要性を感じた場所にxslを少し保持することができます。

実際、 MVCContribライブラリにはそれを基にしたプロジェクトがすでにあります。

これがあなたの決定に役立つことを願っています

于 2008-12-17T12:42:38.713 に答える