MVC y Programacion Por Capas

78
Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Blog Personal: http://marcelodata.blogspot.com Este tutorial expone de manera sencilla paso a paso la administración de una aplicación usando MVC, el paradigma Model View Controller basándose en tres capas: Presentación, Aplicación y Datos. Gestiono lo básico de una interface MDI ya que tutoriales de ventanitas y controles hay hasta por gusto, quise exponer la arquitectura de una aplicación basada en los paradigmas mencionados como es implementar la lógica de programación en la Base de Datos usando Procedimientos almacenados y administrar esta lógica desde la aplicación. Se cumple con el principio de independecia si es que se programa en la Base de Datos y no en la aplicación, la aplicación es una simple interface o medio de comunicación entre el usuario y la base de datos, evítandonos así el recompilar la aplicación y permitiéndonos en su lugar focalizarnos en la programación en la misma Base de Datos sin tener que cambiar la aplicación. La idea de este tutorial es la de brindar al programador de software libre un conocimiento clave para que cuando encuentre este paradigma basado en plataformas .NET en alguna organización pueda entenderla y migrarla al software libre. Como mencioné me he centrado en la arquitectura de la aplicación, la implementación de controles bonitos es un trabajo que particularmente no pienso hacer, para eso existen miles de tutoriales en la red. Programar usando MVC y CAPAS no es algo que se encuentre a diario, yo mismo sufrí para implementar este tutorial, la parte difícil por decirlo así está aquí, la arquitectura, lo demás que es una simple cuestión de diseño lo conoce cualquiera. Este es mi último tutorial en plataformas privativas y lo hago sólo por dotar de conocimiento sencillo a aquellos amigos que quieran entender las arquitecturas .NET en las empresas y puedan luego migrarlas al software libre. Ahora mi pasión son la programación competitiva y el Software libre, el hecho que uno cultive Software Libre no implica que uno no sea experto en otras plataformas (Soy Desarrollador 5 estrellas Platino DCE 2005), precisamente la comprensión de esta plataforma me llevó a querer y a amar el software libre. El Autor "Porque el secreto del desarrollo de una nación está en su educación"

Transcript of MVC y Programacion Por Capas

Page 1: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Este tutorial expone de manera sencilla paso a paso la administración de una aplicación usando MVC, el paradigma Model View Controller basándose en tres capas: Presentación, Aplicación y Datos.

Gestiono lo básico de una interface MDI ya que tutoriales de ventanitas y controles hay hasta por gusto, quise exponer la arquitectura de una aplicación basada en los paradigmas mencionados como es implementar la lógica de programación en la Base de Datos usando Procedimientos almacenados y administrar esta lógica desde la aplicación.

Se cumple con el principio de independecia si es que se programa en la Base de Datos y no en la aplicación, la aplicación es una simple interface o medio de comunicación entre el usuario y la base de datos, evítandonos así el recompilar la aplicación y permitiéndonos en su lugar focalizarnos en la programación en la misma Base de Datos sin tener que cambiar la aplicación.

La idea de este tutorial es la de brindar al programador de software libre un conocimiento clave para que cuando encuentre este paradigma basado en plataformas .NET en alguna organización pueda entenderla y migrarla al software libre.

Como mencioné me he centrado en la arquitectura de la aplicación, la implementación de controles bonitos es un trabajo que particularmente no pienso hacer, para eso existen miles de tutoriales en la red.

Programar usando MVC y CAPAS no es algo que se encuentre a diario, yo mismo sufrí para implementar este tutorial, la parte difícil por decirlo así está aquí, la arquitectura, lo demás que es una simple cuestión de diseño lo conoce cualquiera.

Este es mi último tutorial en plataformas privativas y lo hago sólo por dotar de conocimiento sencillo a aquellos amigos que quieran entender las arquitecturas .NET en las empresas y puedan luego migrarlas al software libre.

Ahora mi pasión son la programación competitiva y el Software libre, el hecho que uno cultive Software Libre no implica que uno no sea experto en otras plataformas (Soy Desarrollador 5 estrellas Platino DCE 2005), precisamente la comprensión de esta plataforma me llevó a querer y a amar el software libre.

El Autor

"Porque el secreto del desarrollo de una nación está en su educación"

Page 2: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

ADMINISTRAR UNA BASE DE DATOS UTILIZANDO MVC (Model View Controller) y PROGRAMACIÓN POR CAPAS

SOFTWARE NECESARIO:

• SQL SERVER 2008 O 2005 Express que se instala por defecto con el Visual Studio.

Si este es tu caso el Administrador de SQL 2008 lo puedes descargar de aquí:

http://www.microsoft.com/download/en/details.aspx?id=22985

