Я хотел бы знать, что является обычной практикой при работе с MVC, MVP или любым другим шаблоном, где мы можем организовать решение, содержащее несколько проектов.
Например: для MVP у меня может быть проект представления, проект докладчика и проект модели с решением. И похожий макет решения для MVC, где у меня может быть несколько проектов, формирующих решение. Я полагаю, что это также может относиться к решению MVVM, которое может содержать несколько проектов.
При работе с этими решениями каждый проект генерирует отдельную DLL. Таким образом, для решения, организованного по шаблону MVP, проект докладчика сгенерирует свою собственную .dll.
Я хотел бы знать, что является обычной практикой при работе с такого рода макетом в решении, где у нас более одного проекта, и мы можем избежать того, чтобы кто-то потенциально мог добавить ссылку непосредственно, например, на сгенерированный Presenter.dll или controller.dll и вызов методов, устанавливают типы, определенные в этих .dll.
Я хотел бы знать:
1) Правильно ли я использую эти шаблоны или я совершенно не прав, организовывая свои решения, содержащие несколько проектов?
2) Должен ли я иметь весь свой код в одном проекте и организовать либо контроллеры / презентаторы / модели в папки, чтобы я генерировал один .exe или .dll для каждого решения. Проблема, с которой я сталкиваюсь при таком подходе, заключается в том, что для макета MVP я бы упустил возможность иметь разные представления с использованием моего проекта докладчика. (Например, представление WebSite, представление WebService).
3) Что является обычной практикой при использовании MVC / MVP или любого другого шаблона, где мы можем организовать решения, содержащие несколько проектов, чтобы я мог контролировать, кто вызывает мой код.