архитектура вопрос важен, но он также рассматривается в отношении как сложный проект нуждается быть.
Обычно я рекомендую отдельную базу данных для данных, отличных от Umbraco, поскольку это сохраняет все прекрасно независимым и управляемым, особенно по мере роста проектов. Это также означает, что данные, специфичные для CMS (то есть контент), могут храниться отдельно от данных не-CMS, например. регистрация пользователей.
Однако, если проект небольшой и вряд ли будет расти, сохраните его просто. Используйте ту же базу данных, что и копирование Umbraco в ORM Petapoco. Например:
ApplicationContext.DatabaseContext.Database.Save (new Thing());
Или
вар вещь = ApplicationContext.DatabaseContext.Database.Single (thingId);
Для пользовательских данных, опять же, это вопрос о необходимости, ремонтопригодность и простота. Используйте только типы документов, для которых требуется , которые могут храниться в CMS. Мое личное правило заключается в том, что, если оно не является содержимым или организует контент, оно не принадлежит к CMS. Например, новости и категории новостей, очевидно, принадлежат к CMS. Однако комментарии, сделанные в статье, не имеют оснований для использования в CMS.
Что касается DAL, как я уже сказал, Umbraco имеет реализацию Petapoco, которую можно использовать из коробки. Если проект достаточно прост, просто используйте его. Нет смысла использовать что-либо еще, если вам не нужно какое-то разделение и/или какое-то дополнительное ворчание, в каком случае я бы рекомендовал использовать NHibernate или EF.
В дополнение к вышеуказанным пунктам,
- Использование NuGet;
- Используйте режим MVC Umbraco, так как он обеспечит вам большую гибкость. Просмотрите номер Hybrid Framework, поскольку он является очень хорошей отправной точкой для надежной и гибкой архитектуры проекта;
Спасибо @Digbyswift, Не могли бы вы объяснить: «Нет смысла использовать что-либо еще, если вам не нужно какое-то разделение и/или какое-то дополнительное ворчание, в этом случае я бы рекомендовал использовать NHibernate или EF». Не можем ли мы сцепиться с помощью Petapoco в отдельном DAL? – user576510
любезно объяснить могут быть ситуации, когда для некоторых дополнительных потребностей мне может понадобиться EF или Nhibernate? – user576510
Вы можете утверждать, что если вы собираетесь использовать отдельную установку Petapoco, тогда вы можете просто использовать реализацию Umbraco, особенно если проект недостаточно сложный, чтобы гарантировать это. Однако вы правы, вы можете использовать свой собственный Petapoco, и я имею несколько случаев. EF и NHibernate предлагают множество преимуществ по сравнению с микроорганизмами, такими как Petapoco. Например, NHibernate имеет кеширующие слои для предотвращения вызова объектов дважды в одном сеансе, а также зрелого API запросов. – Digbyswift