Что я пытаюсь обернуть вокруг
как я выставляю свой репозиторий и
модель, которая будет на сервере. Является
возможно даже выставить комплекс
бизнес-объекты, которые имеют состояние через
веб-сервис, или мне придется использовать
запатентованная технология, которая не
независимость от языка / платформы, например .Net
удаленное взаимодействие, EJB, COM +, DCOM и т. д.
Хорошая модель предметной области будет в значительной степени поведенческой и ориентированной на проблемную область (и ваши обсуждения с экспертами в предметной области), поэтому я бы поспорил против того, чтобы разрабатывать ее так, чтобы она предоставлялась удаленным потребителям (так же, как и при ее разработке). из базы данных или графического интерфейса сначала плохая идея).
Вместо этого я бы посмотрел на использование стиля, такого как REST или обмен сообщениями, и выбрал бы интерфейс, который вы хотите предоставить, а затем сопоставил бы его с доменом. Поэтому, если вы использовали REST, вы разработали свои ресурсы и API (URL, представления и т. Д.), А затем вам нужно было бы выполнить их из модели предметной области.
Если это становится неестественным, то у вас всегда может быть несколько моделей, например, сопоставление отдельной модели представления, доступной только для чтения, к одному и тому же источнику данных (или к которой применяется сложная модель поведенческой области). используется несколько раз.
Некоторые другие ограничения заключаются в том, что я
не хочу продолжать загружать
сложный доменный объект из
базы данных или передать его по всему
провод каждый раз, когда я хочу сделать
работа
Посмотрите на кэширование в HTTP и поддержку нескольких представлений для ресурса, а также посмотрите на кэширование в вашем решении для доступа к данным.
Проверка и сообщение об ошибке
информация также должна быть
отображается для пользователя. я хочу быть
в состоянии логически назвать много моих
операции с доменным объектом, как если бы это было
работает на той же машине.
Вы можете представить это как ресурс или, более вероятно, взглянуть на коды состояния HTTP и тела ответов, которые вы хотите использовать в этих ситуациях.