MVVM & WCF - Посмотреть модель и модель отношений - PullRequest
2 голосов
/ 07 августа 2009

Я не понимаю, как моя модель может быть службой WCF. Это имеет смысл, когда его частичный класс Astoria находится на клиенте и позволяет удаленным вызовам выполнять постоянные вызовы, но у службы WCF нет свойств для полей модели, которые можно использовать для обновления хранилища данных.

Даже если бы я мог выделить интерфейс для класса объекта модели / домена в отдельную сборку, проект silverlight не позволит мне добавить его в качестве ссылки.

Как моя модель просмотра должна охватывать мои вызовы WCF? В конечном итоге WCF вызовет сборку репозитория, реализованную в Linq-to-Sql, но, очевидно, эти сущности не являются моей моделью в этом сценарии, мои классы WCF имеют вид?

Спасибо за любые указания по этому вопросу.

Кроме того, посты, которые я прочитал, чтобы дать ссылку:

  1. http://development -guides.silverbaylabs.org / Видео / Silverlight-Prism # videolocation_0
  2. http://blogs.conchango.com/davidwynne/archive/2008/12/15/silverlight-and-the-view-viewmodel-pattern.aspx
  3. http://msdn.microsoft.com/en-us/magazine/dd458800.aspx

1 Ответ

5 голосов
/ 07 августа 2009

Когда вы создаете ссылку на службу для службы WCF в проекте Silverlight, она также создает интерфейс для этой службы, это похоже на IFeedService Дэвида Виннса в статьях, которые вы перечислили выше. Ссылка на службу также будет генерировать прокси-объекты, представляющие объекты, используемые службой (продукт, категория и т. Д.).

Важно отметить, что интерфейс службы - это не модель, а способ доступа к модели. Возвращаясь к примеру Дэвида, его ViewModel предоставляет список элементов (его модель), этот список извлекается с помощью сервиса.

Если вы хотите поделиться кодом между клиентом и сервером, я бы порекомендовал посмотреть что-то вроде RIA Services. Если это не для вас, я бы посмотрел несколько статей о совместном использовании кода между сервером и клиентом (через «Добавить как ссылку»).

Надеюсь, это поможет

...