Compartir a través de


Infraestructura de datos dinámicos de ASP.NET

Actualización: noviembre 2007

Este tema describe el diseño de un sitio web de datos dinámicos de ASP.NET e incluye información sobre las carpetas y archivos que se crean de forma predeterminada.

Puede crear un sitio web de datos dinámicos de ASP.NET en Visual Studio 2008 utilizando la plantilla Sitio web de campos dinámicos. Esta plantilla genera los controles de usuario, plantillas de página y archivos web ASP.NET que los datos dinámicos utilizan para crear una interfaz de usuario para trabajar con los datos.

Clase de contexto de datos

Una aplicación web de datos dinámicos requiere un objeto MetaModel y un contexto de datos registrado. El contexto de datos puede ser una clase de LINQ to SQL (una instancia de la clase System.Data.Linq.DataContext) o una clase de ADO.NET Entity Framework. La clase de contexto de datos debería estar en la carpeta App_Code en la raíz de la aplicación. Para obtener más información, vea Información general sobre el modelo de datos dinámicos de ASP.NET.

Carpetas y archivos

En la tabla siguiente se describen los archivos y carpetas que se crean en el nivel raíz de un sitio web de datos dinámicos de ASP.NET.

Archivo o carpeta

Descripción

Datos dinámicos

Contiene carpetas para controles personalizados y para páginas que muestran datos. Para obtener más información sobre las subcarpetas de la carpeta de datos dinámicos, vea Estructura de la carpeta DynamicData más adelante en este tema.

Default.aspx

Una página ASP.NET que muestra las tablas y vistas que están registradas en la instancia de MetaModel. Cada nombre de tabla se representa como un control HyperLink que muestra el contenido de la tabla seleccionada.

Global.asax

Contiene un método para registrar una instancia de la clase MetaModel y para agregar rutas al objeto RouteCollection. Para obtener más información, vea Configuración del sitio web más adelante en este tema.

Site.css

Una hoja de estilos en cascada que utilizan las plantillas de página y controles de los datos dinámicos.

Site.master

La página maestra del sitio. Default.aspx y las plantillas de página de los datos dinámicos utilizan la página maestra.

Web.config

El archivo de configuración del sitio. Para obtener más información, vea Configuración del sitio web más adelante en este tema.

Configuración del sitio Web

De forma predeterminada, un sitio web de datos dinámicos incluye archivos que son típicos de los sitios web ASP.NET. Sin embargo, los archivos incluyen información o código que son específicos de los datos dinámicos. En esta sección se proporciona información sobre los archivos que utilizan los datos dinámicos.

Archivo Global.asax

En un sitio web de datos dinámicos, el archivo Global.asax contiene un controlador para el evento Application_Start que se provoca cuando se inicia la aplicación web. En el controlador, se llama al método RegisterRoutes. El método RegisterRoutes contiene una instancia de MetaModel y una llamada con comentarios al método RegisterContext. Para habilitar las operaciones de datos dinámicos, debe habilitar el método RegisterContext y pasarle un contexto de datos válido, por ejemplo una instancia de DataContext o un contexto de ADO.NET Entity Framework.

De forma predeterminada, el archivo Global.asax de un sitio web de datos dinámicos llama al método Add(Type) para agregar enrutamiento a las páginas List.aspx, Details.aspx, Edit.aspx e Insert.aspx para cada acción.

Plantilla de página ListDetails.aspx

Una plantilla de página es un archivo .aspx que incluye controles que los datos dinámicos pueden utilizar para crear una interfaz de usuario para mostrar y editar datos. Las rutas que se definen en el archivo Global.asax determinan qué plantillas de página utilizan los datos dinámicos para realizar las acciones Lista, Detalles, Insertar y Modificar. Para obtener más información, vea Información general sobre la plantilla de página y la técnica scaffolding de datos dinámicos de ASP.NET.

Puede cambiar el enrutamiento a las plantillas de página agregando y quitando las definiciones de ruta en el archivo Global.asax. (El archivo Global.asax incluye rutas alternativas predefinidas, pero están dentro de comentarios). Para obtener más información, vea los comentarios del archivo Global.asax.

Para dejar todas las tablas visibles mediante los datos dinámicos, establezca la propiedad ScaffoldAllTables del objeto ContextConfiguration en true. Como alternativa, puede establecer el atributo ScaffoldTableAttribute en true en la clase parcial que representa la tabla que desea mostrar. El atributo ScaffoldTableAttribute permite mostrar selectivamente las tablas mediante datos dinámicos.

Archivo Site.master

El archivo Site.master es la página maestra del sitio web de datos dinámicos. La utilizan todas las plantillas de página de datos dinámicos. El archivo Site.master contiene un control System.Web.UI.ScriptManager cuya propiedad EnablePartialRendering está establecida en true. Para obtener más información, vea Información general sobre las páginas principales ASP.NET.

  • Nota   Si la propiedad EnablePartialRendering se establece en true, las excepciones que genera el servidor de bases de datos producen un error en tiempo de ejecución en el explorador. Por ejemplo, si intenta actualizar una fila que tiene una restricción de columna definida en la base de datos, y los datos de la actualización infringen la restricción, el explorador mostrará un error en tiempo de ejecución. Si la propiedad EnablePartialRendering está establecida en false, el explorador no muestra un mensaje de excepción detallado. En su lugar, el explorador muestra un error HTTP 500 que indica que se ha producido un problema durante el procesamiento del servidor. Para obtener más información, vea Agregar funcionalidad AJAX y de cliente.

