Как создать настраиваемую систему в ASP.NET MVC 3? - PullRequest
3 голосов
/ 24 февраля 2012

Сценарий таков: компании, в которой я работаю, необходимо отгрузить продукт, функции которого определены контрактом.

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

ПокаВместо того, чтобы создавать разные системы и добавлять и исправлять ошибки в каждой, кажется разумным иметь возможность установить, что будет или не будет отправлено клиенту.Я пытаюсь найти элегантное решение для этого ... мои контроллеры и мои модели останутся точно такими же, но мои взгляды будут сильно меняться.

Есть мысли о том, как заставить это работать?

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

Не уверен, правильно ли я понял. У вас есть два разных набора функций, и вы хотите объединить их в одну кодовую базу, способную на оба? На каком уровне они похожи?

Я бы работал над поддержанием единой кодовой базы для уровня данных и логики (Подробнее здесь) и в зависимости от количества различий на уровне представления выполнял одно из следующих действий:

  • Создайте еще один проект asp.net mvc3, который использует мои «общие» библиотеки из других уровней
  • Создайте все функциональные возможности в одном проекте asv.net mvc3, а затем поработайте над маршрутами, чтобы включить / отключить определенные вещи, если вы хотите, вы также можете сделать это для некоторых файлов конфигурации, таким образом, не требуя конкретной сборки для каждого клиента .

Без подробностей я не могу сказать много.

0 голосов
/ 27 февраля 2012

Разве вы не должны поместить эту информацию в базу данных (например, какие виды, к которым пользователь имеет доступ) и построить свои меню на основе этой информации?

Это будет означать, что вся ваша структура меню станет динамичной(так что это сильно изменится, так как я представляю, что ваши меню статичны).Но это решило бы твою проблему, я думаю ..

0 голосов
/ 24 февраля 2012

Если только ваши представления отличаются в зависимости от конфигурации, возможно, решение заключается в создании подпапок в каждой папке представлений.Например, Views/Home/Config1/Index.cshtml, Views/Home/Config2/Index.cshtml и т. Д. Переопределив функцию ViewPartialView) в контроллере (например, создав MasterController), вы можете автоматически переключаться на нужную подпапку в каталоге просмотра.

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