У нас есть приложения Flex, которые подключаются к нашим веб-приложениям ASP.NET 3.5 и обычно загружают много данных. Теперь, рассматривая XML как транспорт, для каждого элемента он передает метаданные дважды, например ... вместо того, чтобы передавать значение int как <Customer CustomerID=23/>
, он передает <Customer><CustomerID>23</CustomerID></Customer>
... вот где сохранение полосы пропускания становится проблемой.
- FLEX не может читать GZip и DEFLATE сжатый HTTP-ответ (поэтому не могу использовать ни один из них)
- Я слышал о некоторых
WSCompression
, но теперь для этого требуется WSE 3.0. Я скептически отношусь к тому, чтобы вводить слишком много зависимостей в мою среду хостинга, которая требует слишком большого управления и накладных расходов. Является ли WSE 3.0 только библиотекой dll, которая не требует установки на производственном сервере? Требуется ли перезапись всегоWebService
атрибута? Или это простая одноразовая конфигурация и, более или менее, кто-нибудь знает, работает ли она с Flex? - Flex динамически генерирует веб-службы, и мы используем много его автоматически сгенерированного кода. Теперь, если мы хотим поддерживать сжатие, нужно ли нам переписывать много кода?
Самое простое решение, которое я могу придумать, - уменьшить количество ненужных тегов XML и преобразовать их в атрибуты для экономии полосы пропускания. Есть ли простой способ добиться этого, наши классы имеют более 50-70 свойств, я понимаю, что будет кошмаром добавлять атрибуты к каждому свойству, но мы не знаем, как это сделать в случае SOAP.
Вопрос:
В любом случае, что такое WSE 3.0, нужно ли его устанавливать на рабочий сервер? Чтобы включить WSCompression, нужен ли нам дополнительный код для интеграции в код нашей веб-службы, например, с каждым атрибутом WebMethod, нужно ли нам добавлять дополнительный код в атрибуты?
Есть ли простой способ пометить свойства атрибутами и принудительно сериализовать его в простой форме, например [SoapAttribute], который преобразует данные как атрибут вместо тега и работает ли он с FLEX или будет работать с любым клиентом?
Имеет ли SOAP стандартный формат только элементов или он может поддерживать атрибуты?