Compartir a través de


Este artículo proviene de un motor de traducción automática.

Tecnología de vanguardia

Enlace de datos en AJAX 4.0 de ASP.NET

Dino Esposito

Descargar el código de ejemplo

Detener batir alrededor de la paladín: AJAX es posible sólo con un motor de JavaScript seguro que se ejecuta en el explorador del cliente y proporciona el fundamento para características más avanzadas y asincrónicas. La biblioteca de JavaScript está incorporada en ASP.NET 3.5 Service Pack 1 es un intento es necesario, pero es insuficiente, para entregar dicha una biblioteca. Una plataforma de ASP.NET AJAX más eficaz es necesaria y sólo se introducen como parte de ASP.NET AJAX 4.0.

Abstractly hablando, un basadas en AJAX solicitudes de cliente es una capa de presentación que combina completas capacidades de interfaz de usuario con la implementación de lógica de aplicación. La lógica de aplicación es básicamente el código detrás de todos los diagramas de caso de uso resultantes de las fases de diseño y análisis. La lógica de aplicación expresa el comportamiento previsto de la aplicación y cómo un usuario se espera que interactúe con todo el sistema.

Lo que hace solicitudes de cliente AJAX bastante único, al menos al compararlo con un Web o cliente, de cliente inteligente clásico es la necesidad presionando combinar elementos de la experiencia de usuario enriquecida con herramientas de programación de bajo nivel. Porque un front-end de AJAX se ejecuta en el explorador del cliente, puede basar sólo en HTML para producir la interfaz de usuario y sólo en JavaScript para enriquecer los elementos visuales con efectos especiales, arrastrar y colocar, obtención de datos asincrónica y actualizaciones parciales.

Para satisfacer las expectativas, una plataforma de AJAX moderna y eficaz debe proporcionar dos capacidades claves. En primer lugar, deben habilitar a los desarrolladores colocar llamadas asincrónicas a una fachada HTTP de módulos de servidor ad hoc. En segundo lugar, deben habilitar a los desarrolladores incorporar los datos sin procesar recibidos en la página existente Document Object Model (DOM). Ambas funciones, sin embargo, perdería gran parte de su atractivo inherente si implementa de forma que no es fácil y eficaz.

En ASP.NET 3.5 Service Pack 1, los programadores encontrar una API eficaz y confiable para conectar una capa de servicios Web basados en HTTP de forma asincrónica. ASP.NET AJAX 3.5 hace posible y fácil en general, para que hacer referencia a un servicio Web de la página de cliente. Cuando lo hace, el marco de trabajo genera también automáticamente una clase de proxy de JavaScript que refleja el contrato de servicio. El marco de AJAX existente, tanto en el servidor y cliente, trabaja para proteger a los desarrolladores de todos los detalles de la serialización de datos. Desde la perspectiva del desarrollador de JavaScript, un servicio Web remoto (todavía sujeto a la directiva de mismo origen conocido) es como un objeto de JavaScript local exponer el comportamiento a través de métodos.

ASP.NET 3.5 Service Pack 1 no ofrecen las virtudes mismas lo que respecta la creación de la interfaz de usuario. Facilita muy recuperar datos sin procesar del servidor, pero no ofrece gran parte en el medio de una interfaz eficaz para mostrar este datos sin procesar en una interfaz de usuario. La principal desventaja de la compatibilidad de AJAX de ASP.NET 3.5 Service Pack 1 es la falta de herramientas eficaces para enlace de datos de cliente y plantillas. Esta es la razón por un motor de representación de la plantilla client-side y sintaxis de enlace de datos made-to-measure son las características más atractivas que encontrará en ASP.NET AJAX 4.0.

En este artículo, analizaré los pilares de desarrollo de AJAX reales como compatibles en ASP.NET AJAX 4.0. Al hacerlo, se centraré principalmente en las plantillas de lado del cliente y enlace de datos pero no omitir otros regalos, como clases de proxy de ADO.NET Data Services y servicios de programación.