Archivo Web.config

La plantilla de sitio web de datos dinámicos de Visual Studio genera un archivo Web.config que contiene elementos que son específicos de los datos dinámicos, además de los utilizados para todos los sitios web ASP.NET. En la sección assemblies, se agregan los siguientes archivos DLL:

  • System.Web.Abstractions

  • System.Web.Routing

  • System.ComponentModel.DataAnnotations

  • System.Web.DynamicData

  • System.Data.Linq

El prefijo de etiqueta "asp:" está registrado para el espacio de nombres y ensamblado System.Web.DynamicData.

Los controles de la carpeta FieldTemplates utilizan los siguientes controles del ensamblado System.Web.DynamicData.

El módulo de enrutamiento de direcciones URL UrlRoutingModule se agrega al elemento httpModules y a la sección system.webServer.

Estructura de la carpeta DynamicData

En la tabla siguiente se describen las subcarpetas de la carpeta DynamicData.

Archivo o carpeta

Descripción

Contenido

De forma predeterminada, contiene la carpeta Images y dos controles (GridViewPager.ascx y FilterUserControl.ascx). La carpeta Images contiene archivos gráficos que se utilizan como iconos del control de paginación. FilterUserControl.ascx es un control de usuario ASP.NET que se utiliza para filtrar las columnas de clave externa. Para obtener más información, vea Controles de servidor web de datos dinámicos en este documento.

CustomPages

Carpeta contenedora para plantillas de página personalizadas. Las plantillas de página personalizadas se utilizan para invalidar las plantillas de página que se definen en DynamicData\PageTemplates. Por ejemplo, si el contexto de datos contiene una tabla denominada Products, puede crear una carpeta DynamicData\CustomPages\Products y agregar páginas .aspx en la nueva carpeta que se utilizan para mostrar los datos de Products. Una manera fácil de comenzar es copiar las páginas de la carpeta DynamicData\PageTemplates a la nueva DynamicData\CustomPages\Products y, a continuación, modificar las plantillas. Para obtener más información sobre las plantillas de página personalizadas, vea Cómo: Personalizar el diseño de una tabla individual mediante una plantilla de página personalizada.

FieldTemplates

Contiene los controles de usuario de datos dinámicos que se asignan a los tipos de datos del modelo de datos. Para obtener más información, vea Información general sobre las plantillas de campos de datos dinámicos de ASP.NET y Información general sobre las plantillas de campos de datos dinámicos de ASP.NET.

PageTemplates

Carpeta contenedora para plantillas de página que generan una interfaz de usuario que se utiliza para ver y modificar datos. Para obtener más información, vea Información general sobre la plantilla de página y la técnica scaffolding de datos dinámicos de ASP.NET.

Control GridViewPager

El archivo GridViewPager.ascx es un control de usuario que procede de WebControl. Se utiliza para mejorar la paginación cuando hay más de una página de datos para una tabla. El control de usuario GridViewPager se utiliza en las plantillas de página ListDetails.aspx y List.aspx.

Control FilterUserControl

El archivo FilterUserControl.ascx es un control de usuario ASP.NET que se utiliza para filtrar claves externas y columnas booleanas. El control FilterUserControl se utiliza en las plantillas de página ListDetails.aspx y List.aspx. Se inicializa una vez para cada clave externa y para cada columna booleana de la tabla.

Por ejemplo, en un sitio web de datos dinámicos que utilice la base de datos AdventureWorksLT, puede solicitar una página que muestre datos de la tabla Product. La tabla Product contiene la columna de clave externa ProductCategoryID que hace referencia a la tabla ProductCategory. Los datos dinámicos deducen que la clave externa ProductCategoryID corresponde al campo Name de la tabla ProductCategory. A continuación, sustituyen el campo Name de las tablas ProductCategory por el campo ProductCategoryID.

Cuando se muestra la tabla Product de la base de datos AdventureWorksLT, se utiliza el control FilterUserControl para crear un control DropDownList para la clave externa de ProductCategoryID, utilizando el nombre deducido para el campo ProductCategoryID. Puede seleccionar una categoría de producto para mostrar únicamente las filas de la tabla que contienen la categoría de producto seleccionada. Por ejemplo, si selecciona Mountain Bikes, solo se muestran las filas cuya categoría de producto es Mountain Bikes.

También se agrega un control FilterUserControl para cada columna booleana de una tabla. Para las columnas booleanas, puede seleccionar todos los campos o simplemente los marcados como verdadero o falso.

Limitaciones del control FilterUserControl

El control FilterUserControl resulta muy útil para las columnas booleanas y de clave externa que tienen relativamente pocas filas en la tabla a la que se hace referencia.

Vea también

Conceptos

Información general sobre los datos dinámicos de ASP.NET

Información general sobre el modelo de datos dinámicos de ASP.NET

Información general sobre la plantilla de página y la técnica scaffolding de datos dinámicos de ASP.NET

Otros recursos

LINQ to SQL

ADO.NET Entity Framework