Creazione di servizi WCF per ASP.NET AJAXCreating WCF Services for 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à.Microsoft ASP.NET AJAX enables you to quickly create Web pages that include a rich user experience with responsive and familiar user interface elements. 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.ASP.NET AJAX provides client-script libraries that incorporate cross-browser ECMAScript (JavaScript) and dynamic HTML (DHTML) technologies, and it integrates them with the ASP.NET 2.0 server-based development platform. Con ASP.NET AJAX è possibile migliorare l'esperienza utente e l'efficienza delle applicazioni Web.By using ASP.NET AJAX, you can improve the user experience and the efficiency of your Web applications.

ASP.NET AJAX è costituito da librerie di script client e da componenti server integrati per fornire un framework di sviluppo affidabile.ASP.NET AJAX consists of client-script libraries and of server components that are integrated to provide a robust development framework. 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.To access a service from an ASP.NET page: once the service URL is added to the ASP.NET Script Manager control on the page, service operations may be invoked using JavaScript code that looks exactly like a regular JavaScript function call. Vedere informazioni su ASP.NET AJAX sull'utilizzo dei servizi Web in AJAX framework.See Learn ASP.NET AJAX about the use of Web services within the AJAX framework.

La maggior parte dei servizi Windows Communication Foundation (WCF) possono essere esposta come servizio compatibile con ASP.NET AJAX aggiungendo un endpoint ASP.NET AJAX appropriato.Most Windows Communication Foundation (WCF) services may be exposed as a service compatible with ASP.NET AJAX by adding an appropriate ASP.NET AJAX endpoint.

Se si utilizza Visual Studio, è possibile utilizzare un modello predefinito per i servizi WCF con supporto AJAX, disponibile nel Aggiungi nuovo elemento finestra di dialogo quando si lavora con siti Web ASP.NET o applicazioni Web.If you are using Visual Studio, you may use a pre-built template for AJAX-enabled WCF services, available in the Add New Item dialog when working with ASP.NET Web Sites or Web Applications.

Se non si stanno utilizzando i modelli di Visual Studio, esistono due modalità per creare un endpoint ASP.NET AJAX:If you are not using the Visual Studio templates, there are two ways to create an ASP.NET AJAX endpoint:

Il modello di programmazione Web descritto nel HTTP Web WCF Programming Model Overview possono essere utilizzate con i servizi ASP.NET AJAX.The Web Programming Model described in the WCF Web HTTP Programming Model Overview may be used with ASP.NET AJAX services. In particolare:Specifically:

  • È possibile utilizzare gli attributi WebGetAttribute e WebInvokeAttribute per selezionare tra i verbi HTTP GET e HTTP POST.You can use the WebGetAttribute and WebInvokeAttribute attributes to select between HTTP GET and HTTP POST verbs. Se utilizzati correttamente, possono migliorare notevolmente le prestazioni dell'applicazione.If used correctly, this may significantly improve your application’s performance. Per altre informazioni, vedere procedura: scegliere tra HTTP POST e HTTP GET richieste per gli endpoint ASP.NET AJAX.For more information, see How to: Choose between HTTP POST and HTTP GET requests for ASP.NET AJAX Endpoints.

  • È possibile utilizzare le proprietà ResponseFormat e ResponseFormat affinché il servizio restituisca dati XML anziché la notazione JSON (JavaScript Object Notation) predefinita.You can use the ResponseFormat and ResponseFormat properties to cause your service to return XML data instead of the default JavaScript Object Notation (JSON). L'utilizzo di questo approccio con il framework ASP.NET AJAX fa sì che il client JavaScript riceva un oggetto XML DOM.Doing this with the ASP.NET AJAX framework causes the JavaScript client to receive an XML DOM object.

    Avviso

    Per funzionare, l'operazione deve impostare il tipo di contenuto su Text/XML.Your operation must set the content type to text/xml for this to work. In caso contrario, il client JavaScript riceverà una stringa che contiene XML anziché un oggetto XML DOM.Otherwise, the JavaScript client will receive a string containing the XML instead of an XML DOM object.

    Di seguito viene riportato l'esempio di un'operazione che restituisce dati XML con il tipo di contenuto impostato in modo appropriato:The following is an example of an operation that returns XML data with the content type set appropriately:

    [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.No other properties on the WebGetAttribute and WebInvokeAttribute attributes can be changed if compatibility with ASP.NET AJAX is required. Gli altri aspetti del modello di programmazione Web possono essere utilizzati a condizione che non vengano violate le convenzioni di chiamata ASP.NET AJAX.Other aspects of the Web Programming Model can be used as long as the ASP.NET AJAX calling conventions are not violated.

Scenari più avanzati è necessario comprendere alcuni dettagli aggiuntivi di supporto AJAX in WCF:More advanced scenarios require some additional details of AJAX support in WCF be understood:

  • Per comprendere il modo in cui i dati vengono trasferiti tra un client di pagina AJAX e un servizio WCF utilizzando JavaScript e per informazioni dettagliate su modalità di mapping dei tipi .NET Framework a tipi di JavaScript, vedere supporto per JSON e altri formati di trasferimento di dati.To understand how data is transferred between an AJAX page client and a WCF service using JavaScript, and for details on how .NET Framework types map to JavaScript types, see Support for JSON and Other Data Transfer Formats.

  • 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.To take advantage of ASP.NET features, for example, URL-based authentication and accessing the ASP.NET session information, you may want to enable the ASP.NET Compatibility Mode through configuration.

Gli endpoint AJAX in WCF possono essere utilizzati anche senza il framework ASP.NET AJAX.AJAX endpoints in WCF may even be consumed without the ASP.NET AJAX framework. Questa operazione richiede la comprensione dell'architettura di supporto di supporto AJAX in WCF.Doing so requires an understanding of the support architecture of AJAX support in WCF. Per una descrizione di questa architettura, vedere Web HTTP oggetto modello di programmazione WCF.For a discussion of this architecture, see WCF Web HTTP Programming Object Model. Per un esempio di codice che illustra questo approccio, vedere il servizio AJAX con JSON e XML.For a code sample demonstrating this approach, see the AJAX Service with JSON and XML.

Vedere ancheSee Also

Modello di programmazione HTTP Web di WCFWCF Web HTTP Programming Model
Procedura: Aggiungere un endpoint ASP.NET AJAX senza usare la configurazioneHow to: Add an ASP.NET AJAX Endpoint Without Using Configuration
Procedura: Usare la configurazione per aggiungere un endpoint ASP.NET AJAXHow to: Use Configuration to Add an ASP.NET AJAX Endpoint
Procedura: Scegliere tra richieste HTTP POST e HTTP GET per endpoint ASP.NET AJAXHow to: Choose between HTTP POST and HTTP GET requests for ASP.NET AJAX Endpoints