Pilares de desarrollo de AJAX reales

Desarrollo de AJAX reales sobre cómo generar interfaces de usuario enriquecida a través del Web, y se requiere la aplicación de nuevos modelos de diseño y el empleo de nuevas herramientas de programación.

Durante un largo tiempo, cualquier interfaz de usuario Web representa un paso completo hacia atrás en términos de uso y la capacidad de respuesta si se compara con cualquier interfaz de usuario de escritorio. Durante un largo tiempo, Web simplemente omite (porque no era relevante para su trabajo) de los desarrolladores un número de patrones de la interfaz de usuario y características de programación, incluidos captura predictiva, almacenamiento en caché, supervisión de tareas remotas, mostrar contextual y explorar en profundidad, subvistas, deshabilitación de las IU parcial y modalidad.

En el desarrollo Web clásico, la creación de la interfaz de usuario se delegó completamente en el lado del servidor y eficazmente implementado mediante enlace de datos del lado servidor y controles ad hoc. La llegada del paradigma de AJAX realizan este modo obsoleto y unappealing para aumentar el número de aplicaciones.

Enlace de datos, sin embargo, es muy eficaz una característica pase por alto en un modelo de programación AJAX. Además, orientación del objeto es difícil rechazar cuando aumenta la complejidad del código más allá de un umbral determinado. Al mismo tiempo una aplicación Web permanece una combinación única bastante de huellas pequeños, descargas almacenable en caché y completas capacidades de.

En la forma de desarrollo de AJAX del mundo real, bibliotecas de JavaScript son el modo sólo asequible para agregar capacidades de programación. A través de bibliotecas de JavaScript, ofrecen los cimientos de orientación del objeto en un lenguaje OOP no;ofrecen widgets de interfaz de usuario rica y comerciales;y puede ofrecer herramientas de programación a eficaz código de enlace de datos completamente en el cliente.

Sin un modelo eficaz para el enlace de datos de cliente, no puede tener una plataforma eficaz para el desarrollo de AJAX del mundo real.

Requisitos para el enlace de datos de cliente

Hay dos modelos fundamentales para implementar funcionalidades de enlace de datos. Uno es el patrón mensaje HTML y el otro es el patrón de plantillas del lado del explorador. El primero implica realizar un servicio remoto llamada a un componente que devuelve el marcado HTML prearranged listo para mostrar. El último es sobre todo la configuración de maquinaria para descargar datos sin procesar y decidir en el cliente cómo representarlo.

El patrón mensaje HTML es similar a una forma inteligente de representación parcial, excepto que no implican ningún estado de vista y puede configurarse para ser una operación autónoma no enlazada a cualquier otras operaciones de devolución de datos que ocurren en la misma aplicación. En una implementación del patrón mensaje HTML, todo lo que tiene lugar en el servidor; cualquier enlace de datos es esencialmente un formulario de datos clásicos de lado del servidor enlace relacionadas con controles como ListView, DataGrid y contenedores administrados de datos recopilados.

El patrón mensaje HTML puede implementarse fácilmente con las herramientas disponibles en ASP.NET 3.5. Todo lo que requiere en el cliente es el enlace de volverá marcado a la página DOM. El fragmento de código siguiente muestra qué se necesita realmente desde una perspectiva de codificación:

grid.innerHTML = markup;

En el ejemplo, cuadrícula indica el elemento HTML para contener el marcado, normalmente se trata de una etiqueta DIV. La variable denominada marcado, por otro lado, indica que cualquier bloque chunk de HTML obtenido como una respuesta de una llamada al método de servicio.

Lo hace falta decir que el servicio utilizado para implementar el patrón mensaje HTML debe incorporar la lógica para recuperar o calcular los datos para devolver más cualquier lógica necesaria para dar formato a los datos a HTML.

En general, una solución basada en el patrón mensaje HTML requiere más ancho de banda a medida que aumenta el tamaño promedio de respuesta para cada llamada a método remoto.

