В чем разница между ContentPartRecord и обычным объектом модели MVC?
Я был довольно смущен различием между ContentPart и обычным объектом модели MVC.
Я проходил курс "Усовершенствованный сад PluralSight". В нем рассказывалось, как создать MovieContentPart и объект Actor. Я понял, что MoviceContentPart имеет запись части фильма, которая связывает записи в таблице базы данных. Однако объект Actor также может делать то же самое вне подхода Orchard.
Так в чем же преимущество использования Orchard?
1 ответ
ContentPart
и обычная модель MVC - очень похожие понятия. Один из способов увидеть Orchard - это создание движка над MVC. Позволь мне объяснить...
В традиционном приложении MVC у вас очень простой конвейер: поступает запрос, направляется к действию контроллера, которое использует запрос для построения модели и возвращает результат, который затем обычно используется для передачи модели представления в Посмотреть. HTML-код, представленный представлением, затем отправляется в браузер. Это упрощение, но это общая идея.
В случае с Orchard, много разных модулей будут вносить вклад в любую отдельную страницу. Контроллер есть, но он глубоко в Орчарде, и вы не должны обращать на него внимания (в типичных случаях). Модель на самом деле динамически составляется всеми этими модулями в рамках совместного и разобщенного процесса.
Причина, по которой Орчарду нужно так поступать, заключается в осознании того, что большая часть контента состоит из небольших составных частей. Например, сообщение в блоге состоит из заголовка, тела, слага, автора, списка тегов и комментариев (которые сами являются элементами контента, состоящими из частей: заголовок, автор, текст и т. Д.).
Каждая из этих частей происходит из какого-то модуля и управляется "драйвером детали", который является тем, что действительно ближе всего к контроллеру, но действует на уровне детали, который имеет смысл для Фруктовый сад, гораздо больше, чем просьба. Драйвер отвечает за создание "фигуры" из детали, которая аналогична созданию части модели вида. Позже форма будет визуализироваться шаблоном (который является частью представления), а полученный HTML-код будет скомпонован в большую страницу для отправки в браузер.
Подводя итог, можно сказать, что преимущество модели Орчарда над простым приложением MVC состоит в том, что вместо простого запроса -> контроллер-действие -> просмотр конвейера вы получаете более богатый, компонуемый, параллельный и очень отделенный конвейер для рендеринга страницы из многоразового использования. частей. Это не всегда уместно, поэтому Orchard по-прежнему позволяет реализовывать простые контроллеры с помощью модулей, но для контентных веб-сайтов или разделов веб-сайтов это чрезвычайно мощно и допускает сложные сценарии, которые будет гораздо сложнее реализовать с нуля в традиционном приложении MVC.