Condividi tramite


Creazione di servizi WCF per ASP.NET AJAX

Microsoft ASP.NET AJAX consente di creare rapidamente pagine Web caratterizzate da un'esperienza utente più soddisfacente con i classici elementi dell'interfaccia utente di elevata reattività. ASP.NET AJAX fornisce librerie di script client in cui sono incorporate tecnologie multibrowser ECMAScript (JavaScript) e DHTML (HTML dinamico), nonché l'integrazione con la piattaforma di sviluppo basata su server ASP.NET 2.0. Con ASP.NET AJAX è possibile migliorare l'esperienza utente e l'efficienza delle applicazioni Web.

ASP.NET AJAX è costituito da librerie di script client e da componenti server integrati per fornire un framework di sviluppo affidabile. Per accedere a un servizio da una pagina ASP.NET: dopo l'aggiunta dell'URL del servizio al controllo Script Manager di ASP.NET nella pagina, è possibile richiamare le operazioni del servizio utilizzando codice JavaScript che assomiglia esattamente a una normale chiamata alla funzione JavaScript. Per informazioni sull'utilizzo di servizi Web all'interno del framework AJAX, vedere Learn ASP.NET AJAX.

La maggior parte dei servizi Windows Communication Foundation (WCF) può essere esposta come servizio compatibile con ASP.NET AJAX aggiungendo un endpoint ASP.NET AJAX appropriato.

Se si sta utilizzando Visual Studio, è possibile utilizzare un modello predefinito per i servizi WCF compatibili AJAX, disponibile nella finestra di dialogo Aggiungi nuovo elemento quando si lavora con siti Web ASP.NET o applicazioni Web.

Se non si stanno utilizzando i modelli di Visual Studio, esistono due modalità per creare un endpoint ASP.NET AJAX:

Il modello di programmazione Web descritto in Panoramica sul modello di programmazione HTTP Web WCF può essere utilizzato con i servizi ASP.NET AJAX. In particolare:

  • È possibile utilizzare gli attributi WebGetAttribute e WebInvokeAttribute per selezionare tra i verbi HTTP GET e HTTP POST. Se utilizzati correttamente, possono migliorare notevolmente le prestazioni dell'applicazione. Per ulteriori informazioni, vedere Procedura: scegliere tra richieste HTTP POST e HTTP GET per gli endpoint ASP.NET AJAX.

  • È possibile utilizzare le proprietà ResponseFormat e ResponseFormat per fare in modo che il servizio restituisca dati XML anziché la notazione JSON (Javascript Object Notation) predefinita. L'utilizzo di questo approccio con il framework ASP.NET AJAX fa sì che il client JavaScript riceva un oggetto XML DOM.

    Bb412167.Warning(it-it,VS.100).gif Attenzione:
    Per funzionare, l'operazione deve impostare il tipo di contenuto su Text/XML. In caso contrario, il client JavaScript riceverà una stringa che contiene XML anziché un oggetto XML DOM.

    Di seguito viene riportato l'esempio di un'operazione che restituisce dati XML con il tipo di contenuto impostato in modo appropriato:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
    XElement x;
    //Get some data here...
    
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";    
    return x;
    }
    
  • Se è richiesta la compatibilità con ASP.NET AJAX, non è possibile modificare nessun'altra proprietà negli attributi WebGetAttribute e WebInvokeAttribute. Gli altri aspetti del modello di programmazione Web possono essere utilizzati a condizione che non vengano violate le convenzioni di chiamata ASP.NET AJAX.

Scenari più avanzati richiedono la comprensione di alcuni dettagli aggiuntivi di supporto AJAX in WCF:

  • Per capire come vengono trasferiti i dati tra un client della pagina AJAX e un servizio WCF utilizzando JavaScript e per ulteriori informazioni sul mapping di tipi .NET Framework a tipi JavaScript, vedere Supporto per JSON e altri formati di trasferimento dati.

  • Per sfruttare le funzionalità di ASP.NET, ad esempio, l'autenticazione basata su URL e l'accesso alle informazioni della sessione ASP.NET, è consigliabile abilitare la modalità di compatibilità ASP.NET tramite la configurazione.

Gli endpoint AJAX in WCF possono essere utilizzati anche senza il framework ASP.NET AJAX. Ciò richiede una comprensione dell'architettura di supporto di AJAX in WCF. Per una discussione su questa architettura, vedere Modello a oggetti per la programmazione HTTP Web di WCF. Per un esempio di codice che dimostra tale approccio, vedere Servizio AJAX con esempi JSON e XML.

Vedere anche

Attività

Procedura: aggiungere un endpoint ASP.NET AJAX senza utilizzare la configurazione
Procedura: aggiungere un endpoint ASP.NET AJAX con l'utilizzo della configurazione
Procedura: scegliere tra richieste HTTP POST e HTTP GET per gli endpoint ASP.NET AJAX

Altre risorse

Modello di programmazione HTTP Web WCF