Это субъективный вопрос, но часто для обеспечения того, чтобы объекты вашей модели не имели прямых зависимостей от инфраструктуры, люди часто помещают их в отдельный проект. вам также необходимо учитывать, какие другие проекты могут использовать эти объекты модели.
Еще один вариант разделения функциональности на отдельные развертываемые блоки (сборки) состоит в том, чтобы группы могли функционировать более независимо. Раздельные проекты, основанные на частоте развертывания и групповой автономии.
Наконец, я видел несколько проектов, в которых объекты модели вызывались удаленно (например, с удаленным взаимодействием .NET) и обслуживались на сервере приложений, отдельном от веб-сервера. Я действительно не рекомендую такой подход, но это вариант.
Если вы не планируете использовать их повторно, и вам известно о том, что размещение их в одной сборке позволяет создавать перекрестные зависимости с чем-либо еще определенным в этом проекте, но вы Вы достаточно умны, чтобы этого не делать, вы можете поместить их всех в один проект.
Тем не менее, 99% времени у меня есть эти проекты:
- UI
- Основной
- Настойчивость
- Тесты
Но вы все равно должны учитывать потребности вашего проекта.