Alternativa a XML / XSLT per la generazione di artefatti?

4

Lo scenario:

Un sistema deve produrre una varietà di artefatti da presentare agli utenti finali durante il normale corso degli affari. Esempi di questi artefatti sono permessi, fatture o ricevute: immagina qualsiasi app online che ti dia una di quelle pagine "stampa questa pagina per i tuoi record". Sto lavorando su un sistema che produce artefatti come questo, ma ci si aspetta che sia in grado di richiamare un artefatto generato in precedenza e di presentarlo di nuovo quando è necessario.

Attualmente, il sistema conserva i dati transazionali e ricrea la pagina "artefatto" secondo necessità da quei dati online. Questo presenta una serie di problemi:

  • Sono necessari più dati durante l'elaborazione delle transazioni rispetto a quelli utilizzati nella generazione di artefatti. Una volta completata la transazione, tuttavia, non siamo in grado di archiviare i dati transazionali perché potrebbero essere necessari per riprodurre l'artefatto in futuro.
  • La generazione di artefatti è leggermente più costosa di quella che deve essere, perché ogni volta che recuperiamo uno di questi artefatti, lo stiamo rigenerando. Francamente, questo non è un grosso problema in pratica, ma mi infastidisce.
  • Se cambiamo il modo in cui viene generato un artefatto specifico, un vecchio artefatto sarà "aggiornato" se è riprodotto. Sebbene sembri una virtù, ritengo che poiché l'obiettivo è mostrare l'artefatto come originariamente generato, questo è un danno.

Le due soluzioni più ragionevoli che ci vengono in mente sono la generazione di PDF e XML / XSLT. Non sono molto entusiasta dell'opzione PDF perché in realtà non penso di aver bisogno di memorizzare le parti statiche di ogni artefatto più e più volte.

L'opzione XML / XSLT sembra avere ancora dei meriti. In questo approccio, avrei bisogno di assemblare un documento XML per ogni artefatto contenente solo i dati necessari per quell'artefatto più un riferimento al documento XSLT corretto. Le nuove versioni del manufatto verranno implementate con un nuovo XSLT, in modo che il vecchio XML utilizzi il vecchio XSLT e il nuovo XML utilizzi il nuovo XSLT e così via.

La domanda:

Esiste un altro modello o tecnologia killer che mi manca per soddisfare questa esigenza? Questo è un sistema .Net, per quello che vale.

    
posta D. Lambert 12.07.2012 - 23:27
fonte

1 risposta

2

È possibile archiviare tutti i dati che hai pianificato di archiviare in XML nel tuo database, in tabelle unicamente a tale scopo. Questo non è più ridondante di database + XML. Ti consente anche di avere alcuni dei tuoi dati esattamente com'era al momento e alcuni aggiornati, se mai decidi di farlo.

Significa anche che la generazione da dati transazionali è più simile alla generazione da dati storici che se fosse in XML - potenzialmente il generatore di report può semplicemente usare una stored procedure invece di un'altra e mantenere il resto uguale. Potrebbe ancora essere necessario associare i dati a una versione del report.

Quindi, per rispondere alla tua domanda specifica: Sì. Un database relazionale.

    
risposta data 13.07.2012 - 01:39
fonte

Leggi altre domande sui tag