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シズルを使用していることに気付くでしょう...)