Wcf удаленные вызовы процедур - PullRequest
0 голосов
/ 18 января 2011

Я создал специальное приложение журнала выпуска / развертывания для большой организации. Внешний интерфейс был реализован в Adobe AIR, поддерживаемом PHP с использованием amfphp для связи. Производительность была превосходной. В настоящее время меня попросили интегрировать некоторые функции Windows (например, календарь Outlook, sharepoint). Я думал, что будет проще работать с нативным клиентом, и я попытался создать макет в wpf (управляемый, но все еще нативный), и он выглядит действительно хорошо Хотя моя проблема на стороне сервера. Я имел в виду wcf, но, к моему удивлению, это мыльный фреймворк (xml), который не поддерживает обмен объектами между клиентом и сервером. Итак, моя проблема в том, как отправить клиенту объект «пользователь», как я уже делал с amphph?

Ответы [ 2 ]

0 голосов
/ 19 января 2011

Проблема в том, что на стороне сервера вы используете запатентованную технологию - amfphp, это особенность флэш-памяти, вам нужно реализовать что-то стандартное, что ваш клиент может использовать, и есть много вариантов.

  1. SOAP-сервисы из PHP (http://au2.php.net/soap)
  2. JSON (http://pear.php.net/package/Services_JSON) использует его в .NET с JSON.NET (http://json.codeplex.com/)
  3. Простой REST (Определите свои собственные текстовые структуры данных)

Я думаю, что SOAP немного многословен, и откатывать свои собственные утомительно. Исходя из веб / PHP фона, я думаю, JSON будет удобен.

(Возможно, вам также потребуется использовать класс .NET WebClient)

0 голосов
/ 19 января 2011

amfphp выполняет двоичную сериализацию объектов ActionScript.Вы должны иметь возможность передавать объекты назад и вперед, используя сериализованный XML, используя класс .NET, который представляет ваши данные, если вы не делаете что-то довольно сложное.Ссылки на службы автоматически предоставляют клиенту типы, используемые в параметрах метода WCF, и типы возвращаемых данных.

Сложность передачи объектов туда и обратно с WCF обычно заключается в отслеживании изменений и параллелизме.Если вы добавите несколько полей аудита (например, отметку времени) в класс, который вы используете для передачи туда и обратно, это должно обрабатывать параллелизм.Относительно того, какой тип обработки параллелизма вы используете для применения изменений, это зависит от ваших бизнес-правил.

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