Compartir a través de


Tutorial: Crear un nuevo sitio web de datos dinámicos con la técnica scaffolding

Actualización: noviembre 2007

Este tutorial explica cómo crear una aplicación web básica que utiliza datos dinámicos de ASP.NET. Los datos dinámicos permiten crear un sitio web controlado por datos con poco o ningún código adicional. Una característica importante de los datos dinámicos es el mecanismo de scaffolding. Cuando el mecanismo de scaffolding está habilitado en un sitio web de datos dinámicos, ASP.NET analiza el modelo de datos y genera dinámicamente páginas web para cada tabla. Estas páginas web generadas automáticamente proporcionan capacidades de presentación, inserción, eliminación y edición para cada tabla.

En este tutorial se generará una aplicación que muestre páginas de datos de la base de datos de ejemplo AdventureWorks.

Vea un vídeo que muestra esta característica.

Requisitos previos

Para poder completar este tutorial, necesitará:

  • Microsoft Visual Studio 2008 Service Pack 1 o Visual Web Developer 2008 Express Service Pack 1.

  • La base de datos de ejemplo AdventureWorks o AdventureWorksLT. Para obtener información sobre la forma de descargar e instalar la base de datos de ejemplo de SQL Server, vea Microsoft SQL Server Product Samples: Database en el sitio CodePlex. Asegúrese de que instala la versión correcta de la base de datos de ejemplo para la versión de SQL Server que esté ejecutando (Microsoft SQL Server 2005 o Microsoft SQL Server 2008). 

Crear un sitio web de datos dinámicos

Puede crear los sitios web de datos dinámicos en Visual Studio utilizando una plantilla de sitio web.

Para crear un sitio web de datos dinámicos

  1. Inicie Visual Studio o Visual Web Developer.

  2. En el menú Archivo, haga clic en Nuevo sitio Web. O si no tiene esta opción, haga clic en Nuevo y, a continuación, haga clic en Sitio web.

    Aparece el cuadro de diálogo Nuevo sitio Web.

  3. En Plantillas instaladas de Visual Studio, seleccione Sitio web de campos dinámicos (para utilizar LINQ to SQL) o Sitio web de entidades de campos dinámicos (para utilizar ADO.NET Entity Framework).

  4. En el primer cuadro Ubicación, seleccione Sistema de archivos y, en el segundo, escriba el nombre de la carpeta donde desea conservar las páginas del sitio web.

    Por ejemplo, escriba el nombre de carpeta C:\WebSites\DynamicData.

  5. En la lista Lenguaje, haga clic en el lenguaje de programación con el que prefiera trabajar.

  6. Haga clic en Aceptar.

  7. Visual Studio crea la carpeta y la estructura del sitio web.

Agregar datos al sitio web

El paso siguiente consiste en agregar una base de datos al proyecto. Para hacerlo, cree clases para que representen entidades de la base de datos mediante una herramienta proporcionada por Visual Studio y, a continuación, registre el contexto de datos para que lo usen los datos dinámicos. Tiene las siguientes opciones para crear el modelo de la base de datos basado en la plantilla seleccionada:

  • Si creó el sitio web mediante la plantilla Sitio web de campos dinámicos, debe crear el modelo de base de datos utilizando LINQ to SQL.

  • Si creó el sitio web mediante la plantilla Sitio web de entidades de campos dinámicos, debe crear el modelo de base de datos utilizando Entity Framework.

Para obtener más información sobre cómo seleccionar el modelo de datos, vea Directrices sobre los datos dinámicos de ASP.NET.

Para agregar el archivo de base de datos al proyecto

  1. Si el sitio web no tiene una carpeta App_Data, en el Explorador de soluciones, haga clic con el botón secundario en el proyecto, haga clic en Agregar carpeta ASP.NET y, a continuación, en App_Data.

  2. En el Explorador de soluciones, haga clic con el botón secundario en la carpeta App_Data y después haga clic en Agregar elemento existente.

    Se mostrará el cuadro de diálogo Agregar elemento existente.

  3. Escriba la ubicación en la que instaló el archivo de base de datos de AdventureWorks (AdventureWorks_Data.mdf).

    De forma predeterminada, el archivo .mdf se instala en la ruta de acceso C:\Archivos de programa\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf.

    Nota:

    Este procedimiento creará una copia del archivo de base de datos en el proyecto. Si no resulta práctico realizar una copia de la base de datos, puede conectarse a ella con un método alternativo, como asociar directamente el archivo de base de datos. Sin embargo, el procedimiento para esto no se cubre en este tutorial.