El patrón de plantillas del lado del explorador (BST) requiere más código de su lado pero también puede ofrecer mejores resultados tanto en términos de flexibilidad y optimización del ancho de banda. El patrón BST se basa en la idea que realizar una llamada remota para recuperar datos. A continuación, se descargan datos en un formato que permite la manipulación con JavaScript en el cliente. Por último, los datos se combinan con la página existente DOM y genera cualquier interfaz compleja que necesita.

Demasiado a menudo, la eficacia del paradigma de AJAX erróneamente se representa con la posibilidad de forma asincrónica actualizar pequeñas partes de la interfaz de usuario. Una cosa de obtener un valor escalar de forma asincrónica es (es decir, el saldo actual de una cuenta bancaria) e insertar que en la página DOM;es bastante otra cosa para actualizar una matriz de datos que cambian con frecuencia y requiere una infraestructura de tipo cuadrícula para mostrar de forma asincrónica.

El servidor es sencillo con controles de servidor, como sigue:

Collection<StockInfo> stocks = GetLatestQuotes(...);
DataGrid1.DataSource = stocks;
DataGrid1.DataBind();

¿Cuál sería el equivalente de dicho código para el cliente? La primera parte puede asignarse fácilmente a las características de ASP.NET 3.5. Todo lo que debe hacer es crear instancias y utilice un proxy de cliente para un servicio remoto que es capaz de conseguir que los valores actualizados, como lo:

var service = new Samples.Services.FinanceService();
var stocks = service.GetLatestQuotes(...);

La variable de cotizaciones es una matriz de JavaScript de objetos que representa los datos que ha recibido. ¿Cómo cabrían este fragmento de datos sin procesar en un diseño HTML existente? El patrón BST está aquí para ayudarle. Requiere que defina los siguientes elementos: su propia sintaxis para plantillas y marcadores de datos relacionados;su propia sintaxis para enlazar datos reales a los marcadores de posición;un generador HTML que toma las plantillas y los datos y genera actualiza marcado;y pegue el código para unir se todo mientras ofrece una interfaz de programación manejable.

ASP.NET AJAX 4.0 proporciona una implementación del patrón BST fuera del cuadro. Andamiaje para plantillas de ASP.NET AJAX se define en el archivo MicrosoftAjaxTemplates.js. Tiene que hacer referencia a este archivo a través del control ScriptManager (o ScriptManagerProxy) si utiliza páginas principales. Si utiliza ASP.NET MVC o prefiere hacer referencia a archivos de secuencia de comandos a través de la tradicional < secuencia de comandos > aetiqueta, que también debe agregar una referencia preliminar en MicrosoftAjax.js.

Sintaxis de plantillas HTML

Años de programación de ASP.NET han demostrado más allá de cualquier duda razonable que plantillas son una forma excelente para crear una interfaz de usuario Web a partir de datos. Una plantilla HTML es un fragmento de código HTML que contiene literales, los controles de ASP.NET y los marcadores de posición para enlazar datos. Enlazado a datos sin procesar y procesado por un motor ad hoc, una plantilla HTML se transforma en HTML sin formato para el explorador para representar. Una plantilla existe para enlazar datos y originan un fragmento de formato para mostrar;hasta que se produce el enlace, la plantilla se oculta.

A pesar de una descripción relativamente sencilla, una plantilla HTML es bastante difícil de implementar en un marco de AJAX reales. Unos pocos intentos realizados por bibliotecas populares, tales como prototipo JS, para formalizar un plantilla HTML. Aunque acuerdo común en las características uno debe esperar de una plantilla HTML, todavía no existe un modelo común para definir una plantilla HTML en un explorador.

Una plantilla debe poder representar el marcado compatible con XHTML. Una plantilla debe procesarse tan rápido como sea posible el motor de representación subyacente y debe permitir que el motor de representar un gran porcentaje del marcado antes de que el usuario es consciente de hay una respuesta retardada de la aplicación. Una plantilla debe admitir una sintaxis muy simple para enlace que es fácil de leer, mientras no se limitan a sólo los casos sencillos. Debe poder mezclar marcado y código en una plantilla. Idealmente, el código que desencadena la representación de la plantilla debe ser declarativo y no especialmente intrusivo.

