архитектура MVC3 - PullRequest
       5

архитектура MVC3

0 голосов
/ 29 апреля 2011

Я хочу разработать простую CMS.

Я хочу добавить возможность добавлять модули в CMS.

  1. какая должна быть архитектура для такихCMS?

    решение, а затем проект MVC для сайта и другой для администратора?или один проект с областью для администратора?

в mvc каждый из моих модулей будет иметь контроллер, модель и виды.если я помещу все в один проект, то я смешаю все модули, каждый модуль будет в 3 папках (контроллер, модель и представления).

как мне нужно расположить их так, чтобы мой код был красиви чистить?

1 Ответ

1 голос
/ 29 апреля 2011

Поскольку вы разделяете только по типу пользователя, вы можете (и легко) включить его в один проект.все ваши контроллеры Admin должны иметь [Authorize (Roles = "Admin")] на них, чтобы ограничить их только для администратора.Смешивать их хорошо, другие приложения регулярно смешивают пользовательские роли в приложении, просто ограничьте разницу безопасностью (и не используйте URL-ограничения в вашем web.config - используйте вместо этого атрибут [Authorize] на ваших контроллерах !!ожидайте, что различия в обоих приложениях будут огромными , тогда вы сможете разделиться на другой проект, но я предполагаю, что вы можете получить очень хорошее повторное использование, включив их в один и тот же проект.

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

...