ADO.NET Data Services ( IV ). Consumir un servicio con Ajax

Después de ver cómo se puede consumir un servicio de ADO.NET Data Services desde una aplicación WinForm, ahora toca ver cómo puede hacerse lo mismo desde Ajax.

Para poder acceder desde Ajax es necesario referenciar la versión 3.6.0.0 de System.Web.Extensions. Asegúrate que en el proyecto tienes referenciada la versión adecuada.

Esta versión se incluye con ASP.NET 3.5 Extensions Preview. ( incluye el fichero MicrosoftAjaxDataService.js que es necesario para poder consumir el servicio de ADO.NET Data Services ).

Si el proyecto que has creado usa la versión 3.05.00, en el fichero de configuración Web.Config puede cambiarlo para que empiece a usar la 3.06.00.

<dependentAssembly>

<assemblyIdentity name=»System.Web.Extensions» publicKeyToken=»31bf3856ad364e35«/>

<bindingRedirect oldVersion=»3.5.0.0» newVersion=»3.6.0.0«/>

</dependentAssembly>

Para acceder al servicio es necesario se hace uso de Sys.Data.DataService.

function doQuery() {

var northwindService = new Sys.Data.DataService(«/NorthwindService.svc«); northwindService.query(«/Customers«, cbSuccess, cbFailure);

}

( cbSuccess y cbFailure son las funciones de callback a las que se llamará en caso de que todo vaya bien o de que haya algún error )

Es importante tener en cuenta, que sólo se permite llamar a servicios que estén en el mismo dominio..

function cbFailure(error, context, operation) {

$get(«spanResults«).innerHTML = «Error » + operation + «.»;
}

function cbSuccess(result, context, operation) {

var sb = new Sys.StringBuilder();
sb.append(«<table>«);

var firstRowOutput = false;
for (idx in result) {
    var customer = result[idx];
    if (!firstRowOutput) {
        sb.append(«<tr>«);
        for (key in customer) {
           if (key != «__metadata«) {
                sb.append(«<th>«);
                sb.append(key);
                sb.append(«</th>«);
            }        
        }
        sb.append(«</tr>«);
        firstRowOutput = true;
    }
    sb.append(«<tr>«);
    for (key in customer) {
        if (key != «__metadata«) {
            sb.append(«<td>«);
            sb.append(customer[key]);
            sb.append(«</td>«);
        }
    }
    sb.append(«</tr>«);

}

sb.append(«</table>«);     
$get(«spanResults«).innerHTML = sb.toString();

}

En este caso podemos observar que el formato de los datos es JSON.

image

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

2 comentarios en “ADO.NET Data Services ( IV ). Consumir un servicio con Ajax”

  1. una pregunta .. ya instale el Framenwork 3.5 son sp1 y tambien el vs2008 con su Sp1 .. pero no me carga o no me instala el ASP.NET 3.5… como hago eso??? desde que link exactamento lo bajo.. gracias por tu ayuda……..

  2. Hola,

    El post está hecho con las versiones previas a la Release.

    Si tienes Visual Studio 2008 SP1 instalado no tienes que hacer nada más, la primera release de ADO.NET Data Services se incluye con el SP1.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *