Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

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

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.

Hay un proyecto de sitio web de Visual Studio con código fuente disponible para complementar este tema: Download.

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.

NotaNota

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. Puede personalizar estas clases con su propia lógica de negocios.

Las tareas que se ilustran en este tutorial son 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.

Para realizar este tutorial, necesitará lo siguiente:

  • Tener Visual Studio o Visual Web Developer Express instalado en el equipo.

    NotaNota

    Si usa Visual Studio, en este tutorial se presupone que seleccionó la colección de configuraciones Desarrollo web la primera vez que inició Visual Studio. Para obtener más información, vea Cómo: Seleccionar configuraciones de entorno de desarrollo web.

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

El primer paso es crear un sitio web.

En este tutorial se usa un proyecto de sitio web. No obstante, puede utilizar un proyecto de aplicación web si así lo desea. Para obtener información sobre la diferencia entre estos tipos de proyectos web, vea Proyectos de aplicación web frente a proyectos de sitio web.

Para crear un nuevo sitio Web del sistema de archivos

  1. Abra Visual Studio o Visual Web Developer Express.

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

    Aparece el cuadro de diálogo Nuevo sitio web.

  3. En Plantillas instaladas, haga clic en Visual Basic o VisualC# y, a continuación, seleccione Sitio web ASP.NET.

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

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

  5. Haga clic en Aceptar.

    Visual Studio crea un proyecto de sitio web que incluye funcionalidad preintegrada para el diseño (una página maestra, las páginas de contenido About.aspx y Default.aspx y una hoja de estilos en cascada), para Ajax (archivos de script de cliente) y para la autenticación (pertenencia a ASP.NET).

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.

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 .

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

    name

    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. En la ventana Propiedades, establezca la propiedad Columna de identidad en la columna taskId.

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

  7. 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.

  8. 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.

  9. Cierre la ventana de edición.

Existen varias maneras de crear una capa de acceso a datos y de lógica empresarial para la base de datos recién creada. Puede personalizar estas clases con su propia lógica de negocios.

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 LINQ (Language-Integrated Query).

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. Bajo 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.

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.

  8. Guarde la página.

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

Si desea crear una interfaz de usuario para los datos que pasan a estar disponibles a través del control LinqDataSource, puede utilizar varios controles de datos. En este tutorial, agregará un control GridView a la página para ver, actualizar y modificar los datos de la tabla TasksList.

Para crear y configurar un control GridView

  1. En la página Default.aspx, cambie a la vista de diseño.

  2. Desde la pestaña Datos del Cuadro de herramientas, arrastre un control GridView hasta la página web.

  3. En el panel de etiquetas inteligentes Tareas de GridView, seleccione LinqDataSource1 como origen de datos. (Si asignó otro nombre cuando creó el control LinqDataSource, use dicho nombre.)

  4. En el panel de etiquetas inteligentes Tareas de GridView Tareas, seleccione las opciones Habilitar edición y Habilitar eliminación.

  5. Presione CTRL+F5 para ejecutar la página.

    La página muestra los datos que escribió anteriormente en el tutorial y permite modificar o eliminar filas.

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 los controles de servidor LinqDataSource y GridView. Ha creado una manera de que las páginas del sitio web tengan acceso a los datos, que es flexible y no está directamente asociada 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.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft