XSL(like)宣言型言語は、strongtypedモデルに対するMVCビューとして?
-
08-07-2019 - |
質問
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>
このメカニズムにより、リストの最後のアイテムや選択したアイテムなどに一致するテンプレートなど、デフォルトの一致するテンプレートをすばやくオーバーライドできます。また、.NETのxsl拡張オブジェクトを使用すると、ほんの少しの余分なグリップが可能それが必要です。共通の共有テンプレートを分割して含めることができます。
ただし
xslの冗長性の欠点を無視することはできますが(Visual Studioスキーマインテリセンス+スニペットは本当に滑らかで、VSチームを称賛しているため)、モデル内のstrongtypedオブジェクトに対してインテリセンスを持たないことのマイナス面は、本当にバグです私。
ASP.NET MVC +ユーザーコントロールが動作しているのを見たことがありますが、本当に気に入っていますが、私は疑問に思います。
XMLを反復処理する何らかのインテリセンスを取得する方法はありますか、XSLの自由と宣言性を提供するが、webforms / usercontrols /のような強い型/インテリセンスの利点がある言語を知っていますか? asp.net.mvc-view?
(おそらく「いいえ」という答えを知っています。PhilHaackのクールなmvcシズルをすぐに使用することになります...)
解決
オブジェクトのシリアル化(xml)形式を使用して、VSのXMLエディターで編集できます(VS2008を使用)。
次に、xsdスキーマをこのxmlドキュメントに関連付けます。 xsd、exe自体が生成し、シリアル化/逆シリアル化で使用するスキーマを使用します。
インテリセンスを無料で入手できることがわかります!
さらに、スキーマを編集して追加する場合
<xs:annotation> <xs:documentation> Helpful Explanation. </xs:documentation> </xs:annotation>
XMLエディターは、可能性のある要素または属性の名前と値をプロンプト表示するだけでなく、また、「役立つ説明」をポップアップ表示しますそれらの1つは、xmlスキーマに入力された注釈データを持っています。
xmlスキーマをxmlドキュメントに関連付ける方法については、 ローカルVS2008ヘルプ または MSDNオンラインで見つける 、または こちら 。
これがお役に立てば幸いです。
乾杯、
ディミトレ・ノヴァチェフ
他のヒント
これはちょっとした話題ではありませんが、xsl(t)でCMSを作成するルートを辿っていたため、インテリセンス以外の理由でasp.net mvcをお勧めします。しかし、それは素晴らしいことです。
私はもともとxslを使用して、データからビューを分離しましたが、それを実行しました。しかし、設計者は、すべてがHTMLのように見えたため、ほとんどが難しいと感じました。より多くの山括弧など。そして、私は絶えず会話をしていましたが、「 everything in it ...」
Xslもスロウで、非常にメモリ不足です。メモリ不足エラーは恥ずかしいものであり、あなたがそれらを遅らせる時間までに。そしてもちろん、キャッシュはより多くのメモリを使用します。
MVCを使用して以来、実際に振り返ることはありません。本当に冒険したい場合は、独自のビューエンジンを作成することもできます。そのため、必要があると感じた場所にxslを少し置いておくことができます。
実際、 MVCContrib ライブラリには、それに基づくプロジェクトが既にあります。
これがあなたの決定に役立つことを願って