В чем разница между ContentPartRecord и обычным объектом модели MVC? - PullRequest
0 голосов
/ 16 октября 2018

Я был довольно озадачен разницей между ContentPart и обычным объектом модели MVC.

Я проходил курс обучения PluralSight Advanced Orchard.В нем рассказывалось, как создать MovieContentPart и объект Actor.Я понял, что MoviceContentPart имеет запись части фильма, которая связывает записи в таблице базы данных.Однако объект Actor также может делать то же самое вне подхода Orchard.

Так в чем же преимущество использования подхода Orchard?

1 Ответ

0 голосов
/ 16 октября 2018

A ContentPart и обычная модель MVC очень похожи.Один из способов увидеть Orchard - это создание движка над MVC.Позвольте мне объяснить ...

В традиционном приложении MVC у вас есть очень простой конвейер: поступает запрос, направляется на действие контроллера, которое использует запрос для построения модели и возврата результата, чтозатем обычно используется для передачи модели представления в представление.HTML-код, представленный представлением, затем отправляется в браузер.Это упрощение, но это общая идея.

В случае Orchard, много разных модулей будут вносить вклад в любую отдельную страницу.Контроллер есть, но он глубоко в Орчарде, и вы не должны обращать на него внимания (в типичных случаях).Модель на самом деле динамически составляется всеми этими модулями в рамках совместного и разобщенного процесса.

Причина, по которой Орчарду нужно так поступать, заключается в осознании того, что большая часть контента состоит из небольших составных частей.Например, запись в блоге состоит из заголовка, тела, слага, автора, списка тегов и комментариев (которые сами являются элементами контента, состоящими из частей: заголовок, автор, текст и т. Д.).

Каждая из этих частей происходит из какого-то модуля и управляется «драйвером детали», который на самом деле ближе всего к контроллеру, но действует на уровне детали, которая являетсяэто имеет смысл для Орчарда, гораздо больше, чем просьба.Драйвер отвечает за создание «фигуры» из детали, которая аналогична созданию дроби модели вида.Позже форма будет визуализирована с помощью шаблона (который является частью представления), а полученный HTML-код будет скомпонован в большую страницу для отправки в браузер.

Итак, подведем итог, преимуществоМодель Орчарда поверх простого приложения MVC состоит в том, что вместо простого запроса -> контроллер-действие -> просмотр конвейера вы получаете более богатый, компонуемый, параллельный и очень не связанный между собой конвейер для рендеринга страницы из повторно используемых частей.Это не всегда уместно, поэтому Orchard по-прежнему позволяет реализовывать простые контроллеры с помощью модулей, но для контентных веб-сайтов или разделов веб-сайтов это чрезвычайно мощно и допускает сложные сценарии, которые будет гораздо сложнее реализоватьс нуля в традиционном приложении MVC.

...