Какой вкус WCF использовать с Windows Phone 7 - PullRequest
1 голос
/ 14 сентября 2010

Я довольно новичок в том, что касается WCF, и я пытаюсь выяснить, какой тип проекта WCF создать для использования моим приложением Windows Phone 7.

Кажется, что есть:

  1. Служба WCF
  2. Служба WCF с поддержкой Silverlight
  3. Служба данных WCF

Насколько я могу судить - № 1 - этоболее старый вариант, требует больше конфигурации и интерфейса.В # 2 включены некоторые переключатели, которые требуются Silverlight.# 3 Разговоры с моделью сущностей.

Я использую модель сущностей, поэтому # 3 выглядит хорошо, но примеры, которые я видел, выглядят так, как будто они раскрывают всю модель сущности.Я хочу выбрать таблицы для показа, а также создать свои собственные сервисные методы, используя linq для объединения таблиц.Может ли # 3 сделать это?

# 2 выглядит лучше, чем # 1, так как для него не требуется интерфейс и, похоже, конфигурация меньше.

# 1 выглядит наиболее настраиваемым, который одновременно являетсяхорошо и плохо.Полагаю, это моя запасная позиция.

Любой совет?

Ура

Стив

1 Ответ

2 голосов
/ 14 сентября 2010

То, с чем вы сталкиваетесь, относится к основам Silverlight (по крайней мере, в том виде, в каком оно существует сегодня). Ваш вывод верен - «Служба WCF с поддержкой Silverlight», вероятно, является вашим лучшим выбором для быстрого вызова службы из Приложение для телефона, но я бы хотел предложить другое обоснование.

Silverlight поддерживает только подмножество параметров связи, предлагаемых WCF, - он поддерживает только BasicHttpBinding, тогда как WCF предлагает гораздо больше, включая поддержку «улучшений», которые являются частью спецификаций WS- *. В результате вам необходимо установить определенные флаги и сделать определенный выбор в ваших службах WCF, чтобы сделать их пригодными для использования Silverlight. Используя шаблон «Служба WCF с поддержкой Silverlight», эта работа для вас сделана. Это также означает, что если вы хотите обеспечить безопасную связь через веб-сервис с Silverlight, вы должны использовать / настроить HTTPS.

Что касается интерфейсов и т. Д., На самом деле это работает для обеих опций - необходимость в настройке ServiceContract против "подразумевающего" его из определенных операций возникла в .Net 3.5 SP1, если моя память мне правильно служит. Обратите внимание, что хотя «обычный» Silverlight также поддерживает связь со службами WCF на основе TCP, я считаю, что телефон этого не делает.

Теперь для выбора № 3 - Служба данных WCF (или художник, ранее известный как ADO.Net Data Services.) Это делает для вас настройку службы на основе REST для предоставления ваших внутренних данных (где предыдущие 2 варианты больше / обычно основаны на SOAP.) Более подробную информацию и вводную информацию по этому вопросу можно найти здесь - http://msdn.microsoft.com/en-us/data/bb931106.aspx. Теперь эти сервисы обычно используют старый добрый http и определенно могут использоваться Silverlight и телефоном; Кроме того, их полезные нагрузки имеют меньший вес, чем аналоги SOAP.

Независимо от того, использовать ли REST или SOAP или нет - выбор дизайна - подход SOAP более RPC-подобен (определяют методы в сервисе, которые вызываются для выполнения определенных действий с конкретными приоритетами), опция REST более OOP-подобна , с некоторой "авто-магией", добавленной для хорошей меры. Суть "авто-магии" в том, что вам действительно нужно понять магию (и ее ограничения) перед началом, иначе ваш дизайн может не соответствовать вашим требованиям.

Надеюсь, это помогло! John

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