Domanda

Qualcuno (forse un fan di XSL?) Può aiutarmi a trovare qualche vantaggio nella gestione della presentazione dei dati su una pagina Web con XSL su ASP.NET MVC?

Le due alternative sono:

  1. ASP.NET (MVC/WebForms) con XSL
    Ottenere i dati dal database e trasformarli in XML che viene poi visualizzato sulle diverse pagine con modelli XSL.

  2. ASP.NET MVC
    Ottenere i dati dal database come oggetti C# (o oggetti LinqToSql/EF) e visualizzarli con codice in linea sulle pagine MVC.

Il vantaggio principale di XSL è stata la visualizzazione coerente dei dati su molte pagine diverse, come i WebControl.Quindi, correggimi se sbaglio, ASP.NET MVC può essere utilizzato allo stesso modo, ma con oggetti fortemente tipizzati.Per favore aiutami a vedere se ci sono vantaggi per XSL.

È stato utile?

Soluzione

Posso vedere che il vantaggio principale dell'utilizzo di XSLT per trasformare i tuoi dati e visualizzarli all'utente sarebbe il seguente:

  • I dati sono già in formato XML
  • I dati seguono uno schema ben definito (questo rende molto più semplice l'utilizzo di strumenti come XMLSpy).
  • I dati devono essere trasformati in una serie di formati di output diversi, ad es.PDF, WMP e HTML

Se questo deve essere l'unico output per i tuoi dati e non è in formato XML, XSLT potrebbe non essere la soluzione migliore.

Allo stesso modo, se è richiesta l'interazione dell'utente (come la modifica dei dati), finirai comunque per utilizzare il codice back-end per gestire gli aggiornamenti, quindi potrebbe rivelarsi una tecnologia troppo lontana...

Altri suggerimenti

Ho sempre riscontrato due problemi principali quando lavoro con le trasformazioni XML:

Innanzitutto tendono ad essere piuttosto lenti, l'intero file XML deve essere analizzato e convalidato prima di poter fare qualsiasi cosa con esso.Essendo XML è anche eccessivamente dettagliato e quindi più grande di quanto dovrebbe essere.

In secondo luogo, il modo in cui funzionano le trasformazioni è un po' complicato da programmare: strumenti personalizzati come XmlSpy aiutano, ma è comunque un modello diverso da quello a cui è abituata la maggior parte degli sviluppatori.

Al momento MVC è molto veloce e sembra molto promettente, ma soffre del tradizionale problema dello sviluppo web di <% E %> punture d'api su tutto il codice.L'uso delle trasformazioni XML evita questo problema, ma è molto più difficile da leggere e mantenere.

Ho usato questa tecnica in passato e ci sono applicazioni in cui la usiamo nel mio attuale posto di lavoro.(Lo ammetto, non ne sono totalmente un fan, ma farò l'avvocato del diavolo) In realtà questo è uno dei vantaggi principali, e spingere questa idea può essere piuttosto carino.Puoi creare dinamicamente l'xsl al volo e cambiare l'aspetto della pagina secondo un capriccio.È possibile farlo con gli altri metodi... sì, ma è davvero facile creare un programma per modificare al volo un documento xml/xsl.

Se pensi di utilizzare XSL per trasformare un documento XML in un altro e visualizzarlo come html (che è realmente ciò che stai facendo), stai aprendo il tuo sistema per consentire ad altri programmi di accedere ai dati sulla pagina tramite XML.Puoi farlo attraverso gli altri metodi, ma l'utilizzo di una trasformazione xsl forza l'output xml ogni volta.

Procederei con leggerezza nel creare un sistema in questo modo.Troverai molte cadute che non ti aspetti, e se non conosci XSL davvero molto bene, ci sarà anche una curva di apprendimento.

Dai un'occhiata a questo se desideri utilizzare XSLT e ASP.MVC

http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/

Jafar Husain offre alcuni vantaggi nel suo proposta per Pretty XSL, principalmente la memorizzazione nella cache del foglio di stile per aumentare il caricamento della pagina e ridurre la dimensione dei dati.Steve Sanderson ha proposto un approccio leggermente diverso utilizzando JavaScript come controller Qui.

Un altro approccio simile sarebbe quello di utilizzare XForm, sebbene il miglior supporto sia tramite a Libreria JavaScript.

Se visualizzerai solo i dati dai modelli XSL DB potrebbe essere una soluzione conveniente, ma se gestirai l'interazione dell'utente.Mhm...Non penso affatto che sarà mantenibile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top