Следует ли использовать типы контента Orchard CMS для модели предметной области приложения? - PullRequest
3 голосов
/ 17 марта 2012

Я пишу приложение с использованием ASP.Net MVC4, где большая часть данных хранится в MongoDB. Это отлично сработало для большинства из того, что я бы назвал «мясом» моего приложения, функциональность, для которой оно было сделано, выделяет его.

Однако теперь мне нужно добавить статический контент и административные возможности (настройка учетных записей, выставление счетов, помощь и т. Д.). Я сильно склонен использовать Orchard CMS для обработки всех этих функций, а затем перенести то, что я сделал до сих пор, в модули Orchard.

Вопрос заключается в следующем: какую часть моих данных я должен использовать для моделирования типов контента Орчарда? Я планирую продолжать хранить, по крайней мере, некоторые из моих данных в Монго, так что теперь я не уверен, где поставить разделительную черту между тем, что и куда.

Вы уже внедрили веб-приложение в Orchard? Куда делись данные вашего домена? Если вы использовали типы контента, были ли извлечены уроки?

1 Ответ

1 голос
/ 17 марта 2012

Почему вы хотите продолжать использовать MongoDB? В Orchard весь доступ к данным осуществляется с помощью NHibernate с использованием классов xxxRecord, в которых виртуальное свойство сопоставляется со столбцом. Он работает с SQL Compact, SQL Server 2008 (и R2) и SQL Azure.

Я не знаю статус RavenDB, но может быть модуль, использующий RavenDB для хранения данных BLOB-объектов или просто использующий его в качестве хранилища данных no-sql.

Лично я бы не использовал несколько хранилищ данных.

ContentType содержит несколько «присоединяемых» ContentParts и ContentFields, либо в коде, либо с помощью пользовательского интерфейса администратора. Вы можете использовать хранилище, если хотите, но делать это только для данных, которые не являются непосредственно ContentPart. DefaultContentManager имеет управление версиями, публикацию, удаление и т. Д. Если вы удалите ContentType, он просто получит флаг, что он был удален. (если вы не используете какой-то другой модуль, который выполняет операторы удаления). При использовании репозитория существует риск, что вы думаете, что элемент все еще существует, пока его нет.

В качестве окончательного ответа на ваш вопрос: да, вы должны использовать ContentType как модель домена, и вам не нужно беспокоиться о выполнении другого запроса.

...