Может ли кто-нибудь (может быть, поклонник XSL?) Помочь мне найти какие-либо преимущества при обработке представления данных на веб-странице с помощью XSL над ASP.NET MVC?
Есть две альтернативы:
ASP.NET (MVC / WebForms) с XSL
Получение данных из базы данных и преобразование их в XML, который затем отображается на разных страницах с помощью XSL-шаблонов.
ASP.NET MVC
Получение данных из базы данных в виде объектов C# (или LinqToSql / EF-объектов) и отображение их встроенным кодом на MVC-страницах.
Основным преимуществом XSL является согласованное отображение данных на множестве разных страниц, например, WebControls. Итак, поправьте меня, если я ошибаюсь, ASP.NET MVC можно использовать таким же образом, но со строго типизированными объектами. Пожалуйста, помогите мне узнать, есть ли у XSL какие-то преимущества.





Если вы собираетесь отображать данные только из шаблонов DB, XSL может быть удобным решением, но если вы собираетесь обрабатывать взаимодействие с пользователем. Хм ... Я не думаю, что его вообще можно будет ремонтировать.
При работе с преобразованиями XML я всегда обнаруживал две основные проблемы:
Во-первых, они имеют тенденцию быть довольно медленными, весь XML-файл необходимо проанализировать и проверить, прежде чем вы сможете что-либо с ним делать. Будучи XML, он также излишне подробен и, следовательно, больше, чем должен быть.
Во-вторых, способ работы преобразований - это немного неудобно для программирования - специальные инструменты, такие как XmlSpy, помогают, но это все же другая модель, чем та, к которой привыкло большинство разработчиков.
На данный момент MVC очень быстр и выглядит многообещающе, но он страдает от традиционной болезни веб-разработки, связанной с укусами <% и %> по всему вашему коду. Использование преобразований XML позволяет избежать этого, но их гораздо труднее читать и поддерживать.
@RobertHarvey - Отлично Razor, синтаксис @ лучше, чем <% (по крайней мере, для простых операторов), но у него все еще есть фундаментальная проблема переключения между выводом и кодом. Имейте в виду, это ответ трех с половиной лет назад - тогда MVC был «многообещающим», теперь я думаю, что вы были бы сумасшедшими, если бы использовали преобразования XML.
Я использовал эту технику в прошлом, и есть приложения, в которых мы применяем ее на моем нынешнем месте работы. (Признаюсь, я не совсем фанат этого, но я буду играть адвоката дьявола) На самом деле, это одно из основных преимуществ, и продвигать эту идею может быть довольно изящно. Вы можете динамически создавать xsl на лету и при желании изменять внешний вид страницы. Можно ли сделать это другими методами ... да, но действительно легко создать программу для изменения документа xml / xsl на лету.
Если вы думаете об использовании XSL для преобразования одного xml-документа в другой и отображения его как html (что на самом деле вы делаете), вы открываете свою систему, чтобы другие программы могли получать доступ к данным на странице через XML. Вы можете сделать это другими методами, но использование преобразования xsl заставляет его каждый раз выводить xml.
Я бы осторожно подошел к созданию такой системы. Вы найдете много ям, которых вы не ожидаете, и если вы не очень хорошо знаете xsl, вам также придется учиться.
Я вижу, что основное преимущество использования XSLT для преобразования ваших данных и отображения их пользователю будет следующим:
Если это будет единственный вывод для ваших данных, и он не в формате XML, то XSLT может быть не лучшим решением.
Точно так же, если требуется взаимодействие с пользователем (например, редактирование данных), вы все равно будете использовать внутренний код для обработки обновлений, так что может оказаться, что одна технология слишком далеко ...
Джафар Хусейн предлагает несколько преимуществ в своем предложение для Pretty XSL, в первую очередь кэширование таблицы стилей для увеличения загрузки страницы и уменьшения размера ваших данных. Стив Сандерсон предложил несколько иной подход, используя JavaScript в качестве контроллера здесь.
Другой, похожий подход - использовать XForms, хотя лучшая поддержка для него - через Библиотека JavaScript.
Проверьте это, если вы хотите использовать XSLT и ASP.MVC
http://www.bleevo.com/2009/06/aspnet-mvc-xslt-iviewengine/
Ну, правда, я не хочу. Я просто хотел получить некоторые мнения о том, почему кто-то захочет его использовать.
Что ж, единственная причина, по которой я могу думать об использовании его для разделения данных и представления, заключается в том, что на сайтах с очень высоким трафиком экономия 10-20% имеет существенное значение.
С появлением альтернативных движков просмотра, таких как Razor, пчелиные укусы теперь должны причинять меньше вреда.