Compartir a través de


Tutorial: Crear las capas de acceso a datos y de lógica empresarial en ASP.NET

Actualización: noviembre 2007

Si trabaja con datos en ASP.NET, puede aprovechar las ventajas de usar modelos de software comunes. Uno de ellos es separar el código de acceso a datos del código de lógica comercial que rige el acceso a los datos o que proporciona otras reglas comerciales. En este modelo, estas dos capas son independientes de la capa de la presentación, que está compuesta por las páginas a las que los usuarios tienen acceso para ver o cambiar los datos.

ASP.NET permite separar el acceso a datos, la lógica comercial y la presentación de varias maneras. Por ejemplo, el modelo de origen de datos, que incluye controles de servidor como LinqDataSource y ObjectDataSource, separa la capa de la presentación del código de acceso a datos y de la lógica comercial.

Otro modelo es incluir directamente la lógica de acceso a datos en las páginas ASP.NET (la capa de presentación). Por ejemplo, puede escribir el código de ADO.NET en la página de código subyacente de la página ASP.NET o utilizar el control SqlDataSource. Este enfoque relaciona estrechamente la lógica de acceso a datos con la capa de presentación.

El enfoque recomendado es separar la lógica de acceso a datos de la capa de presentación. Esta capa independiente se conoce como capa de acceso a datos. La capa de acceso a datos se puede implementar como un proyecto de bibliotecas de clase independiente. Sin embargo, también puede utilizar las herramientas de Visual Web Developer que generan una capa de acceso a datos automáticamente.

Nota:

No se puede crear un proyecto de bibliotecas de clase en Microsoft Visual Web Developer Express. Sin embargo, puede crear un proyecto independiente utilizando Visual Basic Express o Visual C# Express y, a continuación, incluir el resultado de esa clase como un ensamblado (DLL) en el sitio web.

Si el sitio web muestra o actualiza datos, debe crear una capa de acceso a datos y capa de lógica comercial antes de crear la interfaz de usuario.

Una aplicación web controlada por datos normalmente incluye una capa de acceso a datos utilizando conjuntos de datos con tipo o clases de entidad que representan los datos. También incluye una capa de lógica comercial que exige la aplicación de reglas de empresa personalizadas. Finalmente, incluye una capa de presentación utilizando páginas ASP.NET y páginas maestras y temas para crear un diseño de página común. Este tutorial muestra cómo crear una capa de acceso a datos.

La capa de acceso a datos incluye todo el código específico del origen de datos subyacente. Incluye código que crea una conexión a la base de datos y que emite los comandos Select, Insert, Update y Delete . Normalmente, la capa de acceso a datos contiene clases que implementan los métodos para tener acceso a los datos de la base de datos subyacente. La capa de presentación no trabaja directamente con datos. En su lugar, invoca clases y métodos en la capa de acceso a datos para todas las solicitudes de datos.

Entre las tareas ilustradas en este tutorial se incluyen las siguientes:

  • Crear una base de datos SQL y agregar datos.

  • Agregar un archivo LINQ to SQL que actúa como capa de acceso a datos.

  • Crear una página que funciona como capa de presentación.

  • Agregar un control LinqDataSource a una página que comunica la capa de presentación y la capa de acceso a datos.

Requisitos previos

Para realizar este tutorial, necesitará lo siguiente:

  • Microsoft Visual Studio 2008 o Microsoft Visual Web Developer Express. Para obtener información sobre las descargas, visite el sitio web Visual Studio Developer Center.

  • .NET Framework versión 3.5.

  • SQL Server Express Edition. Si tiene Microsoft SQL Server instalado, puede utilizarlo en su lugar.

Crear un sitio web

El primer paso es crear un sitio web.

Para crear un nuevo sitio Web del sistema de archivos

  1. Abra Visual Studio 2008 o Visual Web Developer Express.

  2. En el menú Archivo, haga clic en NuevoSitio Web.

    Se muestra el cuadro de diálogo Nuevo sitio Web.

  3. En Plantillas instaladas de Visual Studio, seleccione Sitio Web ASP.NET.

  4. En el cuadro Ubicación, haga clic en Sistema de archivos y, a continuación, escriba el nombre de la carpeta en la que desea guardar los archivos del sitio web.

    Por ejemplo, escriba C:\BasicWebSite.

  5. En la lista Lenguaje, haga clic en Visual Basic o Visual C# y, a continuación, haga clic en Aceptar.

    Nota:

    El lenguaje de programación que seleccione será el lenguaje predeterminado del sitio web. Sin embargo, también puede establecer individualmente el lenguaje de programación para cada página.

    Visual Web Developer crea la carpeta y una página nueva denominada Default.aspx.

