Это правильное использование WCF и контрактов данных? - PullRequest
0 голосов
/ 22 июля 2010

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

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

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

Это мое использование DataContract, что больше всего беспокоит меня.Создание экземпляра объекта для сериализации и отправки только для разграбления его данных с целью создания другого объекта кажется ... неэффективным.Но если это считается хорошей практикой, я могу преодолеть это.

Я действительно подумал о том, чтобы пойти по пути веб-обработчика (.ashx) и использовать собственный двоичный стандарт для передачи данных, но я думаю, что пойти на WCFмаршрут может быть более применимым и пригодным для использования в будущем (мышление: работа).

1 Ответ

2 голосов
/ 22 июля 2010

Я не вижу особых проблем с вашим подходом.

По моему мнению, вы описываете передачу данных от сервиса к клиенту как DTO (объект передачи данных), а затем используете этот DTO для заполнения объекта модели представления. Также для DTO и объектов модели представления довольно распространено использование различных уровней детализации с точки зрения данных, которые они представляют (обычно DTOs будут более грубыми), и модель представления будет содержать поведение, специфичное для пользовательского интерфейса.

Возможно, вы захотите взглянуть на инструменты и интегрированные среды, которые помогают сопоставлять DTO и просматривать объекты модели. Один из моих любимых - AutoMapper.

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