Ich habe viele XSL-Dateien in meiner ASP.NET-Webanwendung. Viel. Ich generiere eine Reihe von AJAX-HTML-Antworten mit dieser Art von generischer Transformationsmethode:
%Vor%Ich möchte die XSL-Definitionen mit einer Spalte vom Typ xml nach SQL Server verschieben. Ich würde eine ganze XSL-Datei in einer einzigen Zeile in SQL speichern, und jedes XSL ist in sich abgeschlossen (keine Importe). Ich würde die XSL-Definition von SQL in mein XslTransform-Objekt auslesen.
In etwa so:
%Vor%Es scheint wie ein direkter Weg zu:
Hat das schon mal jemand versucht? Gibt es irgendwelche Einschränkungen?
BEARBEITEN
Vorbehalte, die die Responder aufgelistet haben:
Die zwei großen Probleme, die ich sehen kann, sind:
In Bezug auf den Festplattenzugriff, hmm ... muss die db immer noch auf die Festplatte zugreifen, um die Daten zu holen, und wenn Sie über das Caching sprechen, dann ist die db keine Voraussetzung für das Aktivieren des Caching.
Sie müssen den Update- / Suchoptionen zustimmen - Sie können zwar mit Powershell arbeiten, aber das muss auf dem Server ausgeführt werden, und das ist nicht immer eine gute Idee.
Technisch kann ich keinen Grund sehen, warum nicht (abgesehen von dem Wunsch, zu tun, schließt wie oben ein), aber praktisch scheint es ziemlich ausgewogen mit guten Argumenten, wie auch immer.
Ich speichere XSLTs in einer Datenbank in meiner Anwendung dbscript . (Allerdings behalte ich sie in einer NVARCHAR-Spalte, da sie auch auf SQL Server 2000 ausgeführt wird)
Da Benutzer ihre XSLTs bearbeiten können, musste ich einen benutzerdefinierten Validator schreiben, der den Text von TextBox in ein .Net XslCompiledTransform-Objekt wie folgt lädt:
%Vor%Was Ihre Punkte betrifft:
Datei-E / A wird durch datenbankgenerierte Festplatten-E / A ersetzt, also keine Gewinne
Bereitstellung ändert sich in ein INSERT / UPDATE-Skript, das die neuen Daten enthält
Tags und Links sql asp.net sql-server-2005 xslt