Настройки программного уровня приложения ASP.NET MVC - PullRequest
1 голос
/ 07 октября 2010

Я работаю над веб-приложением ASP.NET MVC 2.0 Multi-Presentation, которое будет использовать общую кодовую базу для поддержки различных веб-сайтов.Эти веб-сайты будут отличаться в следующих аспектах:

  • Каждый веб-сайт будет иметь свои собственные верхние и нижние колонтитулы, изображения, CSS и т. Д. (Я полагаю, что основные страницы веб-сайта)
  • Некоторые элементы пользовательского интерфейсаможет отличаться в зависимости от настроек с мягким кодом на уровне веб-сайта

Каков наилучший подход для удовлетворения этих требований?Должен ли я хранить эти программные настройки уровня веб-сайта в базе данных или в нескольких конфигурационных файлах?Возможно, мне придется предоставить интерфейс администратора для управления этими программными настройками.Как мне получить доступ к этим настройкам на разных уровнях (MVC, Services, Repositories и т. Д.) Моего приложения?

Мне нужны предложения от экспертов.

С уважением, Алекс.

1 Ответ

0 голосов
/ 07 октября 2010

Разработайте какую-либо объектную модель представления (или, возможно, Агрегируйте , если вы склонны к DDD), а затем сохраните это в БД.Это может быть как для пользователя, так и для сайта (если вы создаете мультитенантное приложение, которое вы создаете), и с помощью MVC было бы легко создавать Html-помощники, которые принимают эти объекты модели презентации и отображают вашинастраиваемый заголовок, CSS, изображения и т. д.

Потенциальный длинный практический пример:

Допустим, ваш «арендатор» называется Site - у вас, вероятно, будет объект Siteв твоей модели.Свойство Site может быть объектом WebPresentation.WebPresentation может иметь ряд дочерних объектов и списков с методами для чтения css, файлов css (для <link> элементов в заголовке документа), изображений и т. Д. Вы также можете иметь Service или установитьсервисных функций для сохранения / проверки объектов WebPresentation (или вы можете попытаться отключить эту функцию от самих объектов - подумайте .Save()).Я не буду вдаваться в то, как вы сохраняете эти данные в БД (не хочу вас оскорблять).Что касается представлений, вы должны создать их (возможно, частичные представления) так, чтобы пользовательские WebPresentation Html-помощники отображали настройки в представлениях или <head> разделах ваших мастер-страниц.

Я надеюсь, что этот примерполезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...