Я пытаюсь разобраться с 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?