2010-08-09 5 views
7

Me acabo de enterar de XLST en stackoverflow hoy (me encanta cómo en las computadoras se puede programar durante años y constantemente tener momentos 'malditos, ¿cómo no sabía sobre esa tecnología'). Me pregunto qué tan popular es XLST para el desarrollo web. He trabajado en algunos sitios web (usando php, ruby, y asp.net mvc) pero no soy un desarrollador web de ninguna manera.¿Por qué usar el marcado HTML en idiomas como ruby, php, asp.net mvc en lugar de XLST para convertir XML a HTML?

Es la razón por la que cada lenguaje web que mencioné anteriormente tiene su propia forma de marcar html (y así aprovechar las 'plantillas') simplemente para hacerlo más simple (más simple que en el punto y no y más orientado a un propósito específico) en que no tiene que convertir primero lo que desea mostrar a xml y luego a html? ¿O hay otras razones por las cuales XLST no parece demasiado popular para el desarrollo web? ¿O simplemente estoy loco (de nuevo, la mayor parte de mi trabajo es con aplicaciones de escritorio) y en realidad es ampliamente utilizado en páginas web? Si no está en desarrollo, ¿para qué lo usa principalmente?

Parece que ser capaz de serializar fácilmente objetos en xml con C# haría de XLST una forma muy popular de mostrar objetos en HTML en sitios web?

Gracias por alimentar mi curiosidad !!

+0

Eche un vistazo al paquete Umbraco CMS, lo uso MUCHO y su forma principal de mostrar datos es usar XSLT. Estoy escribiendo algo de XSLT en este momento para ser completamente sincero :) – Marko

Respuesta

8

mi humilde opinión hay dos razones principales por las que XSLT no es muy popular:

  • Es generally hard.
  • puede omitirlo y escribir directamente HTML, y HTML no es difícil y cuenta con el soporte de primera clase de todos los marcos web.

En resumen, hay por lo general no es suficiente razón para introducir sin embargo, otra abstracción. Las abstracciones no son gratuitas, resuelven algunos problemas pero introducen otros (es decir, el adagio "resuélvalo agregando otra capa de indirección"), por lo que los beneficios deben superar claramente los costos.

Dicho esto, hay soluciones basadas en XSLT para muchos frameworks web, por ejemplo .:

Here's an excellent article que discute XSLT para los motores de vista.

+0

(+1) Ese es el mejor artículo que he leído sobre el tema. –

+0

sí, excelente artículo! gracias – Evan

3

XSLT no es popular en frameworks web porque XML no es popular en frameworks web. Pero, si tiene datos XML, o si está dispuesto a convertir sus objetos a XML, XSLT es la mejor herramienta para transformar ese XML en HTML o XHTML.

Si está utilizando ASP.NET pago y envío myxsl

4

Como he comenzado tantas respuestas en Stackoverflow, Depende :)

Hacer lo que usted está describiendo es la adición de otra capa de abstracción entre la lógica de la aplicación y la salida de la pantalla; e introduciendo otro idioma. Puede haber razones muy convincentes para hacerlo, pero la parte importante a tener en cuenta es que necesita reconocer y cuantificar la necesidad para poder entender si vale la pena.

Parece que la posibilidad de fácil ...

Al igual que con la mayoría de las cosas en el desarrollo de software, algo que parece fácil después de unas horas de ponderación resulta ser bastante complejo y complicado cuando en realidad tratar de hacerlo. Esto es especialmente cierto aquí, porque he construido exactamente lo que está describiendo en ASP.NET. Proporciona un mecanismo muy interesante para desvelar sitios, ya que solo tiene que definir sus esquemas XML modelo y cualquiera puede escribir un XSLT para transformarlo. Pero XSLT es como un túnel de un solo sentido. No puede (fácilmente) llegar hacia atrás o hacia los lados para extraer información adicional que no estaba incluida en el modelo original: "datos periféricos", por así decirlo. De hecho, es difícil saber realmente qué está pasando en la aplicación.

Además, XSLT es muy detallado, y (en muchos sentidos) un lenguaje crudo. Esto hace que ... desagradable hacer cosas como bucles, y bastante tiempo para hacer algo como una declaración if-else *. Un XSLT que generó algo así como, por ejemplo, la página que está mirando en este momento probablemente tendría varios miles de líneas de longitud, en la que está agregando además del código de la aplicación que tiene que escribir de cualquier manera.

Es simplemente un costo adicional que puede o no valer la pena, dependiendo de lo que esté tratando de lograr.

* Por ejemplo, una vez vi a un desarrollador intentar escribir un control de buscapersonas (por ejemplo, "primero | anterior | 1 | 2 | 3 | siguiente | último") en XSLT. Todavía la visitamos en el sanatorio de vez en cuando.

+0

+1, gracias por su respuesta! Estoy de acuerdo en que las cosas que parecen fáciles por lo general terminan siendo las más complejas :) – Evan

1

Cuando descubrí por primera vez XSLT estaba emocionado porque podía escribir marcas de presentación semánticamente correctas, y ya no tendría que escribir tantos hacks y usar tantas capas anidadas de <divs> solo para obtener el efecto que quería - XSLT podría hacer todo eso por mí!

Entonces me di cuenta de que XSLT era un lenguaje extraño, difícil de escribir y doloroso para escribir. Creo que otros desarrolladores web han descubierto lo mismo y se han apartado de él.

¿Cuál es el punto cuando puedes simplemente escribir HTML directamente y evitar una capa adicional de abstracción? Y si su aplicación es lo suficientemente compleja como para garantizar eso, entonces hay muchas alternativas mejores, más simples y más potentes (otros lenguajes de plantillas).

1

El diseño de una página web a menudo se entrega a los diseñadores.

Una cosa sobre los diseñadores web es que saben HTML (si tienes suerte) pero no van a saber XSLT.

1

Es desagradable hacer bucles y sentencias if-else en XSLT como si fuera desagradable martillar con un destornillador. No hagas eso. El comportamiento de un script XSLT depende de los datos, solo necesita encontrar las coincidencias correctas para sus plantillas. Las plantillas XSLT no son solo una pieza de código. Los datos reales del ajuste del archivo XML en el atributo "coincidencia" de los elementos "plantilla" deciden si se debe ejecutar una plantilla y cuándo.
Una vez que descubra que XSLT funciona de manera diferente a otros idiomas, verá las posibilidades que esto le brinda. Es fácil hacer cosas que son difíciles de hacer en los idiomas habituales. Solo úsalo cuando sea apropiado. Si sus datos vienen en formato XML y conoce XSLT y XPath, esta es la herramienta adecuada para construir páginas web.
Las sugerencias están disponibles, p. jenitennison.com/xslt.

Cuestiones relacionadas