Compartir a través de


Creación de servicios WCF para AJAX de ASP.NET

AJAX de ASP.NET de Microsoft le permite crear rápidamente páginas web para que la experiencia del usuario sea más satisfactoria gracias a elementos de la interfaz de usuario más familiares y receptivos. AJAX de ASP.NET proporciona bibliotecas de scripts de cliente que incorporan las tecnologías ECMAScript (JavaScript) y HTML dinámico (DHTML) para varios exploradores, y las integra en la plataforma de desarrollo para servidores de ASP.NET 2.0. Gracias a las características de AJAX de ASP.NET puede mejorar la experiencia del usuario y la eficacia de sus aplicaciones web.

AJAX de ASP.NET consta de bibliotecas de scripts de cliente y de componentes de servidor que se integran para proporcionar un marco de desarrollo robusto. Para tener acceso a un servicio desde una página ASP.NET: una vez que se agrega la URL de servicio al control del administrador de scripts de ASP.NET en la página, las operaciones de servicio se pueden invocar usando código JavaScript que tiene la misma apariencia que una llamada de función de JavaScript normal. Vea Obtener información sobre ASP.NET AJAX para obtener información sobre el uso de servicios Web dentro del marco de AJAX.

La mayoría de los servicios de Windows Communication Foundation (WCF) se pueden exponer como servicio compatible con AJAX de ASP.NET agregando un extremo de AJAX de ASP.NET adecuado.

Si está usando Visual Studio, puede utilizar una plantilla precompilada para servicios WCF compatibles AJAX, disponible en el cuadro de diálogo Agregar nuevo elemento al trabajar con sitios web de ASP.NET o aplicaciones web.

Si no está utilizando las plantillas Visual Studio, hay dos maneras de crear un extremo de AJAX de ASP.NET:

El modelo de programación web descrito en Información general del modelo de programación web HTTP de WCF se puede utilizar con servicios de AJAX de ASP.NET. De manera específica:

  • Puede utilizar los atributos WebGetAttribute y WebInvokeAttribute para seleccionar entre los verbos HTTP GET y HTTP POST. Si se utiliza correctamente, esto podría mejorar significativamente el rendimiento de la aplicación. Para obtener más información, vea Cómo elegir entre solicitudes HTTP POST y HTTP GET para extremos AJAX de ASP.NET.

  • Puede usar las propiedades ResponseFormat y ResponseFormat para que su servicio devuelva datos XML en lugar de hacerlo en el formato JSON (Javascript Object Notation) predeterminado. Si hace esto con el marco de AJAX de ASP.NET, el cliente JavaScript va a recibir un objeto DOM XML.

    Bb412167.Warning(es-es,VS.100).gif Precaución:
    La operación debe establecer el tipo de contenido en texto o xml para que funcione. De lo contrario, el cliente JavaScript recibirá una cadena que contiene el XML en vez de un objeto DOM XML.

    A continuación se muestra un ejemplo de una operación que devuelve datos XML con el tipo de contenido establecido adecuadamente:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
    XElement x;
    //Get some data here...
    
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";    
    return x;
    }
    
  • No se pueden cambiar otras propiedades de los atributos de las clases WebGetAttribute y WebInvokeAttribute si es necesaria la compatibilidad con AJAX de ASP.NET. Se pueden utilizar otros aspectos del modelo de programación web con tal de que no se infrinjan las convenciones de llamada de AJAX de ASP.NET.

Los escenarios más avanzados requieren que se comprendan algunos detalles adicionales de compatibilidad de AJAX en WCF:

  • Para entender cómo se transfieren los datos entre un cliente de página de AJAX y un servicio de WCF utilizando JavaScript y para obtener detalles acerca de cómo se asignan los tipos de .NET Framework a los tipos de JavaScript, vea Compatibilidad con JSON y otros formatos de transferencia de datos.

  • Para aprovecharse de las características de ASP.NET, como, por ejemplo, la autenticación basada en URL y obtener acceso a la información de sesión de ASP.NET, puede que desee habilitar el modo de compatibilidad de ASP.NET mediante configuración.

Los extremos de AJAX en WCF incluso se pueden utilizar sin el marco de AJAX de ASP.NET. Para hacer esto es necesario comprender la arquitectura de compatibilidad de AJAX en WCF. Para ver una discusión sobre esta arquitectura, vea Modelo de objetos de programación web HTTP de WCF. Para ver un ejemplo de código que muestra este enfoque, vea Servicio AJAX con ejemplo JSON y XML.

Vea también

Tareas

Cómo agregar un extremo AJAX de ASP.NET sin usar la configuración
Uso de la configuración para agregar un extremo AJAX de ASP.NET
Cómo elegir entre solicitudes HTTP POST y HTTP GET para extremos AJAX de ASP.NET

Otros recursos

Modelo de programación de web HTTP de WCF