Revisemos las características del modelo de plantilla HTML compatibles con ASP.NET AJAX 4.0.

En ASP.NET AJAX 4.0, una plantilla HTML es una etiqueta DIV, o cualquier otra etiqueta contenedor decorado con el sys: atributo de clase de plantilla, como se muestra a continuación:

<div>
<ul id="MyItem" class="sys-template">
       <li>
         {{ Symbol }}, {{ Quote }}, {{ Change }}
       </li>
</ul>
</div>

El sys-clase de plantilla CSS es una convención que marca el elemento y su contenido, como inicialmente invisible. Tenga en cuenta que la sys-plantilla debe definirse explícitamente en la página principal, o en cada página, como sigue:

<style type="text/css">
.sys-template { display:none; visibility:hidden; }
</style>

Cuando se procesa, una plantilla tiene un contexto de datos y el cuerpo de la plantilla puede enlaces de host a campos públicos y propiedades del objeto de contexto de datos. Asimismo, los elementos en la plantilla pueden hacer referencia cualquier expresión de JavaScript que se evalúa como una cadena.

Sintaxis de enlaces de datos

La sintaxis para expresar un enlace entre un marcador de posición en la plantilla y datos externos es como sigue:

{{ expression }}

Como se ha mencionado, la expresión puede ser el nombre de un miembro público del objeto de contexto de datos o una expresión de JavaScript que devuelve una cadena. Estas expresiones pueden aparecer en cualquier parte la plantilla y pueden utilizarse también para asignar un valor a un atributo, como se muestra a continuación:

<div>
  <ul id="MyItem" class="sys-template">
     <li>
       <asp:Label runat="server"
            Text="{{CompanyName}}" />
     </li>
  </ul>
</div>

Una plantilla HTML no tiene que realizarse de literales HTML sin formato;Puede utilizar el marcado ASP.NET así. Dado el fragmento de código anterior, mostramos el marcado emitido por el control de etiqueta:

<span>{{ CompanyName }}</span>

Como puede ver, el uso de un control de servidor en el código fuente de la página no afectar al procesamiento del lado del cliente de plantillas de.

Eventos de cliente pueden definirse dentro de una plantilla mediante la sintaxis familiar onXXX o mediante la función de addHandler $ en Microsoft AJAX Library.

Control DataView y la ejecución de la plantilla

Para mostrar los datos, una plantilla debe tener crear instancias, enlazado a datos y representa dentro de un contenedor. El control de cliente Sys.UI.DataView puede utilizarse para automatizar y simplificar todas estas tareas.

El control de DataView es esencialmente un componente toma algunas entrada datos y la plantilla ASP.NET AJAX y genera marcado HTML que se mostrará dentro de la página. También se hace referencia la DataView como un componente de comportamiento. En general, un comportamiento es un componente de secuencia de comandos que, una vez conectado a un elemento de DOM, cambia la forma en que el elemento HTML funciona en el explorador del cliente. Puede trabajar con un comportamiento de dos maneras. Puede adjuntar mediante declaración el comportamiento a su elemento de DOM de destino, o puede crear una instancia del comportamiento y configurarlo mediante programación. En el último caso, la asociación entre el comportamiento y la plantilla es sólo parte de la configuración. Vamos a tratar en primer lugar el método declarativo.

Antes de entraré cualquiera aún más, sin embargo, permítame clarificar que la DataView es sólo un componente posible comportamiento. Nada lea más adelante sobre creación de instancias declarativa y datos adjuntos se aplica a cualquier comportamiento que se puede ejecutar a través de ASP.NET AJAX.


Figura 1 el comportamiento de DataView en acción

Asociar comportamientos mediante declaración

Para adjuntar comportamientos a un elemento de DOM, utilice el sys: asociar el atributo personalizado. Como puede ver, está asociado con un espacio de nombres URI que facilita XHTML compatible con el atributo. Se declara el prefijo sys en el cuerpo de < >elemento:

<body xmlns:sys="javascript:Sys" ...>

Los sys prefijo mapas al espacio de nombres javascript:Sys URI definido en el Microsoft AJAX Library. Mediante el sys: adjuntar atributo sirve sólo el propósito de establecer una asociación entre un comportamiento existente y un elemento HTML. Deberá crear una instancia del componente de comportamiento. Para ello, definir otro atributo namespaced personalizado en el cuerpo de < >elemento. El valor del atributo hará referencia el objeto de JavaScript para crear una instancia:

<body xmlns:sys="javascript:Sys"
      xmlns:dataview="javascript:Sys.UI.DataView" ...>

El nombre del atributo: vista de datos, en el fragmento de código anterior, es arbitrario y puede cambiarse a cualquier otro que desee. Cualquier nombre que elija, sin embargo, debe mantenerse en el resto del código para hacer referencia el comportamiento.

La creación de instancias eficaz de cualquier comportamiento de la secuencia de comandos adjunta se produce cuando se carga la página y el elemento de DOM se procese. El explorador que se carga la página que no sepa nada acerca de cómo controlar dichos comportamientos definidos en la biblioteca. El marco de ASP.NET AJAX es el responsable último de la creación de instancias de sus propios comportamientos. Sin embargo, el marco de ASP.NET AJAX requiere instrucciones ad hoc de usted para continuar. En concreto, desea que el marco para comenzar durante el DOM analizar el proceso y que busque en el contenido de cualquier elemento analizado para encargarse de cualquier sys: asociar atributos.

Figura 2 controlar un objeto DataView mediante programación

<script type="text/javascript">

// Define a global instance of the DataView
var theDataView = null;

// This function can be called from anywhere in the page to
// fill the template with passed data and update the page.
function renderTemplate(dataSource) 
{
    // Ensure we have just one copy of the DataView.
    // The DataView's constructor gets a DOM reference to the template.
    if (theDataView === null)
        theDataView = new Sys.UI.DataView($get("MyTemplate"));

    // Bind data to the template associated with the DataView
    theDataView.set_data(dataSource);

    // Force the template to render 
    theDataView.refresh();
}

</script>

Por motivos de rendimiento, el marco de ASP.NET AJAX no está diseñado para automáticamente encargarse de cualquier elemento de DOM que del explorador se encuentra el camino. Es, por lo tanto, hasta para indicar explícitamente qué elementos de DOM debe examinarse para adjuntos comportamientos que admiten la creación de instancias declarativa. Habilitar un elemento de DOM contener los comportamientos de forma declarativa instancias utilizando la sys: activar el atributo. Utilice el atributo en el cuerpo de < >elemento y establézcala en una lista separada por comas del elemento ID:

<body xmlns:sys="javascript:Sys"
      xmlns:dataview="javascript:Sys.UI.DataView"
      sys:activate="customerList">

El código anterior indica el marco para crear automáticamente una instancia de cualquier comportamiento que puede estar conectado al elemento de DOM customerList.

También puede utilizar el símbolo comodín (*) si desea activar en todo el documento. Utilice esta opción con cuidado, especialmente en las páginas grandes porque puede introducir un retraso de procesamiento. Con el comportamiento de DataView completamente configurado en el cuerpo de < >elemento, todo lo que queda por hacer es enlazar datos actualizados con la plantilla:

<div id="customerList">
    <ul class="sys-template"
        sys:attach="dataview"
        dataview:data="{{ theCustomers }}">
        <li>
            <span ><b>{{ ID }}</b></span>
            <asp:label runat="server"
                 Text="{{ CompanyName }}"></asp:label>
        </li>
    </ul>
</div>

El componente de DataView tiene una interfaz de programación enriquecida que, entre otras cosas, incluye una propiedad de datos. La propiedad de datos representa el contexto de datos de la plantilla enlazada. Puede establecer la propiedad de datos mediante declaración y programación. En el fragmento de código siguiente, la propiedad de datos se establece mediante declaración en el contenido de una matriz global denominado theCustomers:

