1

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

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

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

Благодарим за помощь.

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

UPDATE

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

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

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

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

Имейте славный день! Gianluca.

ответ

0

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

+0

Hi Derek. Да, я использовал WCF RIA + FluentNHibernate. Как я уже сказал в разделе «ОБНОВЛЕНИЕ» на моем посту, я знаю DTO, и именно так это должно быть реализовано. Хотя, я признаю, что я переключился на EntityFramework и RIA Services. –

 Смежные вопросы

  • Нет связанных вопросов^_^