Compartir a través de


Creación de servicios WCF para ASP.NET AJAX

Microsoft ASP.NET AJAX le permite crear rápidamente páginas web que incluyen una experiencia de usuario enriquecida con elementos de interfaz de usuario dinámicos y conocidos. ASP.NET AJAX proporciona bibliotecas de scripts de cliente que incorporan tecnologías ECMAScript (JavaScript) y HTML dinámico (DHTML) entre exploradores y las integra con la plataforma de desarrollo basada en servidor ASP.NET 2.0. Mediante el uso de ASP.NET AJAX, puede mejorar la experiencia del usuario y la eficacia de las aplicaciones web.

ASP.NET AJAX consta de bibliotecas de script de cliente y de componentes de servidor integrados para proporcionar un marco de desarrollo sólido. Para acceder a un servicio desde una página de ASP.NET: una vez que la dirección URL del servicio se agrega al control administrador de scripts de ASP.NET de la página, las operaciones de servicio se pueden invocar mediante código JavaScript que se parece exactamente a una llamada de función de JavaScript normal.

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

Si usa Visual Studio, puede usar una plantilla pregenerada para los servicios WCF habilitados para AJAX, disponible en el cuadro de diálogo Agregar nuevo elemento al trabajar con ASP.NET sitios web o aplicaciones web.

Si no usa las plantillas de Visual Studio, hay dos maneras de crear un punto de conexión de AJAX de ASP.NET:

El modelo de programación web descrito en la información general del modelo de programación HTTP web de WCF se puede usar con ASP.NET servicios de AJAX. Concretamente:

  • Puede usar los WebGetAttribute atributos y WebInvokeAttribute para seleccionar entre verbos HTTP GET y HTTP POST. Si se usa correctamente, esto puede 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 ASP.NET puntos de conexión de AJAX.

  • Puede usar las ResponseFormat propiedades y ResponseFormat para hacer que el servicio devuelva datos XML en lugar de la notación predeterminada de objetos JavaScript (JSON). Al hacerlo con el marco de ASP.NET AJAX, el cliente de JavaScript recibe un objeto DOM XML.

    Advertencia

    La operación debe establecer el tipo de contenido en text/xml para que funcione. De lo contrario, el cliente de JavaScript recibirá una cadena que contiene el XML en lugar de un objeto XML DOM.

    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 en los WebGetAttribute atributos y WebInvokeAttribute si se requiere compatibilidad con ASP.NET AJAX. Otros aspectos del modelo de programación web se pueden usar siempre y cuando no se infrinjan las convenciones de llamada de AJAX ASP.NET.

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

  • Para comprender cómo se transfieren los datos entre un cliente de página de AJAX y un servicio WCF mediante JavaScript, y para obtener más información sobre cómo se asignan los tipos de .NET Framework a los tipos de JavaScript, consulte Compatibilidad con JSON y otros formatos de transferencia de datos.

  • Para aprovechar las ventajas de las características de ASP.NET, por ejemplo, la autenticación basada en direcciones URL y el acceso a la información de sesión de ASP.NET, es posible que desee habilitar el modo de compatibilidad de ASP.NET a través de la configuración.

Los puntos de conexión de AJAX en WCF incluso se pueden consumir sin el marco de AJAX de ASP.NET. Para ello, es necesario comprender la arquitectura de compatibilidad de la compatibilidad de AJAX en WCF. Para obtener una explicación de esta arquitectura, vea Modelo de objetos de programación HTTP web de WCF. Para obtener un ejemplo de código que muestre este enfoque, consulte el servicio AJAX con JSON y XML.

Consulte también