Conectarse a una base de datos

El paso siguiente es conectarse a una base de datos de Visual Web Developer utilizando la ventana del Explorador de servidores. (En Visual Web Developer Express, la ventana se denomina Explorador de bases de datos.) Crear una conexión a una base de datos en el Explorador de servidores permite agregar tablas, procedimientos almacenados, vistas y otros elementos de base de datos, todo ello en Visual Studio. También puede ver datos de tabla o crear consultas manualmente o mediante la ventana Generador de consultas.

Más adelante en este tutorial, cuando integre el conjunto de datos con tipo de la capa de acceso a datos, debe crear una conexión a la base de datos en Visual Web Developer. Puede proporcionar la información de conexión manualmente. Sin embargo, Visual Web Developer permite simplificar este proceso porque rellena automáticamente una lista de las bases de datos que ya están registradas en el Explorador de servidores.

Para este tutorial, se creará una nueva base de datos para realizar el seguimiento de los elementos de tarea.

Crear una nueva base de datos de SQL Server Express

En esta sección, se creará una nueva base de datos de SQL Server Express que almacenará la información de tareas de una lista de tareas pendientes.

Para agregar una base de datos al sitio web

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en el nombre del sitio web y, a continuación, haga clic en Agregar nuevo elemento.

    Se abrirá la ventana Agregar nuevo elemento.

  2. Seleccione Base de datos SQL y asigne el nombre Tasks.mdf a la base de datos.

  3. Haga clic en Aceptar.

  4. Cuando Visual Web Developer le pregunte si la base de datos debe almacenarse en la carpeta App_Data, haga clic en Sí.

Crear un esquema y datos de ejemplo para la base de datos de tareas

Puede utilizar las características de diseño y edición de bases de datos para crear un esquema para la tabla que almacena los elementos de tarea.

Para definir un esquema y agregar datos a la base de datos Tasks

  1. En el Explorador de soluciones, abra la carpeta App_Data y haga doble clic en Tasks.mdf.

    El nodo de la base de datos Tasks se abre en el Explorador de servidores.

  2. Haga clic con el botón secundario del mouse en la carpeta Tablas y haga clic en Agregar nueva tabla.

    Se muestra la ventana de definición de tabla.

  3. Cree las columnas siguientes en la tabla:

    Nombre de columna

    Tipo de datos

    Propiedades

    taskId

    int

    Not null

    nombre

    nvarchar(50)

    Not null

    dateCreated

    datetime

    Not null

    isComplete

    bit

    Not null

  4. Seleccione la fila de la columna taskId, haga clic con el botón secundario del mouse en la fila y, a continuación, haga clic en Establecer clave principal.

  5. Seleccione la fila taskid y, a continuación, busque la sección Especificación de identidad en la ventana Propiedades de columna.

  6. Abra la sección y establezca (Identidad) en Sí.

  7. Guarde la tabla, asígnele el nombre TasksList y, a continuación, cierre la ventana de definición de tabla.

  8. Haga clic con el botón secundario del mouse en la tabla en el Explorador de servidores y, a continuación, haga clic en Mostrar datos de tabla.

    Se muestra una ventana de edición donde puede ver, agregar y modificar los datos.

  9. Agregue cuatro o cinco registros a la tabla.

    No tiene que especificar un valor para la columna taskId porque es una columna de identidad y su valor se asigna automáticamente.

  10. Cierre la ventana de edición.

Crear las capas de acceso a datos y lógica comercial

Existen varias maneras de crear una capa de acceso a datos y de lógica empresarial para la base de datos recién creada. En este tutorial, se creará una clase que representa las entidades de la base de datos. Después, puede agregar su propia lógica comercial a estas clases generadas. (En este tutorial no se agregará la lógica comercial a las clases.)

En este tutorial, se utilizará Language Integrated Query (LINQ) para trabajar con los datos. LINQ aplica los principios de la programación orientada a objetos a los datos relacionales. Proporciona un modelo de programación unificado para realizar consultas y actualizar datos de tipos diferentes de orígenes de datos y amplía directamente las funciones de datos en los lenguajes C# y Visual Basic. Para obtener más información sobre LINQ, vea Language-Integrated Query (LINQ).

Las clases de LINQ to SQL se utilizarán como capa de acceso a datos. Se utilizará la ventana Diseñador relacional de objetos de Visual Web Developer para generar las clases de entidad que representan los datos.

Asignar la base de datos de tareas a una clase de contexto de datos de SQL

Para comenzar a crear la capa de acceso a datos, se agrega un conjunto de datos con tipo al proyecto.

Para crear una clase para la tabla Tasks

  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.

    Se abrirá el cuadro de diálogo Agregar nuevo elemento.

  3. En Plantillas instaladas de Visual Studio, seleccione la plantilla Clases de LINQ to SQL y cambie el nombre del archivo a Tasks.dbml.

  4. Haga clic en Agregar.

    Se muestra la ventana Diseñador relacional de objetos.

  5. En el Explorador de servidores, arrastre la tabla TasksList a la ventana Diseñador relacional de objetos.

  6. Guarde el archivo Tasks.dbml.

    Visual Web Developer crea el archivo Tasks.dbml.layout en la carpeta App_Code bajo Tasks.dbml. También crea Tasks.designer.cs o Tasks.designer.vb, dependiendo del lenguaje de programación con el que esté trabajando.

  7. En el Explorador de soluciones, abra el archivo Tasks.designer.cs o Tasks.designer.vb.

    Observe que el código contiene las clases denominadas TasksDataContext y TasksList. La clase TasksDataContext representa la base de datos y la clase TasksList representa la tabla de base de datos. El constructor sin parámetros de la clase TasksDataContext lee la cadena de conexión de la base de datos en el archivo de configuración (Web.config) del sitio web.

  8. Abra el archivo Web.config.

    Observe que se ha agregado una cadena de conexión a la base de datos Tasks.mdf en el elemento connectionStrings.

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

Crear y configurar un control LinqDataSource

Ahora que cuenta con una tabla de base de datos y clases que representan las entidades de base de datos, puede usar un control LinqDataSource en una página web ASP.NET para tener acceso a la base de datos. El control LinqDataSource permite que LINQ esté disponible para los desarrolladores a través de la arquitectura de control de orígenes de datos de ASP.NET.

El control LinqDataSource crea código para seleccionar, insertar, actualizar y eliminar objetos de la base de datos. La lógica comercial puede llamar a estas clases para realizar funciones de base de datos y aplicar las reglas de lógica comercial.

Para crear y configurar un control LinqDataSource

  1. Abra o cambie a la página Default.aspx.

  2. Cambie a la vista Diseño.

  3. En la ficha Datos del Cuadro de herramientas, arrastre un control LinqDataSource a la página web.

    Puede dejar la propiedad ID como LinqDataSource1.

  4. En el panel de etiquetas inteligentes Tareas de LinqDataSource, haga clic en Configurar origen de datos.

  5. En la lista de objetos de contexto, seleccione TasksDataContext y, a continuación, haga clic en Siguiente.

  6. En la lista, seleccione TasksLists(Table<TasksList>) y, a continuación, haga clic en Finalizar.

  7. En el panel de etiquetas inteligentes Tareas de LinqDataSource, active las casillas Habilitar eliminación, Habilitar inserción y Habilitar actualización.

    Observe que no tuvo que especificar ningún comando de base de datos para seleccionar los datos.

  8. Ejecute la página.

    La página muestra los datos aportados anteriormente en el tutorial.

Pasos siguientes

En este tutorial se ha mostrado cómo crear la capa de acceso a datos y la capa de lógica comercial de una aplicación utilizando la plantilla Clases de LINQ to SQL y el control de servidor LinqDataSource. Ha creado una manera de que las páginas del sitio web tengan acceso a los datos, flexible y no asociada directamente a la capa de presentación del sitio web.

En el tema Tutorial: Crear una aplicación de datos habilitada para AJAX se utiliza el control LinqDataSource para crear una aplicación web habilitada para AJAX que muestra y actualiza la información de la base de datos Tasks.

Vea también

Tareas

Tutorial: Crear una aplicación de datos habilitada para AJAX

Conceptos

Tutoriales seleccionados de ASP.NET