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