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 utilizando código JavaScript que tiene el mismo aspecto que una llamada de función de JavaScript normal. Vea ASP.NET Web Services in AJAX 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 un 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 pregenerada 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 objetos de programación web 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, consulte Cómo elegir entre solicitudes HTTP POST y HTTP GET para extremos AJAX de ASP.NET.
  • Puede utilizar las propiedades ResponseFormat y ResponseFormat para hacer que su servicio devuelva datos XML en lugar de la notación de objetos de Javascript predeterminada (JSON). Haciendo esto con el marco de AJAX de ASP.NET el cliente JavaScript recibirá un objeto DOM de XML.
  • No se puede cambiar ninguna otra propiedad de los atributos 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, consulte Modelo de objetos de programación web de WCF. Para ver un ejemplo de código que muestra este enfoque, vea AJAX Service with JSON and XML Sample.

Consulte 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 web