Si usas el SQL Express 2005 el administrador lo puedes descargar de aquí:

http://www.microsoft.com/downloads/es-es/details.aspx?FamilyID=C243A5AE-4BD1-4E3D-94B8-5A0F62BF7796

• Cualquier otra versión de SQL SERVER 2008 O 2005 (Ya viene con la interface de administración).

• VISUAL STUDIO 2010 O 2008

CONOCIMIENTOS:

• ADO .NET BÁSICO

• SQL SERVER BÁSICO

• T – SQL BÁSICO

• VISUAL BASIC .NET BÁSICO

FUENTES:

El código Fuente de la aplicación desarrollada en este tutorial lo puedes descargar de aquí:

https://docs.google.com/open?id=0B_H9bnl3ECg6T3hSSmVmeEJTNGFHZ3RhTkUwUjhCQQ

El BackUp de la Base de Datos lo puedes encontrar aquí:

https://docs.google.com/open?id=0B_H9bnl3ECg6T1ZlMVpWZTZSWWFPZWRjZzV1LUxjUQ

"Porque el secreto del desarrollo de una nación está en su educación"

Page 3: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Arquitectura de ADO.NETTradicionalmente, el procesamiento de datos ha dependido principalmente de un modelo de dos niveles basado en una conexión. A medida que el procesamiento de datos utiliza cada vez más arquitecturas de varios niveles, los programadores están pasando a un enfoque sin conexión con el fin de proporcionar una escalabilidad mejor para sus aplicaciones.

Componentes de ADO.NETExisten dos componentes de ADO.NET que se pueden utilizar para obtener acceso a datos y manipularlos:

•Proveedores de datos de .NET Framework•El DataSet

Proveedores de datos de .NET FrameworkLos proveedores de datos de .NET Framework son componentes diseñados explícitamente para la manipulación de datos y el acceso rápido a datos de sólo lectura y sólo avance. El objeto Connection proporciona conectividad a un origen de datos. El objeto Command permite tener acceso a comandos de base de datos para devolver datos, modificar datos, ejecutar procedimientos almacenados y enviar o recuperar información sobre parámetros. El objetoDataReader proporciona una secuencia de datos de alto rendimiento desde el origen de datos. Por último, el objetoDataAdapter proporciona el puente entre el objeto DataSet y el origen de datos. El DataAdapter utiliza objetosCommand para ejecutar comandos SQL en el origen de datos tanto para cargar el DataSet con datos como para reconciliar en el origen de datos los cambios aplicados a los datos incluidos en el DataSet.DataSetEl DataSet de ADO.NET está expresamente diseñado para el acceso a datos independientemente del origen de datos. Como resultado, se puede utilizar con múltiples y distintos orígenes de datos, con datos XML o para administrar datos locales de la aplicación. El DataSet contiene una colección de uno o más objetos DataTable formados por filas y columnas de datos, así como información sobre claves principales, claves externas, restricciones y relaciones relativa a los datos incluidos en los objetos DataTable.En el diagrama siguiente se ilustra la relación entre un proveedor de datos de .NET Framework y un DataSet.Arquitectura de ADO.NET

"Porque el secreto del desarrollo de una nación está en su educación"

Page 4: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Elegir un DataReader o un DataSetA la hora de decidir si su aplicación debe utilizar un DataReader (vea Recuperar datos mediante DataReader) o unDataSet (vea Utilizar DataSets en ADO.NET), debe tener en cuenta el tipo de funcionalidad que su aplicación requiere. Use un DataSet para hacer lo siguiente:

•Almacene datos en la memoria caché de la aplicación para poder manipularlos. Si solamente necesita leer los resultados de una consulta, el DataReader es la mejor elección.•Utilizar datos de forma remota entre un nivel y otro o desde un servicio Web XML.• Interactuar con datos dinámicamente, por ejemplo para enlazar con un control de formularios Windows Forms o para combinar y relacionar datos procedentes de varios orígenes.•Realizar procesamientos exhaustivos de datos sin necesidad de tener una conexión abierta con el origen de datos, lo que libera la conexión para que la utilicen otros clientes.

Si no necesita la funcionalidad proporcionada por el DataSet, puede mejorar el rendimiento de su aplicación si utiliza el DataReader para devolver sus datos de sólo avance y de sólo lectura. Aunque el DataAdapter utiliza el DataReaderpara rellenar el contenido de un DataSet (vea Llenar un DataSet desde un DataAdapter), al utilizar el DataReaderpuede mejorar el rendimiento porque no usará la memoria que utilizaría el DataSet, además de evitar el procesamiento necesario para crear y rellenar el contenido de DataSet.

Modelo Vista Controlador

"Porque el secreto del desarrollo de una nación está en su educación"

Page 5: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Un diagrama sencillo que muestra la relación entre el modelo, la vista y el controlador. Nota: las líneas sólidas

indican una asociación directa, y las punteadas una indirecta (por ejemplo, patrón Observer).

Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de

una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos. El patrón

de llamada y retorno MVC (según CMU), se ve frecuentemente en aplicaciones web, donde la vista

es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema

de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los

eventos de entrada desde la vista.

Contenido

• 1 Historia

• 2 Descripción

del patrón

• 3 Frameworks

MVC

• 4 Véase también

• 5 Referencias

• 6 Enlaces

externos

Historia

El estilo fue descrito por primera vez en 19791 por Trygve Reenskaug, entonces trabajando

en Smalltalk en laboratorios de investigación deXerox. La implementación original está descrita

en Programación de Aplicaciones en Smalltalk-80(TM): Como utilizar Modelo Vista Controlador.2

Descripción del patrón

Modelo: Esta es la representación específica de la información con la cual el sistema

opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las

presentaciones visuales complejas. El sistema también puede operar con más datos no relativos

a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el

sistema modelado.

Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente

la interfaz de usuario.

Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca

peticiones al modelo y, probablemente, a la vista.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 6: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Muchos de los sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para

gestionar los datos: en líneas generales delMVC corresponde al modelo. La unión entre capa de

presentación y capa de negocio conocido en el paradigma de la Programación por

capas representaría la integración entre Vista y su correspondiente Controlador de eventos y

acceso a datos, MVC no pretende discriminar entre capa de negocio y capa de presentación pero si

pretende separar la capa visual gráfica de su correspondiente programación y acceso a datos, algo

que mejora el desarrollo y mantenimiento de la Vista y el Controlador en paralelo, ya que ambos

cumplen ciclos de vida muy distintos entre sí.

Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control

generalmente es el siguiente:

1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el

usuario pulsa un botón, enlace, etc.)

2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de

la acción solicitada por el usuario. El controlador gestiona el evento que llega,

frecuentemente a través de un gestor de eventos (handler) o callback.

3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de

forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza

el carro de la compra del usuario). Los controladores complejos están a menudo

estructurados usando un patrón de comando que encapsula las acciones y simplifica su

extensión.

4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de

usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el