El paso siguiente consiste en crear el modelo de datos. El procedimiento varía ligeramente dependiendo de si desea utilizar LINQ to SQL o ADO.NET Entity Framework para crear el modelo de datos.

Para crear el modelo de datos utilizando LINQ to SQL

  1. Si el sitio web no tiene todavía una carpeta App_Code, en el Explorador de soluciones, haga clic con el botón secundario en el proyecto, haga clic en Agregar carpeta ASP.NET y, a continuación, en App_Code.

  2. Haga clic con el botón secundario del mouse en la carpeta App_Code y, a continuación, haga clic en Agregar nuevo elemento.

  3. En Plantillas instaladas de Visual Studio, haga clic en Clases de LINQ to SQL.

  4. En el cuadro Nombre, escriba un nombre para el modelo de base de datos.

    Por ejemplo, escriba el nombre AdventureWorks.dbml.

  5. Haga clic en Agregar.

    Se muestra el Diseñador relacional de objetos.

  6. En el Diseñador relacional de objetos, haga clic en el vínculo Explorador de servidores (Explorador de bases de datos en Visual Web Developer).

  7. En el Explorador de servidores (Explorador de bases de datos), en Conexiones de datos, expanda el nodo de archivos de base de datos y, a continuación, el nodo Tablas.

  8. Arrastre todas las tablas al Diseñador relacional de objetos.

    Cada tabla se representa como una entidad con el nombre de la tabla de base de datos correspondiente.

  9. Guarde el archivo AdventureWorks.dbml.

  10. En el Explorador de soluciones, abra el archivo AdventureWorks.designer.cs o AdventureWorks.designer.vb que se encuentra bajo el nodo del archivo .dbml.

    Observe que el archivo .dbml contiene la clase AdventureWorksDataContext que representa la base de datos. También contiene clases de entidad, como las clases Employee y Product, que representan tablas de base de datos. El constructor sin parámetros de la clase AdventureWorksDataContext lee la cadena de conexión del archivo Web.config.

  11. Abra el archivo Web.config.

    Observe que el elemento connectionStrings contiene la cadena de conexión a la base de datos AdventureWorks.

  12. Cierre el archivo de clase y el archivo Web.config.

Para crear el modelo de datos de Entity Framework

  1. Si el sitio web no tiene todavía una carpeta App_Code, en el Explorador de soluciones, haga clic con el botón secundario en el proyecto, haga clic en Agregar carpeta ASP.NET y, a continuación, en App_Code.

  2. Haga clic con el botón secundario del mouse en la carpeta App_Code y, a continuación, haga clic en Agregar nuevo elemento.

  3. En Plantillas instaladas de Visual Studio, haga clic en Entity Data Model de ADO.NET.

  4. En el cuadro Nombre, escriba un nombre para el modelo de base de datos.

    Por ejemplo, escriba el nombre AdventureWorks.edmx.

  5. Haga clic en Agregar.

    Se muestra la ventana Asistente para Entity Data Model.

  6. Haga clic en Generar desde la base de datos.

    Esto especifica que desea generar el modelo a partir de una base de datos.

  7. En la lista ¿Qué conexión de datos debería utilizar la aplicación para conectarse a la base de datos?, seleccione AdventureWorks_Data.mdf.

  8. Asegúrese de que está activada la casilla Guardar configuración de conexión de entidad en Web.Config como. Puede dejar el nombre predeterminado de la cadena de conexión.

  9. Haga clic en Siguiente.

    El asistente muestra una página en la que puede especificar qué objetos de base de datos desea incluir en el modelo.

  10. Elija el nodo Tablas para seleccionar todas las tablas de la base de datos. Puede dejar el espacio de nombres del modelo predeterminado.

  11. Haga clic en Finalizar.

    Se muestra ADO.NET Entity Data Model Designer. Cierre el diseñador.

  12. En el Explorador de soluciones, abra el archivo AdventureWorks.designer.cs o AdventureWorks.designer.vb que se encuentra bajo el nodo del archivo .edmx.

    Observe que el archivo .edmx contiene la clase AdventureWorksDataContext que representa la base de datos. También contiene clases de entidad, como las clases Employee y Product, que representan tablas de base de datos.

  13. Abra el archivo Web.config.

    Observe que el elemento connectionStrings contiene la cadena de conexión a la base de datos AdventureWorks.

  14. Cierre el archivo de clase y el archivo Web.config.

El paso siguiente es registrar el modelo de datos para que lo usen los datos dinámicos.

Para registrar el contexto de datos

  1. Abra el archivo Global.asax.

  2. Si está utilizando LINQ to SQL, en el método RegisterRoutes, agregue la línea siguiente:

    model.RegisterContext(GetType(AdventureWorksDataContext), _
        New ContextConfiguration() With {.ScaffoldAllTables = True})
    
    model.RegisterContext(typeof(AdventureWorksDataContext), 
        new ContextConfiguration() { ScaffoldAllTables = true });
    

    Esto registra el contexto de datos de LINQ to SQL para que lo usen los datos dinámicos y habilita la función de scaffolding automático del modelo de datos.

    Precaución:

    Habilitar la función de scaffolding puede suponer un riesgo para la seguridad, porque expone todas las tablas del modelo de datos a operaciones de presentación y edición. 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.

  3. Si está utilizando Entity Framework, en el método RegisterRoutes, agregue la línea siguiente:

    model.RegisterContext(GetType(AdventureWorksLT_DataModel.AdventureWorksLT_DataEntities), _
        New ContextConfiguration() With {.ScaffoldAllTables = True})
    
    model.RegisterContext(typeof(AdventureWorksLT_DataModel.AdventureWorksLT_DataEntities), 
        new ContextConfiguration() { ScaffoldAllTables = true });
    

    Esto registra el contexto de datos de Entity Framework para que lo usen los datos dinámicos y habilita la función de scaffolding automático del modelo de datos.

    Precaución:

    Habilitar la función de scaffolding puede suponer un riesgo para la seguridad, porque expone todas las tablas del modelo de datos a operaciones de presentación y edición. 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.

  4. Guarde y cierre el archivo Global.asax.

Probar el sitio web de datos dinámicos

Ahora puede probar el sitio web de datos dinámicos que acaba de crear.

Para probar el sitio Web

  1. En el Explorador de soluciones, haga clic con el botón secundario en la página Default.aspx y, a continuación, haga clic en Ver en el explorador.

    La página muestra una lista que contiene las tablas que agregó al modelo de datos.

  2. Haga clic en una de las tablas. Por ejemplo, haga clic en la tabla Products.

    Se muestra una página que contiene los datos de la tabla que seleccionó. Observe que para las tablas que contienen campos de clave externa se proporciona un vínculo a la página de detalles a la que hace referencia la tabla. Si la tabla es una tabla primaria de una relación de uno a varios, se facilita un vínculo a la página de lista de la tabla secundaria.

  3. Haga clic en el botón Eliminar para quitar un registro de la tabla.

  4. Haga clic en los números de página para navegar por los registros.

  5. Haga clic en el botón Editar para modificar un registro de la tabla.

  6. Cambie los valores y, a continuación, haga clic en Actualizar o bien haga clic en Cancelar para cancelar la operación de edición.

  7. En la parte inferior de la página, haga clic en el botón Insertar nuevo elemento para crear un nuevo registro.

    Se muestra una página que contiene campos de entrada de datos.

  8. Facilite la información del nuevo registro y, a continuación, haga clic en Insertar o en Cancelar para cancelar la operación de inserción.

  9. Cuando finalice, cierre el explorador.

Pasos siguientes

Este tutorial muestra cómo puede crear un sitio web de datos dinámicos básico sin escribir nada de código. Desde aquí, puede empezar a explorar las características de los datos dinámicos y ampliar su comportamiento predeterminado.

Vea también

Conceptos

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

Otros recursos

Diseñador relacional de objetos (Diseñador R/O)

LINQ to SQL

ADO.NET Entity Framework