Вопрос

Может ли кто-нибудь (может быть, поклонник XSL?) помочь мне найти какие-либо преимущества в обработке представления данных на веб-странице с помощью XSL по сравнению с ASP.NET MVC?

Существуют две альтернативы:

  1. ASP.NET (MVC/ WebForms) с помощью XSL
    Получение данных из базы данных и преобразование их в XML, который затем отображается на разных страницах с помощью XSL-шаблонов.

  2. ASP.NET MVC
    Получение данных из базы данных в виде объектов C # (или LinqToSql / EF-objects) и отображение их с помощью встроенного кода на MVC-страницах.

Основным преимуществом XSL было согласованное отображение данных на множестве различных страниц, таких как WebControls.Итак, поправьте меня, если я ошибаюсь, ASP.NET MVC можно использовать таким же образом, но со строго типизированными объектами.Пожалуйста, помогите мне понять, есть ли какие-либо преимущества в XSL.

Это было полезно?

Решение

Я вижу, что основным преимуществом использования XSLT для преобразования ваших данных и отображения их пользователю было бы следующее:

  • Данные уже представлены в формате XML
  • Данные обрабатываются по четко определенной схеме (это значительно упрощает использование таких инструментов, как XMLSpy).
  • Данные должны быть преобразованы в несколько различных выходных форматов, напримерPDF, WMP и HTML

Если это должен быть единственный вывод для ваших данных, и он не в формате XML, то XSLT может оказаться не лучшим решением.

Аналогично, если требуется взаимодействие с пользователем (например, редактирование данных), то в конечном итоге вы все равно будете использовать внутренний код для обработки обновлений, что может оказаться слишком сложной технологией...

Другие советы

Я всегда обнаруживал две основные проблемы при работе с преобразованиями XML:

Во-первых, они имеют тенденцию быть довольно медленными, весь XML-файл должен быть проанализирован и проверен, прежде чем вы сможете что-либо с ним сделать. Будучи XML, он также слишком многословен и, следовательно, больше, чем нужно.

Во-вторых, то, как работают преобразования, немного болезненно для кода - пользовательские инструменты, такие как справка XmlSpy, но это все же модель, отличная от той, к которой привыкло большинство разработчиков.

В настоящий момент MVC очень быстр и выглядит многообещающе, но страдает от традиционного упадка веб-разработки <% и %> пчел во всем вашем коде. Использование преобразований XML позволяет избежать этого, но гораздо сложнее читать и поддерживать.

Я использовал эту технику в прошлом, и есть приложения, где мы используем ее на моем нынешнем месте работы. (Я признаю, я не совсем фанат этого, но я буду играть адвоката дьявола) На самом деле это одна из главных новинок, и продвижение этой идеи может быть довольно аккуратным. Вы можете динамически создавать xsl на лету и изменять внешний вид страницы по своей прихоти. Возможно ли это сделать с помощью других методов ... да, но действительно легко создать программу для изменения документа xml / xsl на лету.

Если вы думаете об использовании XSL для преобразования одного XML-документа в другой и отображения его в виде HTML (что на самом деле и делает), вы открываете свою систему, чтобы другие программы могли получить доступ к данным на странице. через XML. Вы можете сделать это с помощью других методов, но использование преобразования xsl заставляет его каждый раз выводить xml.

Я бы легкомысленно пошёл на создание системы таким способом. Вы найдете много ошибок, которые вы не ожидаете, и если вы не очень хорошо знаете xsl, то также будет кривая обучения.

Проверьте это, если вы хотите использовать XSLT и ASP.MVC

http://www.bleevo.com/2009/ 06 / ASPnet-MVC-XSLT-iviewengine /

Джафар Хусейн предлагает несколько преимуществ в своем предложении для Pretty XSL , в первую очередь кэширование таблицы стилей для увеличения загрузки страницы и уменьшения размера ваших данных. Стив Сандерсон предложил немного другой подход с использованием JavaScript в качестве контроллера здесь .

Другой, похожий подход - использовать XForms , хотя Лучшая поддержка для этого - библиотека JavaScript .

Если вы собираетесь отображать данные только из шаблонов DB XSL, это может быть удобным решением, но если вы собираетесь обрабатывать взаимодействие с пользователем. Хм ... я не думаю, что это вообще можно будет обслуживать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top