2011-01-14 2 views
9

Во время обучения Sitecore я обнаружил, что большинство примеров кода Sitecore в Интернете находится в XSL вместо .NET.В чем преимущества использования XSL в Sitecore вместо C#?

Каково было бы преимущество выбора XSL над процессами, к которым я привык как разработчик .NET?

Есть ли преимущества скорости обработки при использовании XSL?

Действительно ли XSL проще, если вам удобно синтаксис?

+0

Без использования, такие вопросы («adventages of X вместо Y») являются субъективными и аргументативными. –

+0

@Alejandro. Я согласен, что я снова смотрю на него. Любые мысли по изменению вопроса? Если нет, я планирую принять ответ от @James Walford – JoshBaltzell

ответ

7

Я просто добавить мои 2 цента тоже:

Я считаю, что слишком многие ограничения в XSLT, которые необходимо преодолеть либо с помощью внешних «библиотек», либо с вами, разрабатывая метод на C#, который можно использовать в XSLT.

Таким образом, я нахожу использование Asp.Net проще. Но с Asp.Net я также намного лучше, чем с XSLT.

Но XSLT имеет некоторые хорошие вещи:

  • хорошо, когда получение полей из текущего пункта контекстного
  • хорошо с простым содержимым и т.д.
  • не форсирует решение переработать/восстановление
  • обычно приятный путь, который он терпит неудачу, т.е. страница по-прежнему работает, но XSLT, что не удалось, говорит он не

Когда я впервые начал работать с Sitecore, моя компания использовала совсем немного XSLT, но мы медленно отошли от того, из-за его ограничения и потому что большинство людей здесь более знакомы с Asp.Net/C#.

3

Некоторые люди предпочитают XSL из-за существующего набора навыков команды, наличия таланта XSL или убеждения, что XSL проще или дешевле учиться.

В Sitecore подслои ASP.NET на самом деле работают намного лучше, чем визуализации XSL. Если вам это нравится, пойдите для этого. Я никогда не создавал рендеринг XSL.

3

XSLT - это мощный язык; его основные преимущества перед языками, такими как ASP.NET, как правило, возникают, когда вы хотите повторно использовать и настраивать логику на самых разных страницах или различных исходных документах с общими общими элементами и другими переменными структурами. Для достижения этой цели используется модель обработки на основе правил, с которой некоторые люди с трудом справляются с первой встречей. Изучение это инвестиции, которые будут окупаться с течением времени, но сначала это может быть сложным.

Что касается производительности, я никогда не сталкивался с сайтом, где он не достаточно быстро для работы, и это включает в себя некоторые довольно высокоуровневые услуги; когда у людей были проблемы с производительностью, они обычно оказывались в других частях конвейера обработки (или просто из-за плохого кодирования).

+0

Однако, с конкретной ссылкой на Sitecore, XSLT действительно имеет недостатки производительности в некоторых ситуациях из-за того, как реализован Sitecore. Структура XML является весьма обобщенной, что означает тестирование значений узлов, а не имен. Глубина узла также является возможной проблемой, что делает рекурсивные поиски дорогостоящими. В реализации Sitecore нет выбора процессора, хотя, вероятно, не все так сложно настроить его. Наконец, он также полагается на некоторые расширения XSLT в C#, которые могут иметь свои собственные недостатки. –

+0

Продолжение .... Из того, что я видел в Sitecore, .NET обычно является более эффективным способом добавления компонентов презентации, которые делают что-то большее, чем самые простые простые задачи. Существуют также некоторые методы Sitecore XSLT (например, использование для каждого), которые являются интуитивно понятными большинству разработчиков XSLT. –

3

Выбор между компонентами XSLT и .Net в Sitecore в значительной степени является одним из вкуса и набора навыков. Однако XSLT в Sitecore имеет некоторые недостатки: он, как правило, превосходит .NET-компоненты для всех, кроме самых простых визуализаций, и места, где может показаться наиболее логичным его использование, например, репликация структуры древа содержания в качестве меню сайта, являются фактически те, которые имеют тенденцию к наибольшему результату. В правильных ситуациях XSLT является невероятно мощным инструментом и стоит изучать, но мне еще предстоит увидеть убедительный аргумент в пользу его использования в Sitecore. Также стоит отметить, что некоторые стандартные шаблоны программирования XSLT не являются наиболее эффективными в Sitecore.

3

Единственное реальное преимущество, о котором я могу думать, заключалось бы в том, что визуализации XSLT проще развертывать изолированно. Скажем, например, что вы обновляете рендеринг «Новостных пятен», и вы хотите сразу развернуть это изменение для тестирования/производства - это будет простой случай загрузки самого файла .xsl.

Использование .NET-разработки (и сохранение модели проекта веб-приложения), развертывание базы кода будет недвусмысленно разворачивать любые изменения в затронутые сборки, включая любую выполняемую вами работу.

Есть, конечно, способы управления этим. Разветвление/слияние исходного кода и т. Д., Но это дополнительный уровень сложности для вашего решения.

Это, как говорится, я использую .NET для более чем 95% от всего моего развития Sitecore сам :-)

3

«Таким образом, основная цель разработки и кодирования программного обеспечения заключается в сложной сложности. Мотивация многих методов программирования заключается в уменьшении сложности программы. Сокращение сложности является ключом к тому, чтобы быть эффективным программистом». -Steve McConnell (1993)

Пусть это поможет, когда использовать XSLT над C#.