私の現在の仕事では、.NET/SQL Server ベースの CMS システムを使用しています。一部の内部使用のためにいくつかのモジュールをカスタマイズしているときに、DataGrid/DataList/Repeater コントロールにバインドされた一般的な結果セットを介してデータを返す API ではなく、API が XML を返すことに少し驚きました。ノード/コレクションであり、XSLT 変換に渡され、その方法でページにレンダリングされました。
このようなモデルを使用する利点は何ですか?
私の現在の仕事では、.NET/SQL Server ベースの CMS システムを使用しています。一部の内部使用のためにいくつかのモジュールをカスタマイズしているときに、DataGrid/DataList/Repeater コントロールにバインドされた一般的な結果セットを介してデータを返す API ではなく、API が XML を返すことに少し驚きました。ノード/コレクションであり、XSLT 変換に渡され、その方法でページにレンダリングされました。
このようなモデルを使用する利点は何ですか?
XSLT 変換を使用すると、標準の .Net グリッド コントロールとは異なるレイアウトとフォーマットを使用できます。.Net グリッドには必要以上の HTML が含まれる可能性があり、慎重に管理しないと ViewState が肥大化する可能性があるため、.Net グリッドの使用を承認しない人もいます。
ここでは、.Net グリッドがブロートウェアであるという議論が最近ありました(ただし、開発者はとにかくそれらを使用します)。
出力されるページは、html、php などの任意のタイプにすることができます。
ページが変換するだけのデータソースと xml を設定することで、他のソフトウェアで使用できる単純な「Web サービス」も即座に作成されます。たとえば、そのグリッドを RSS フィードに変換したり、そのデータを定期的にスクレイピングしてより差し迫ったアラートを送信するプログラムを作成したりするのは簡単です。
XSLT メソッドは、ASP.NET が適切に制御している MVC、単体テスト、独立した関心事に非常に適しています... そうではありません。
警告: 私は、MS が私よりも優れた html/css/js を作成できるという仮定を拒否します。ASP.NET コントロールは、扱いにくい忌まわしいものです。