Linee guida di progettazione per servizi Web XML creati tramite ASP.NET

Questo argomento è specifico di una tecnologia legacy. Servizi Web XML e client di servizi Web XML devono essere creati attualmente tramite Windows Communication Foundation.

I servizi Web rappresentano una potente tecnologia per la fornitura di servizi accessibili a livello di programmazione attraverso Internet. I consigli seguenti possono consentire di creare servizi Web funzionali:

  • I servizi Web supportano la comunicazione sincrona e asincrona tra il client e il server che ospita il servizio Web. Con la comunicazione sincrona, il client invia una richiesta di un servizio al server e attende la risposta. In questo modo, viene impedito al client di eseguire altre operazioni durante l’attesa dei risultati. La comunicazione asincrona, invece, impone al client di continuare l'elaborazione delle altre attività durante l’attesa della risposta. Il client risponde al risultato della richiesta inviata al servizio quando questa diventa disponibile.

    Quando si utilizza lo strumento del linguaggio di descrizione dei servizi Web (Wsdl.exe) per creare la classe proxy, vengono generate le versioni standard sincrone e asincrone dei metodi nella classe. Le versioni asincrone sono costituite da due metodi chiamati Begin e End. Il metodo Begin è utilizzato per avviare il servizio Web, il metodo End per il recupero dei risultati.

    L'utilizzo della comunicazione asincrona migliora l’utilizzo del sistema ed evita ritardi dal lato client durante l’attesa dei risultati provenienti dal servizio Web.

    Per un esempio di codice, vedere Procedura: Eseguire una chiamata asincrona da un client di servizio Web. Per ulteriori informazioni sulla comunicazione asincrona, vedere Comunicazione asincrona con i servizi Web XML.

  • Inoltrare numerose richieste del servizio attraverso Internet può influire sulle prestazioni dell'applicazione client. In fase di progettazione del servizio Web, utilizzare le richieste del servizio in modo efficiente tramite la creazione di metodi che raggruppano insieme le informazioni correlate. Si supponga, ad esempio, di avere un servizio Web che recupera informazioni relative a un libro. Anziché avere metodi separati per recuperare titolo, autore ed editore del libro, creare un metodo che restituisce tutte queste informazioni in una richiesta del servizio. Trasferire contemporaneamente un grande numero di informazioni è decisamente più indicato che trasferire più blocchi di informazioni di dimensioni ridotte.

  • Per un esempio di codice, vedere Procedura: raggruppare le informazioni correlate in un singolo metodo di servizio Web. Durante la progettazione del servizio Web, utilizzare procedure standard di programmazione orientata a oggetti. Utilizzare l’incapsulamento per nascondere i dettagli dell’implementazione. Per servizi Web di maggiore complessità, è possibile utilizzare ereditarietà e polimorfismo per il riutilizzo di codice e semplificazione della progettazione.

  • Per un esempio di codice, vedere Procedura: utilizzare l'ereditarietà in un servizio Web. Utilizzare la memorizzazione nella cache di output per migliorare le prestazioni del servizio Web. Quando si attiva la memorizzazione nella cache di output, i risultati di una richiesta del servizio vengono archiviati nella cache di output per un intervallo di tempo specificato. Se viene eseguita un’analoga richiesta del servizio Web, il risultato può essere ottenuto dalla cache piuttosto che dal completo ricalcolo. In questo modo, si migliora il tempo di risposta del servizio Web diminuendo la quantità di elaborazione richiesta al server. La memorizzazione nella cache può essere eseguita nel client e nel server. La proprietà Duration consente di specificare l’intervallo di tempo per memorizzare nella cache l'output di un servizio Web.

    La direttiva per abilitare la memorizzazione nella cache di output nel client è:

    <%@ OutputCache Duration="60" %>
    For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
    
  • Durante la progettazione del servizio Web, cercare di attenersi alla struttura di formattazione di uno schema.

  • I servizi Web utilizzano SOAP come trasporto primario e protocollo di serializzazione. Un messaggio SOAP è costituito da un insieme facoltativo di intestazioni e corpo del messaggio. La sezione di intestazione contiene informazioni che possono essere elaborate dall'infrastruttura nel server Web. Non è definita alcuna intestazione in SOAP. La sezione del corpo contiene informazioni elaborate da un'applicazione, ad esempio i parametri o il valore restituito per un servizio Web.

    Per ulteriori informazioni sull'utilizzo di intestazioni SOAP, vedere Utilizzando delle intestazioni SOAP.

  • Fornire documentazione relativa al servizio Web, ad esempio un file HTML statico che descrive l'operazione del servizio e le strutture dei dati. Includere inoltre esempi sulle modalità di utilizzo del servizio Web. Non utilizzare la descrizione del servizio o la pagina della Guida del servizio come unica documentazione.

Vedere anche

Attività

Procedura: eseguire una chiamata asincrona da un client del servizio Web
Procedura: raggruppare le informazioni correlate in un singolo metodo del servizio Web
Procedura: utilizzare l'eredità in un Servizio Web
Procedura: abilitare la cache di output su un client del servizio Web
Procedura: abilitare la cache di output lato server per un servizio Web

Concetti

Comunicazione asincrona con i servizi Web XML

Altre risorse

Creare servizi Web XML mediante ASP.NET
Utilizzo delle intestazioni SOAP