usuario donde se reflejan los cambios en el modelo (por ejemplo, produce un listado del

contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la

vista. Sin embargo, se podría utilizar el patrón Observador para proveer cierta indirección

entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier

cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun

así el modelo en sí mismo sigue sin saber nada de la vista. Este uso del

patrón Observador no es posible en las aplicaciones Web puesto que las clases de la vista

están desconectadas del modelo y del controlador. En general el controlador no pasa

objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se

actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo,

dejando que el controlador envíe los datos del modelo a la vista. Por ejemplo en el MVC

usado por Apple en su framework Cocoa. Suele citarse como Modelo-Interface-Control,

una variación del MVC más puro

5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el

ciclo nuevamente.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 7: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

A. HABILITANDO EL USUARIO “SA” E INICIO DE SESION CON AUTENTICACIÓN DE SQL SERVER

1. Inicio + Todos los Programas + SQLMicrosoft SQL Server 2008 + SQL Server Management Studio.

2. Anticlick + Ejecutar como administrador

"Porque el secreto del desarrollo de una nación está en su educación"

Page 8: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

3. Loguearnos con la instancia por defecto. Si usas una versión diferente del SQL Express reemplaza el “.\sqlexpress” por el usuario que definiste a la hora de instalar tu MS SQL.

4. Conocemos la interfaz de Administración del SQL.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 9: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

5. Buscamos al Administrador (SA).

6. Anticlic + Propiedades

"Porque el secreto del desarrollo de una nación está en su educación"

Page 10: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

7. Nos ubicamos en la página General.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 11: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

8. Escribimos la contraseña que vamos a utilizar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 12: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

9. Nos ubicamos en la página Estado.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 13: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

10.Habilitamos el Inicio de Sesión + Aceptar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 14: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

11.Actualizamos.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 15: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

12.Vemos que el usuario administrador sa está habilitado.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 16: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

13.Anticlic + Propiedades.

14.Nos ubicamos en la página Seguridad.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 17: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

15.Habilitamos “Modo de autenticación de Windows y SQL Server” para poder loguearnos con los usuarios que administramos en nuestro servidor como el usuario “sa”.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 18: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

16.Clic en Aceptar.

17.Anticlic en la raíz + Reiniciar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 19: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

18.Clic en “Sí”.

19.Archivo + Desconectar Explorador de objetos.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 20: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

20.Estamos Desconectados.

21.Archivo + Conectar Explorador de Objetos.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 21: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

22.Nos logueamos, pero esta vez Escogemos “Autenticación de SQL Server”.

23.Probamos nuestro usuario “sa” que hemos habilitado. Clic en Conectar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 22: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

24.Estamos logueados con nuestro usuario “sa”.

B. CREANDO OTRO USUARIO SI DESEAMOS

"Porque el secreto del desarrollo de una nación está en su educación"

Page 23: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

25.Si quisiéramos crear un nuevo usuario diferente al “sa” basta con hacer anticlic en “Inicios de Sesión”.

26.Elegimos Nuevo Inicio de Sesión.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 24: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

27.Elegimos el nombre de nuestro usuario por ejemplo “pepito” y repetimos los pasos 7 al 24, sólo que en lugar del usuario “sa” usamos el que hemos creado con su respectiva contraseña.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 25: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

28.Clic en Nueva Consulta.

C. CREANDO NUESTRA BASE DE DATOS “INSTITUTO”, TABLAS Y DATOS

"Porque el secreto del desarrollo de una nación está en su educación"

Page 26: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

29.Pegamos el Siguiente Script para ahorrarnos el trabajo de crear la Base de Datos, Tablas e ingresar los datos:

--Juan Marcelo Chamorro Avendaño

--E-Mail: [email protected]

--Creando la BAse de Datos Alumnos

CREATE DATABASE Instituto

GO

--Creando la Tabla Alumnos

USE Instituto

GO

CREATE TABLE Alumnos

(CodAlumno char(4) PRIMARY KEY NOT NULL,

Nombre VarChar(50) NOT NULL,

Apellidos VarChar(50) NOT NULL,

"Porque el secreto del desarrollo de una nación está en su educación"

Page 27: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Especialidad VarChar(50) NOT NULL,

Curso VarChar(50) NOT NULL,

Turno VarChar(50) NOT NULL,

Nota Int NOT NULL)

GO

--Crear Tabla Password

CREATE TABLE Password

(IdCod int PRIMARY KEY NOT NULL,

Nombre VarChar(50) NOT NULL,

Apellidos VarChar(50) NOT NULL,

Usuario VarChar(50) NOT NULL,

Password VarChar(50) NOT NULL,

Cargo VarChar(50) NOT NULL)

GO

"Porque el secreto del desarrollo de una nación está en su educación"

Page 28: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

--Insertando Registros tabla Alumnos

INSERT Alumnos

VALUES('A001','Patricia','Lozano Llalico','Computación','Ofimática','Diurno',15)

INSERT Alumnos

VALUES('A002','Tatiana','Torre Alanya','Secretariado','Ofimática','Vespertino',18)

INSERT Alumnos

VALUES('A003','Romina','Llacza Chamorro','Administración','Diseño','Diurno',5)

INSERT Alumnos

VALUES('A004','Dayana','Quintanilla Villafuerte','Secretariado','Inglés','Noche',13)

INSERT Alumnos

VALUES('A005','Kerly','Mosquera Delgado','Computación','Visual Basic .NET','Diurno',9)

INSERT Alumnos

VALUES('A006','Alondra','León Pariona','Computación','Visual Basic .NET','Diurno',8)

"Porque el secreto del desarrollo de una nación está en su educación"

Page 29: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

INSERT Alumnos

VALUES('A007','Gino','Gilvonio Rivera','Electrónica','Circuitos','Vespertino',16)

INSERT Alumnos

VALUES('A008','Franx','Velito Labra','Electrónica','Circuitos','Noche',12)

INSERT Alumnos

VALUES('A009','Sandro','Gutarra Raimondi','Computación','Ensamblaje','Vespertino',12)

INSERT Alumnos

VALUES('A010','Juan','Sánchez Prado','Computación','Ensamblaje','Diurno',15)

GO

--Insertando Registros tabla Password

INSERT Password

VALUES(1,'Alberth','Pisao Venancio','saquito','simiamor','amo de casa')

INSERT Password

VALUES(2,'Marcelo','Chamorro Avendaño','admin','1234','Administrador')

"Porque el secreto del desarrollo de una nación está en su educación"

Page 30: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

GO

--Crear Procedimientos Almacenados

CREATE PROCEDURE mostrar_todo

as

SELECT * FROM ALUMNOS

GO

CREATE PROCEDURE mostrar_12

as

SELECT CodAlumno,Nombre,Apellidos,Nota FROM ALUMNOS WHERE Nota=12

GO

CREATE PROCEDURE mostrar_secretariado

as

SELECT CodAlumno,Nombre,Apellidos,Curso FROM ALUMNOS WHERE Curso='Secretariado'

GO

"Porque el secreto del desarrollo de una nación está en su educación"

Page 31: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

CREATE PROCEDURE mostrar_g

as

SELECT Nombre,Apellidos FROM ALUMNOS WHERE Apellidos LIKE 'g%'

GO

CREATE PROCEDURE mostrar_6

as

SELECT Nombre,Apellidos FROM ALUMNOS WHERE Apellidos LIKE '______'

GO

CREATE PROCEDURE mostrar_a

as

SELECT Nombre,Apellidos FROM ALUMNOS WHERE Apellidos LIKE '_____a'

GO

CREATE PROCEDURE mostrar_operadores

as

"Porque el secreto del desarrollo de una nación está en su educación"

Page 32: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

SELECT Nombre, Apellidos, Nota FROM ALUMNOS WHERE (Nombre LIKE 'l%') AND (Nota < 11)

GO

CREATE PROCEDURE mostrar_entre

as

SELECT * FROM ALUMNOS WHERE Nota BETWEEN 11 AND 15

GO

CREATE PROCEDURE mostrar_lista

as

SELECT * FROM ALUMNOS WHERE Turno IN ('Noche','Diurno')

GO

--Crear Vistas

CREATE VIEW MOSTRAR_NOTAS

AS

SELECT Nombre, Apellidos, Nota FROM Alumnos

"Porque el secreto del desarrollo de una nación está en su educación"

Page 33: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

GO

--Fin de Script

--Juan Marcelo Chamorro Avendaño

--E-Mail: [email protected]

30.Ejecutar el Script.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 34: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

31.Nuestro Script está ejecutado y la Base de Datos con la que vamos a trabajar ha sido creada.

32.Actualizar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 35: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

33.Al expandir vemos Nuestra Base de Datos “Instituto” creada.

34.Vemos que hay dos tablas que han sido creadas por el script.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 36: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

35.Anticlic en la tabla Alumnos + Editar las 200 primeras filas.

36.Vemos que el Script ya ha creado todos los datos.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 37: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

37.Anticlic en la Tabla “Password” + Editar las primeras 200 filas.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 38: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

38.Vemos que el script ya ha creado contenido.

D. CREANDO LAS CAPAS DE PRESENTACIÓN, NEGOCIOS Y DATOS: CREANDO LA CAPA DE PRESENTACIÓN “INSTITUTO”

39.Iniciamos el Visual Studio 2010 en Modo Administrador.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 39: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

40.Archivo + Nuevo Proyecto.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 40: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

41.Creamos una Aplicación de Windows Form llamada “Instituto” + Aceptar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 41: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

E. CREANDO EL FORMULARIO MDI CONTENEDOR (PADRE)

"Porque el secreto del desarrollo de una nación está en su educación"

Page 42: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

42.Le damos las siguientes propiedades al Form1.

Propiedad Valor

Text frmMain

WindowState Maximized

IsMdiContain True

43.Le agregamos un Control MenuStrip (Arrastrar o hacer doble clic).

44.La propiedad IsMdiContain con su valor “true” la ha convertido en una ventana contenedora.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 43: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

45.Vamos a agregar la ventana de logueo ahora. Anticlic en la raíz Instituto + Agregar + Windows Forms.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 44: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

46.Le ponemos de nombre frmLogin.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 45: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

47.Configuramos el form frmLogin como ventana de inicio. Proyecto + Propiedades de Instituto.

48.Seleccionamos “frmLogin”. Con esto cuando ejecutemos el proyecto la ventana frmLogin será la primera en aparecer.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 46: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

F. CREANDO LAS CAPAS DE PRESENTACIÓN, NEGOCIOS Y DATOS: CREANDO LA CAPA DE NEGOCIOS “NEGOCIO”

49.Agregar Nuevo Proyecto. Archivo + Agregar + Nuevo Proyecto.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 47: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

50.Seleccionamos “Biblioteca de Clases”. La llamamos “NEGOCIO” + ACEPTAR.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 48: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

El Explorador de Soluciones se vería así:

Cambiar el Nombre de la Clase por defecto a “N_Login.vb”, para eso seleccionamos la clase y en Propiedades modificar:

Nombre de Archivo: N_Login.vb

CREANDO LAS CAPAS DE PRESENTACIÓN, NEGOCIOS Y DATOS: CREANDO LA

"Porque el secreto del desarrollo de una nación está en su educación"

Page 49: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

CAPA DE DATOS “DATOS”

51.Se crea una Solución automáticamente. Anticlic en la Solución + Agregar + Nuevo proyecto.

Igual que en el paso 50 pero esta vez llamarlo “DATOS”.

Cambiar el Nombre de la Clase por defecto a “D_Login.vb”, para eso seleccionamos la clase y en Propiedades modificar:

Nombre de Archivo: D_Login.vb

52.Finalmente nuestra solución se ve así.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 50: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

G. CREAMOS EL PROCEDIMIENTO ALMACENADO “login” Que Será Gestionado Desde La Aplicación.

53.Creamos un Procedimiento Almacenado al que vamos a llamar “login”. En el Administrador de SQL elegir “Nueva Consulta”, ahí crearemos el siguiente Procedimiento Almacenado.

CREATE PROCEDURE login

@Usuario VARCHAR(50),

@Password VARCHAR(50),

@Res VARCHAR(40) OUTPUT

AS

BEGIN

DECLARE @NUM AS int

SELECT @NUM = COUNT(*) FROM Password

WHERE

Usuario=@Usuario

IF @NUM=1

BEGIN

"Porque el secreto del desarrollo de una nación está en su educación"

Page 51: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

SELECT @NUM = COUNT(*) FROM Password

WHERE

Password=@Password

IF @NUM=1

BEGIN

SET @Res='Acceso Permitido.'

END

ELSE

BEGIN

SET @Res='Clave Incorrecta.'

END

END

ELSE

BEGIN

SET @Res='Usuario No Existe.'

END

END

GO

"Porque el secreto del desarrollo de una nación está en su educación"

Page 52: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

54.Ejecutar la Consulta para crear el Procedimiento Almacenado.

55.Si todo ha sido correcto el administrador de SQL nos devuelve el mensaje “Comandos Completados Correctamente”.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 53: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

H. CREAMOS UN ARCHIVO DE CONFIGURACIÓN “APP.CONFIG” QUE ALMACENARÁ LOS PARÁMETROS DE NUESTRA CADENA DE CONEXIÓN

56.En el Visual Studio Agregaremos un Archivo de configuración conteniendo la Cadena de Conexión a la Base de Datos instituto. Anticlic en “Instituto” + Agregar + Nuevo Elemento.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 54: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

57.En Elementos Comunes Seleccionamos “General” y escogemos “Archivo de Configración”. Dejamos el nombre por defecto “app.config” + Agregar.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 55: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

58.Dentro de <Configuration> </Configuration> colocamos la configuración de nuestra cadena de conexión usando la propiedad <appSettings>.

<appSettings>

<add key="cn"

value="Server=.\sqlexpress;

DataBase=Instituto;

User=sa;

Password=123456;"

/>

</appSettings>

"Porque el secreto del desarrollo de una nación está en su educación"

Page 56: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

59.Finalmente Tenemos nuestra solución así:

I. REFERENCIAMOS LAS CAPAS

"Porque el secreto del desarrollo de una nación está en su educación"

Page 57: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

60.Referenciamos la CAPA NEGOCIO A LA CAPA DATOS. Anticlic en NEGOCIO + Agregar Referencia.

61.Seleccionamos la CAPA DATOS + ACEPTAR.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 58: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

62.Seleccionamos la Capa de Aplicación “Instituto” + Anticlic + Agregar Referencia. Para referenciarla a la Capa NEGOCIO.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 59: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

63.SELECCIONAMOS LA CAPA NEGOCIO + ACEPTAR.

J. CREAMOS LAS CLASES NECESARIAS EN LAS CAPA DE DATOS Y NEGOCIOS CON SUS MÉTODOS RESPECTIVOS, LAS INTERFACES QUE LAS VAN A GESTIONAR Y LOS PROCEDIMIENTOS ALMACENADOS A SER GESTIONADOS POR LA CAPA DE DATOS

64.Codificar la clase D_Login como se indica:

Imports System.Data

Imports System.Data.SqlClient

Imports System.Configuration

Public Class D_Login

Private Function Conexion() As SqlConnection

Dim strConn As String

Dim ConfAppSet As New AppSettingsReader

"Porque el secreto del desarrollo de una nación está en su educación"

Page 60: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

strConn = CStr(ConfAppSet.GetValue("cn", GetType(String)))

Dim ConexionDB As New SqlConnection(strConn)

ConexionDB.Open()

Return ConexionDB

End Function

Public Function BuscarUsuarioD(ByVal usu As String, ByVal clav As String) As String

Dim cmd As New SqlCommand

cmd.CommandText = "login"

cmd.CommandType = CommandType.StoredProcedure

cmd.Connection = Conexion()

cmd.Parameters.Add("@Usuario", SqlDbType.VarChar, 50).Value = usu

cmd.Parameters.Add("@Password", SqlDbType.VarChar, 50).Value = clav

cmd.Parameters.Add("@Res", SqlDbType.VarChar, 40).Direction = ParameterDirection.Output

cmd.ExecuteNonQuery()

Return cmd.Parameters("@Res").Value

End Function

End Class

65.Codificar la Clase N_Login como se indica:

Imports DATOS

Public Class N_Login

"Porque el secreto del desarrollo de una nación está en su educación"

Page 61: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Public Function BuscaUsuarioN(ByVal usuN As String, ByVal clavN As String) As String

Dim clsLogin As New D_login

Return clsLogin.BuscarUsuarioD(usuN, clavN)

End Function

End Class

66.Diseñar el frmLogin como se indica:

67.Agregar el Menú “Mantenimiento” y dentro el SubMenú “Alumnos”.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 62: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

68.Agregamos nuestro formulario de Mantenimiento “frmAlumnos” dentro de la capa de presentación Instituto.

69.Diseñar como se indica.

"Porque el secreto del desarrollo de una nación está en su educación"

Page 63: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

70.Dentro del código del formulario frmAlumnos agrego el método constructor Sub New(), una instancia frmInstance y una función Instance() como se ve en el cuadro y la imagen:

Public Class frmAlumnos

Private Sub New()

' Llamada necesaria para el diseñador.

InitializeComponent()

"Porque el secreto del desarrollo de una nación está en su educación"

Page 64: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

' Agregue cualquier inicialización después de la llamada a InitializeComponent().

End Sub

Private Shared frmInstance As frmAlumnos = Nothing

Public Shared Function Instance() As frmAlumnos

If frmInstance Is Nothing OrElse frmInstance.IsDisposed = True Then

frmInstance = New frmAlumnos

End If

frmInstance.BringToFront()

Return frmInstance

End Function

End Class

"Porque el secreto del desarrollo de una nación está en su educación"

Page 65: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Con esto logramos que se inicie una sola instancia de nuestro formulario hijo.

71.Doble clic en el submenu Alumnos para generar su código:

72.Agregarle el siguiente código:

Dim Alumnos As frmAlumnos = frmAlumnos.Instance

Alumnos.MdiParent = Me

Alumnos.Show()

"Porque el secreto del desarrollo de una nación está en su educación"

Page 66: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

73.En el SQL Server Management abrimos una Nueva Consulta y creamos otro procedimiento Almacenado similar al paso 53:

CREATE PROCEDURE listarAlumnos

AS

BEGIN

SELECT * FROM Alumnos

END

GO

"Porque el secreto del desarrollo de una nación está en su educación"

Page 67: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

74.Ejecutamos la consulta para crear el procedimiento almacenado “listarAlumnos”.

75.Agregamos una nueva clase dentro de la Capa DATOS llamada D_Listar. La codificamos como se indica:

Imports System.Data

Imports System.Data.SqlClient

Imports System.Configuration

Public Class D_Listar

Private Function Conexion() As SqlConnection

Dim strConn As String

Dim ConfAppSet As New AppSettingsReader

"Porque el secreto del desarrollo de una nación está en su educación"

Page 68: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

strConn = CStr(ConfAppSet.GetValue("cn", GetType(String)))

Dim ConexionDB As New SqlConnection(strConn)

ConexionDB.Open()

Return ConexionDB

End Function

Public Function ListarD() As DataSet

Dim cmd As New SqlCommand

cmd.CommandText = "listarAlumnos"

cmd.CommandType = CommandType.StoredProcedure

cmd.Connection = Conexion()

Dim DA As New SqlDataAdapter

Dim DS As New DataSet

DA.SelectCommand = cmd

DA.Fill(DS)

Return DS

End Function

End Class

"Porque el secreto del desarrollo de una nación está en su educación"

Page 69: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

76.Agregamos una nueva clase dentro de la capa NEGOCIO llamada N_Listar y la codificamos como se indica:

Imports DATOS

Public Class N_Listar

Public Function ListarN() As DataSet

Dim clsLogin As New D_Listar

Return clsLogin.ListarD

End Function

End Class

"Porque el secreto del desarrollo de una nación está en su educación"

Page 70: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

77.Creamos el procedimiento almacenado InsertarAlumno:

CREATE PROCEDURE InsertarAlumno

@CodAlumno CHAR(4),

@Nombre VARCHAR(50),

@Apellidos VARCHAR(50),

@Especialidad VARCHAR(50),

@Curso VARCHAR(50),

@Turno VARCHAR(50),

@Nota VARCHAR(50)

AS

BEGIN

INSERT INTO Alumnos

"Porque el secreto del desarrollo de una nación está en su educación"

Page 71: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

VALUES

(

@CodAlumno,

@Nombre,

@Apellidos,

@Especialidad,

@Curso,

@Turno,

@Nota

)

END

GO

78.Renombramos las cajas de texto como se indica en la figura:

"Porque el secreto del desarrollo de una nación está en su educación"

Page 72: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

79.Agregamos una nueva clase dentro de la capa DATOS llamada D_Insertary la codificamos como se indica:

Imports System.Data

Imports System.Data.SqlClient

Imports System.Configuration

Public Class D_Insertar

Private Function Conexion() As SqlConnection

Dim strConn As String

Dim ConfAppSet As New AppSettingsReader

strConn = CStr(ConfAppSet.GetValue("cn", GetType(String)))

Dim ConexionDB As New SqlConnection(strConn)

ConexionDB.Open()

Return ConexionDB

End Function

"Porque el secreto del desarrollo de una nación está en su educación"

Page 73: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

Public Function InsertarD(ByVal CodAlumno As String, ByVal Nombre As String, ByVal Apellidos As String, ByVal Especialidad As String, ByVal Curso As String, ByVal Turno As String, ByVal Nota As Integer) As Integer

Dim cmd As New SqlCommand

cmd.CommandText = "InsertarAlumno"

cmd.CommandType = CommandType.StoredProcedure

cmd.Connection = Conexion()

cmd.Parameters.Add("@CodAlumno", SqlDbType.Char, 4).Value = CodAlumno

cmd.Parameters.Add("@Nombre", SqlDbType.VarChar, 50).Value = Nombre

cmd.Parameters.Add("@Apellidos", SqlDbType.VarChar, 50).Value = Apellidos

cmd.Parameters.Add("@Especialidad", SqlDbType.VarChar, 50).Value = Apellidos

cmd.Parameters.Add("@Curso", SqlDbType.VarChar, 50).Value = Curso

cmd.Parameters.Add("@Turno", SqlDbType.VarChar, 50).Value = Turno

cmd.Parameters.Add("@Nota", SqlDbType.Int).Value = Nota

Return cmd.ExecuteNonQuery

End Function

End Class

"Porque el secreto del desarrollo de una nación está en su educación"

Page 74: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

80.Agregamos una nueva clase dentro de la capa NEGOCIO llamada N_Insertar y la codificamos como se indica:

Imports DATOS

Public Class N_Insertar

Public Function InsertarN(ByVal CodAlumno As String, ByVal Nombre As String, ByVal Apellidos As String, ByVal Especialidad As String, ByVal Curso As String, ByVal Turno As String, ByVal Nota As Integer) As Integer

Dim clsLogin As New D_Insertar

Return clsLogin.InsertarD(CodAlumno, Nombre, Apellidos, Especialidad, Curso, Turno, Nota)

End Function

End Class

"Porque el secreto del desarrollo de una nación está en su educación"

Page 75: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

81.Codificamos el evento Load del formulario frmAlumnos para que cargue los datos al iniciarse en el DataGridView1:

Private Sub frmAlumnos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim clsNegocio As New NEGOCIO.N_Listar

DataGridView1.DataSource = clsNegocio.ListarN.Tables(0)

End Sub

Y codificamos el botón “btnInsertar” del formulario frmAlumnos:

Private Sub btnInsertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsertar.Click

Dim clsNegocio As New NEGOCIO.N_Insertar

Dim clsNegocio01 As New NEGOCIO.N_Listar

clsNegocio.InsertarN(txtCodAlumno.Text, txtNombre.Text, txtApellidos.Text, txtEspecialidad.Text, txtCurso.Text, txtTurno.Text, CInt(txtNota.Text))

"Porque el secreto del desarrollo de una nación está en su educación"

Page 76: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

DataGridView1.DataSource = clsNegocio01.ListarN.Tables(0)

End Sub

82.Al ejecutar e insertar un Nuevo item se vería así:

"Porque el secreto del desarrollo de una nación está en su educación"

Page 77: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

"Porque el secreto del desarrollo de una nación está en su educación"

Page 78: MVC y Programacion Por Capas

Autor: Juan Marcelo Chamorro Avendaño E-mail: [email protected] Personal: http://marcelodata.blogspot.com

• Se deja como trabajo utilizando todo lo aprendido implementar las interfaces y clases necesarias para que funcionen los botones Modificar y Eliminar.

• Además filtrar la aplicación para mostrar a los alumnos por Código, Nombre, Apellidos, Especialidad, Curso, Turno o Nota.

• Implementar un ejemplo de búsqueda por Código, Nombre, Apellidos, Especialidad, Curso, Turno o Nota.

• Encriptar la Cadena de Conexión (Opcional).

• Investigar y generar un reporte para imprimir (Opcional).

"Porque el secreto del desarrollo de una nación está en su educación"