WPF MVVM сервисный уровень - PullRequest
       5

WPF MVVM сервисный уровень

7 голосов
/ 30 августа 2010

Я планирую написать приложение WPF, следуя шаблону MVVM в первый раз, но что-то мне не совсем понятно.Скажем, в представлении есть кнопка «Сохранить», и когда она нажата, мне нужно сохранить текущее состояние моих данных (модель).Это будет сделано путем отправки сообщения SOAP в службу SOAP.

Где в моей настройке MVVM живут эти обработчики запросов / ответов SOAP?Делает ли модель представления сам вызов SOAP всякий раз, когда нажимается кнопка сохранения?Должна ли модель представления уведомлять модель, чтобы сохранить себя вместо этого?Может быть, это какой-то другой путь, совершенно отдельный от MVVM?

Я думал, что (по крайней мере, в этом конкретном случае) модель представления справится с этим, поскольку ей необходимо отключить кнопку сохранения в представлении, пока текущий запрос сохранения не будет завершен.

Ответы [ 3 ]

5 голосов
/ 31 августа 2010

Обычно я помещаю логический клиентский прикладной / бизнес-уровень между моделью представления и уровнем SOAP / WCF / Webservice.На этом слое живет вся бизнес-логика без логики и логики обработки.Помните, что viewmodel - это модель представления, а не модель домена.Следовательно, вы хотите передать управление следующему уровню вниз как можно скорее.

В этом сценарии у меня будет триггер представления команды сохранения в модели представления, который, в свою очередь, вызовет уровень приложения, которыйбудет, в свою очередь, совершать любые звонки в удаленные службы.

4 голосов
/ 31 августа 2010

ViewModel, не должен делать такую ​​операцию.Это только должно вызвать это.Поэтому модель должна это делать (или другой промежуточный уровень, который отвечает за операции загрузки и сохранения, но не сам ViewModel).

ViewModel может наблюдать за операцией сохранения и может предоставлять информацию о состоянии процесса просмотра.

0 голосов
/ 31 августа 2010

Я бы создал обработчик службы, к которому может обращаться ViewModel.Передайте это в конструктор модели представления и вызовите методы, предоставляемые обработчиком службы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...