Silverlight, WCF, MVVM и существующие n-уровневые сборки - PullRequest
0 голосов
/ 03 декабря 2010

Я пытаюсь разобраться с MVVM в Silverlight - в основном в контексте того, как я могу приспособить его к существующей архитектуре - или, скорее, как я могу объединить существующую архитектуру с ним.

Архитектура, которая у меня есть на данный момент, - это в основном ваш традиционный n-ярус с сервисным уровнем поверх него.У меня есть сервисный уровень в WCF, сборка для бизнес-логики и сборка, которая содержит бизнес-сущности (каркас сущностей).

Уровень обслуживания в WCF довольно прост, он просто предоставляет уровень бизнес-логики и нуждается в нескольких изменениях, чтобы сделать его более совместимым с Silverlight.На сборку бизнес-объектов ссылаются как сервисный уровень, так и логический уровень, так что они оба используют одни и те же объекты, и все, что потребляет сервис, также осведомлено об этих объектах.

Все великолепно.

Вместе с Silverlight и MVVM.Часть View проста, это все, что связано с пользовательским интерфейсом.ViewModel и Model - то, где это становится интересным для меня.По моему мнению, Модель - это сборка моих бизнес-сущностей, а ViewModel - это сборка бизнес-логики.

Если Silverlight использует мою службу WCF, то этот и связанный с ним уровень бизнес-логики определенно являются моей моделью представления.Теперь у меня 2 проблемы;1 / Объект ViewModel должен находиться в моем проекте Silverlight.2 / Типы (бизнес-объекты), предоставляемые службой WCF, несовместимы с Silverlight, поскольку сборки не предназначены для Silverlight.Вызовите исключение для этого эффекта, когда я попытаюсь добавить сборку в качестве ссылки.

Итак ... как мне использовать мои бизнес-объекты в качестве модели?Кроме того - как я могу использовать другие типы .Net, такие как System.ServiceProcess.ServiceController в моей ViewModel?

1 Ответ

0 голосов
/ 03 декабря 2010

Думаю, вам стоит взглянуть на WCF RIA Services.

https://www.silverlight.net/getstarted/riaservices/

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