Kontekst: Obecnie używa WCF Data Services 5.0 z Odata dla aplikacji Windows 8 Store.Kompresja Odata - czy jest JAKIEKOLWIEK wsparcie? (WCF Data Services 5.0 dla WinRT)
Próbowałem skompresować OData przychodzące przez przewód z mojej usługi już dziś i napotykając na wiele problemów związanych z obsługą.
serializacja binarna nie jest obsługiwana.
json nie jest obsługiwana (biblioteka rzuca 'application/json' nie jest obecnie obsługiwana w nagłówku Content-Type)
json lite nie został jeszcze wydany
dodanie żądania gzip w Odpowiedź HTTP działa (serwer zwraca skompresowane) - ale biblioteka po stronie klienta nie chce jej deserializacji. (wyjątki analizowania XML)
Moja ostatnia próba już była próba dorwać odpowiedzi HTTP oraz ręcznie deserializować strumienia siebie (GZipStream nie jest dostępny, ale wiem, że istnieją alternatywy 3rd Party) - ale nie mogłem znaleźć ŻADNYCH Microsoft.Data.Services.Client.WindowsStore zdarzeń/nadpisań, które odsłoniłyby strumień do mnie.
Chciałem zaimplementować OData w celu zwiększenia wydajności i wydajności w porównaniu ze standardowymi usługami sieciowymi WCF - ale bez możliwości skompresowania strumienia przez przewód, którego nie dostaję.
Czy ktoś ma jakiekolwiek doświadczenie w tej kwestii lub porady dotyczące podejścia?
wiem że OData formacie XML jest gadatliwy ale ile dane są faktycznie wysyłanie? Może po prostu wyślesz mniej danych ... Czy istnieje jakiś konkretny powód, dla którego próbujesz skompresować dane? – Pawel
Wysyłam minimalną ilość danych dla dowolnego ekranu interfejsu użytkownika. Dwoma urządzeniami docelowymi aplikacji są Surface RT i Windows Phone 7. Kompresja danych przez kabel ma kluczowe znaczenie dla przestrzegania ograniczeń przepustowości, jakie mogą mieć urządzenia. –
W systemie Windows 7 istnieje zdarzenie o nazwie ReadingResponse w klasie DataServiceContext. Zapoznaj się z tym artykułem http://blogs.msdn.com/b/astoriateam/archive/2011/10/04/odata-compression-in-windows-phone-7-5-mango.aspx – Syler