Мне любопытно, какой предпочтительный способ структурировать приложение с исполняемой клиентской программой, исполняемой серверной программой и общей моделью в решениях и проектах (с использованием Visual Studio и C #). Привыкший к разработке на Java, я изначально рассматривал проекты как пакеты и определял проект для каждого пакета, который я разработал.
Это привело к решению из шести проектов (один для модели, один для сервера и четыре для клиента), что, в свою очередь, привело к некоторым глупым зависимостям, заставившим меня пересмотреть, является ли это лучшим подходом.
Теперь я планирую реструктурировать решение до трех проектов: клиентский проект, отдельный проект и модельный проект. И клиент, и сервер будут зависеть от проекта модели (в который я также добавлю общий интерфейс между клиентом и сервером).
Это лучший способ структурировать такое приложение?
Кроме того, как лучше всего отразить пространства имен в древовидной структуре Visual Studio? (Например, просто создать аналогичную структуру папок?).