Модели только в сервисе WCF или нужна реплика в клиенте? - PullRequest
1 голос
/ 03 февраля 2011

Я создаю приложение.Я создаю клиента Silverlight 4 с помощью MVVM Light.Я получаю данные из Службы WCF.По крайней мере, это план.

В Службе WCF я определил «сущности», которые мне нужно использовать в моем приложении.Когда в клиенте Silverlight я добавляю ссылку на свою службу WCF, Visual Studio заново создает на стороне клиента все классы, помеченные атрибутом [DataContract] в службе.

Что я хотел бы знать, так этоесли это плохая практика, и если было бы лучше создавать модели внутри клиента.Насколько я понимаю, в первом случае я должен только создавать ViewModels и Views в клиенте Silverlight, тогда как во втором случае я должен создавать Views, ViewModels и Models внутри клиента Silverlight и заполнять экземпляры Models с помощьюзначения поступают из Службы WCF.

Спасибо за вашу помощь.

Приветствия, G.

ОБНОВЛЕНИЕ

Хорошо,Я не думаю, что мой вопрос был достаточно ясным, так как я не получил много отзывов.Тем не менее, я хотел бы предоставить обновленную информацию по этому вопросу.Ответ, который я искал: «Нет! Объекты передачи данных!».

Я думал использовать свои классы сущностей (те, которые сопоставлены с таблицами БД) в качестве DataContract в службе WCF.Добавление ссылки на эту службу WCF в клиенте также привело бы к созданию на клиенте всех классов, оформленных с помощью DataContract.

Большая проблема в моем случае состоит в том, что уровень данных основан на Hibernate, который иногда широко используется во время выполнения классов «прокси-данных» (см. Castle Proxy).Что ж, оказалось, что существует проблема сериализации с этими прокси-серверами данных, и, насколько я понял, лучший подход заключается в применении шаблона объектов передачи данных для сопоставления «сложных» объектов с похожим, но «более легким» классом.(DTO).

Я надеюсь, что это может помочь кому-то еще.

Хорошего дня!Джанлука.

1 Ответ

0 голосов
/ 13 февраля 2011

Вы смотрели на WCF RIA с Nhibernate?Чтобы попытаться ответить на вопрос, хотя: я бы не стал возвращать сущности из службы WCF напрямую, я бы лично создавал DTO.И тогда я, вероятно, сопоставлю эти DTO с какой-то моделью на стороне клиента.Вот что я бы попробовал сделать, если бы не смог воспользоваться преимуществами RIA.

...