Molte delle applicazioni Windows Phone fanno l'uso della rete per accedere a risorse remote esposte tramite servizi REST o SOAP. Con essi le chiamate e la risposte passano in forma testuale, in XML o in JSON, e se di grosse dimensioni possono influire sulla velocità delle risposte, che può essere critica su dispositivi mobili.
Per dare il massimo dell'esperienza all'utente, è sempre quindi consigliabile ridurre al minimo di dati che devono transitare, ma oltre a questo c'è un'opzione subito sfruttabile che dà ottimi risultati: la compressione GZip. Il protocollo HTTP prevede, infatti, che si possa aggiungere tra gli header della richiesta uno di nome Accept-Encoding specificando GZip e/o Deflate (tra i più usati) come possibili algoritmi di compressione della risposta. Se il server lo supporta risponderà comprimendo la risposta e specificando l'header Encoding.
E' possibile facilmente supportare questo header anche nelle applicazioni Windows Phone, preparando a dovere la classe WebClient o HttpWebRequest e facendo uso di librerie come DotNetZip per la parte di decompressione. E' ancora più facile se si sfrutta una libreria che gestisce automaticamente le richieste, come SharpGIS.GZipWebClient. Poiché è disponibile con NuGet è sufficiente cercare tale libreria e installarla; una volta fatto è possibile utilizzare la classe SharpGIS.GZipWebClient in luogo di WebClient, oppure effettuare la seguente registrazione allo startup dell'applicazione:
WebRequest.RegisterPrefix("http://", SharpGIS.WebRequestCreator.GZip); WebRequest.RegisterPrefix("https://", SharpGIS.WebRequestCreator.GZip);
Automaticamente tutte le richieste verranno compresse e, soprattutto con contenuti testuali, si guadagnerà moltissimo nel traffico dati che deve transitare, anche fino all'80%.
Link a NuGet
http://nuget.org/packages/SharpGIS.GZipWebClient
Algoritmi di compressione in .NET
http://dotnetzip.codeplex.com/
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Gestire il routing HTTP in Azure Container App
Escludere alcuni file da GitHub Secret Scanning
Applicare un filtro per recuperare alcune issue di GitHub
Creare un agente A2Acon Azure Logic Apps
Fornire parametri ad un Web component HTML
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Potenziare la ricerca su Cosmos DB con Full Text Search
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
I più letti di oggi
- Analizzare il contenuto di una issue con GitHub Models e AI
- .NET Conference Italia 2025 - Milano
- Creare un agente A2Acon Azure Logic Apps
- The Agentic Day - Milano
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Usare la libreria PredicateBuilder per eseguire query tramite Entity Framework che usano or su più campi