Здравствуйтее.
Sitecore мало освещается на хабре, однако это очень функциональная (и дорогая) CMS довольно популярна у тех, кто может её себе позволить. Вместе с тем, люди разрабатывающие (и особенно поддерживающие) сайты на sitecore часто жалуются на трудности модификации темплейтов. Так, простое переименование темплейта или одного поля может привести к непредсказуемым и, главное, трудно поддающимся диагностике и исправлению нарушениям в работе сайта. Причём вылезти они могут только через несколько месяцев. Кроме того, использование стандартных сайткоровских FieldRenderer-ов затрудняет контроль над разметкой, что было критично в нашем случае.
Зачем велосипед?
Существуют решения для генерации классов на основе темплейтов (как trac.sitecore.net/CompiledDomainModel), однако они не очень удобны в использовании и не устраняют привязку к структуре темплейта, именам полей. Упомянутый CompiledDomainModel требует регенерации всех моделей после любых изменений. Также он слабо подходит для совместной разработки (постоянные конфликты в сгенерированном коде), требует уникальных имён для всех темплейтов, завязывается на пути к темплейтам и ID-шки и генерирует чудовищный код одним файлом (на одном из проектов там было больше 60 000 строк и открыть его в VS было делом очень не быстрым).
Читать полностью »