Flex и WebServices

У нас есть приложение Flex, которое в значительной степени полагается на управляемый данными контент, предоставляемый через asp.net. В настоящее время большая часть этих данных предоставляется через объекты asp.net, которые затем сериализуются в XML и отправляются через простой обработчик ASHX. Затем он анализируется с помощью e4x в одноэлементных классах для заполнения либо самого себя, либо массивов подклассов, которые затем становятся доступными для остальной части приложения без дополнительных вызовов данных.

Это работает, но это лучший способ? Я прочитал довольно много статей, обсуждающих эту тему, но не смог прийти к единому мнению.

Стоит ли мне преобразовать их в веб-службы? Если да, как мне управлять привязками, автоматически импортировать их через Flex или создавать свои собственные? Каковы плюсы и минусы. Важным фактором в этом решении является скорость, минимальная задержка и максимальная пропускная способность.

Отдельно стоит отметить, что наше приложение не находится в корне домена и при локальной разработке выполняет вызовы данных на наши серверы разработки. В результате мы добавляем в приложение флэш-переменные, чтобы указать appRoot, который затем добавляется к URL-адресу службы по мере необходимости.

MyService.url = GeneralData.ApplicationRootUrl + "Services/foobar.ashx";

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

Большое спасибо


person Hawxby    schedule 31.01.2011    source источник


Ответы (2)


Это работает, но это лучший способ?

Лучшее очень субъективно в зависимости от вашей ситуации. Если это вообще возможно, я бы порекомендовал вам использовать шлюз AMF. Таким образом, ваши объекты могут немедленно преобразовать объекты на стороне сервера (классы .NET) в объекты на стороне клиента (классы AS3). Это большая экономия времени, потому что вам не нужно вручную создавать XML на серверной части или вручную обрабатывать его на передней панели. Также двоичный формат AMF будет давать гораздо меньшие пакеты, чем XML или SOAP WebService.

Для параметров .NET AMF я бы посмотрел на WebORB или FlourineFX

person JeffryHouser    schedule 31.01.2011
comment
Изучено, но основано на наших текущих условиях, на данный момент не очень практично. Спасибо за предложение, хотя - person Hawxby; 24.02.2011

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

MyService.url = "/Services/foobar.ashx";

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

Во-вторых, веб-службы SOAP используют сериализацию xml, поэтому, если вы используете свой обработчик для сериализации e4x или используете генератор веб-служб SOAP в Flash Builder, скорость будет почти такой же. Веб-служба SOAP, безусловно, будет немного медленнее, но разница будет от микросекунд до миллисекунд.

Однако с веб-службами ваша разработка ускорится, поскольку вам не придется создавать прокси-классы.

person Akash Kava    schedule 31.01.2011