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