Здравствуйте, хочу рассказать о проблеме с которой недавно столкнулась наша команда и о том как нам пришлось участвовать в подтасовке результатов лотереи.
web dev
ORM для Sitecore своими руками
5 min
3.2KЗдравствуйте хабровчане.
Sitecore мало освещается на хабре, однако это очень функциональная (и дорогая) CMS довольно популярна у тех, кто может её себе позволить. Вместе с тем, люди разрабатывающие (и особенно поддерживающие) сайты на sitecore часто жалуются на трудности модификации темплейтов. Так, простое переименование темплейта или одного поля может привести к непредсказуемым и, главное, трудно поддающимся диагностике и исправлению нарушениям в работе сайта. Причём вылезти они могут только через несколько месяцев. Кроме того, использование стандартных сайткоровских FieldRenderer-ов затрудняет контроль над разметкой, что было критично в нашем случае.
Существуют решения для генерации классов на основе темплейтов (как trac.sitecore.net/CompiledDomainModel), однако они не очень удобны в использовании и не устраняют привязку к структуре темплейта, именам полей. Упомянутый CompiledDomainModel требует регенерации всех моделей после любых изменений. Также он слабо подходит для совместной разработки (постоянные конфликты в сгенерированном коде), требует уникальных имён для всех темплейтов, завязывается на пути к темплейтам и ID-шки и генерирует чудовищный код одним файлом (на одном из проектов там было больше 60 000 строк и открыть его в VS было делом очень не быстрым).
Sitecore мало освещается на хабре, однако это очень функциональная (и дорогая) CMS довольно популярна у тех, кто может её себе позволить. Вместе с тем, люди разрабатывающие (и особенно поддерживающие) сайты на sitecore часто жалуются на трудности модификации темплейтов. Так, простое переименование темплейта или одного поля может привести к непредсказуемым и, главное, трудно поддающимся диагностике и исправлению нарушениям в работе сайта. Причём вылезти они могут только через несколько месяцев. Кроме того, использование стандартных сайткоровских FieldRenderer-ов затрудняет контроль над разметкой, что было критично в нашем случае.
Зачем велосипед?
Существуют решения для генерации классов на основе темплейтов (как trac.sitecore.net/CompiledDomainModel), однако они не очень удобны в использовании и не устраняют привязку к структуре темплейта, именам полей. Упомянутый CompiledDomainModel требует регенерации всех моделей после любых изменений. Также он слабо подходит для совместной разработки (постоянные конфликты в сгенерированном коде), требует уникальных имён для всех темплейтов, завязывается на пути к темплейтам и ID-шки и генерирует чудовищный код одним файлом (на одном из проектов там было больше 60 000 строк и открыть его в VS было делом очень не быстрым).
0
Information
- Rating
- Does not participate
- Registered
- Activity