<ul class="sys-template"
    sys:attach="dataview"
    dataview:data="{{ theCustomers }}">
...
</ul>

En general, puede establecer la propiedad de datos a cualquier expresión de JavaScript que se evalúa como un objeto enlazable o una matriz de objetos. Opta por un enfoque declarativo cuando se desea enlazar la plantilla a algunos datos globales.

El ejemplo de descarga de código titulado A ejemplo página utilizar declarativa enlace muestra la lista completa de una página de ejemplo. La figura 1 muestra la página de ejemplo en acción.

Para el enlace mediante programación, deberá obtener una referencia al objeto DataView y llame al método establecedor de la propiedad de datos. Recuperar la instancia de DataView mediante el Ayudante de búsqueda de $ definido en el Microsoft AJAX Library. El identificador del componente DataView coincide con el ID del elemento DOM que está adjunta. Tenga en cuenta el fragmento del código siguiente:

<ul class="sys-template"
    sys:attach="dataview"
    id="DataView1">
...
</ul>
<input type="button"
       value="Perform binding"
       onclick="bind()" />

Puede realizar el enlace de datos sólo cuando el usuario hace clic explícitamente con el botón. Aquí es el código que tiene que colocar en el función JavaScript de enlace:

<script type="text/javascript">
    function bind() {
        theDataView = $find("DataView1");
        theDataView.set_data(theCustomers);
    }
</script>

Primero recuperar la instancia de DataView por ID y asigne nuevo contenido a su propiedad de datos.

Sugerencias para páginas principales

Cuando se utiliza una página maestra, normalmente deja el cuerpo de < >etiqueta de la plantilla de página en el patrón. A continuación, es necesario que modifique la página principal para asociar cualquier comportamiento necesario. Como alternativa, puede colocar el cuerpo de < >etiqueta de un marcador de posición de contenido y obligar a los desarrolladores establecer explícitamente en cualquier página de contenido.

El cuerpo de < >etiqueta es necesario para registrar adjuntables comportamientos, como la DataView y para habilitar los elementos DOM reconocer y crear instancias de comportamientos a través de la sys: activar el atributo.

Debe tenerse en cuenta que existe una alternativa para editar el cuerpo de < >etiqueta. Puede utilizar la nueva propiedad ClientElementsToActivate en el control ScriptManager, como sigue:

<asp:ScriptManager runat="server"
                   ID="ScriptManagerProxy1"
                   ClientElementsToActivate="*">
    <Scripts>
        <asp:ScriptReference Name="MicrosoftAjaxTemplates.js" />           
    </Scripts>
    ...
</asp:ScriptManager>

Tenga en cuenta que sólo algunas de las propiedades definidas en el control ScriptManager se reflejan en el control ScriptManagerProxy, que es el control contenedor que se utiliza para replicar la funcionalidad de ScriptManager en una página de contenido. En ASP.NET 4.0, sin embargo, el ClientElementsToActivate es entre las algunas propiedades puede tener acceso a ambos controles.

Quizá se pregunte cómo una propiedad de matriz de cadena como ClientElementsToActivate puede afectar al comportamiento de un marco JavaScript, como el marco de ASP.NET AJAX. Cuando se establece la propiedad ClientElementsToActivate, el control de administrador de la secuencia de comandos emite una línea adicional de secuencia de comandos dentro de la página que agrega una o más entradas a una matriz interna en el objeto sys.Application en Microsoft AJAX Library.

Utilizar el control de DataView mediante programación

Hasta ahora, hemos examinado un escenario en que la plantilla HTML está asociado a un comportamiento de DataView para mezclar juntos diseño y los datos en HTML nueva. Esto no es el enfoque al enlace de datos del lado cliente sólo es posible.

También puede crear una instancia del componente DataView mediante programación y pasar la plantilla que utilice como argumento. Figura 2 proporciona una lista breve pero ilustrativo.

El constructor de DataView toma una referencia del DOM para la plantilla para utilizar internamente. El método Set de la propiedad de datos obtiene datos actualizados a enlazar. Por último, el método de actualización fuerza una actualización de la plantilla HTML que muestra datos recién enlazado.

Para crear una instancia de la DataView, también puede recurrir a la $ Crear método auxiliar, como se muestra a continuación:

<script type="text/javascript">
function pageLoad() {
$create(
       Sys.UI.DataView,
       {},
       {},
       {},
       $get("MyTemplate")
);
}
</script>

Un escenario muy común en qué mediante una DataView definitivamente suaviza los esfuerzos de programación es rellenar una plantilla HTML complejo con datos proporcionados por un servicio Web remoto. Vamos a investigar más este punto.

Obtención de datos de servicios Web

La interfaz de programación de las características del componente de DataView un número de miembros diseñado específicamente para servir el escenario en el que el contenido de DataView proviene de un identificador URI remoto. La descarga incluye una lista de miembros de la DataView que funcionan con servicios Web.

Tenga en cuenta que el contenido del descarga de código titulado una DataView de búsqueda automática para consumir datos desde un identificador URI remoto no comprender totalmente la API completa del componente de DataView. Muchos más miembros existen para atender otras situaciones que trataré en profundidad en una columna futura.

El ejemplo de descarga de código titulado una DataView de búsqueda automática para consumir datos desde un identificador URI remoto muestra el código JavaScript que crea un objeto DataView cuando se carga la página. La DataView está configurada para recuperar sus datos inmediatamente colocando una llamada al método de servicio Web especificado.

La propiedad de dataProvider indica el origen de datos, mientras que la fetchOperation establece el método que se va a invocar. Por último, fetchParameters es un objeto de diccionario que contiene información de parámetros para el método. También establece a un objeto de JavaScript donde cada propiedad coincida con el nombre de un parámetro formal en la definición de método. En concreto, en el ejemplo anterior, el método GetQuotesFromConfig tiene el siguiente prototipo:

[OperationContract(Name="GetQuotesFromConfig")]
StockInfo[] GetQuotes(bool isOffline);

La DataView recibe la plantilla HTML para rellenar mediante la $ crear función auxiliar y una vez se han recuperado correctamente datos, llena los marcadores de posición en la plantilla.


Figura 3 enlazados a datos enriquecido de una página Web con AJAX y jQuery

El código de ejemplo contiene también un objeto de temporizador personalizado que se actualiza periódicamente la plantilla con un poco de animación jQuery. Cuando el temporizador de paso, una nueva operación de obtención se ordena utilizando cualquier valor actual para el "sin conexión"casilla de verificación. El "sin conexión"casilla de verificación indica si se espera el servicio Web para devolver falsas cotizaciones y los valores o conectarse a un servicio financiero del mundo real para tomar ofertas para cotizaciones en true. El servicio obtiene la dirección URL del servicio financiero y la lista de cotizaciones del archivo de configuración. (Vea el código de origen para obtener más detalles).

El próximo mes

Figura 3 muestra una página de ASP.NET AJAX de enlazado a datos de enriquecido y animada que utiliza representación del lado del cliente para enlazar datos sin formato a una plantilla HTML relativamente complejo. En ASP.NET AJAX 4.0, encontrará herramientas eficaces de programación que dichas páginas no más difíciles que realiza el enlace de datos de servidor tradicional de codificación.

La página se muestra en la figura 3 es el primero y el paso más sencillo, de una ruta más larga. Siguiente mes, trataré más características de plantillas enriquecidas y cómo colocar lógica en plantillas y, analizaremos el enlace de datos activos. Permanezca atento a las novedades.

Dino Esposito es un arquitecto de IDesign y coautor de "Microsoft .NET: Arquitectura de aplicaciones para la empresa"(Microsoft Press, 2008). En función de Italia, Esposito es ponente habitual en eventos del sector en todo el mundo. Puede participar en su blog en weblogs.asp.net/despos.