Guía de Desarrollo de Aplicaciones C# .NET y MySQL

48
  Guía de Desarrollo de Aplicaciones C# .NET y MySQL Sorey Bibiana García Zapata http://soreygarcia.blogspot.com Requisitos de conocimiento : Para iniciar este curso usted de be conocer sentencias básicas de C# .NET y poseer conceptos básicos de bases de datos. Además se requiere tener la co ntextualización necesaria en aplicaciones distribuidas dada en la presentación http://www.slideshare.net/soreygarcia/aplicaciones- distribuidas-presentation Requisitos técnicos: Tener instalado Visual Studio .NET 2005.

description

Guía de Desarrollo de Aplicaciones C# .NET y MySQLSorey Bibiana García Zapata http://soreygarcia.blogspot.comRequisitos de conocimiento: Para iniciar este curso usted debe conocer sentencias básicas de C# .NET y poseer conceptos básicos de bases de datos. Además se requiere tener la contextualización necesaria en aplicaciones distribuidas dada en la presentación http://www.slideshare.net/soreygarcia/aplicacionesdistribuidas-presentation Requisitos técnicos: Tener instalado Visual Studio .NET

Transcript of Guía de Desarrollo de Aplicaciones C# .NET y MySQL

Page 1: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 1/48

 

 

Guía de Desarrollo de Aplicaciones C# .NET y MySQL

Sorey Bibiana García Zapata

http://soreygarcia.blogspot.com 

Requisitos de conocimiento: Para iniciar este curso usted debe conocer sentencias básicas de C# .NET y

poseer conceptos básicos de bases de datos. Además se requiere tener la contextualización necesaria en

aplicaciones distribuidas dada en la presentación http://www.slideshare.net/soreygarcia/aplicaciones-

distribuidas-presentation 

Requisitos técnicos: Tener instalado Visual Studio .NET 2005.

Page 2: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 2/48

 

 

1. Construyendo la base del proyecto

Suponga el siguiente Diagrama de Paquetes:

De acuerdo a la teoría vista debemos crear los componentes representados en este Diagrama de

Paquetes, teniendo en cuenta que:

Ejercicio.Escritorio es una Aplicación WinForms

Ejercicio.LogicaNegocio es una Librería de Clases

Ejercicio.ObjetosNegocio es una Librería de Clases

Ejercicio.AccesoDatos es una Librería de Clases

Ejercicio.ServicioWeb es un WebService ASP.NET

Ejercicio.Web es un Sitio Web ASP.NET

Ahora bien, procesamos a su creación sobre Visual Studio .NET 2005 con C# .NET.

Recuerde: Este diagrama nos definirá las vías de comunicación entre componentes, solo loscomponentes relacionados entre sí pueden comunicarse, la dirección de la línea indicará queproyecto usa a cual proyecto, por ejemplo Ejercicio.Escritorio usa las clases del paqueteEjercicio.ObjetosNegocio. Es importante que tenga en cuenta que esta relación no es Bireccional,por lo cual Ejercicio.ObjetosNegocio no ve las clases de Ejercicio.Escritorio.

Page 3: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 3/48

 

Instrucciones

1.  Abra el Visual Studio .NET 2005

Recuerde que en Windows Vista usted debe ejecutar el Visual Studio en modo administrador

para que funcione correctamente.

2.  Cree un nuevo proyecto

3.  Cerciórese de que el Lenguaje C# se encuentra seleccionado y elija una Aplicación WinForms.

Page 4: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 4/48

 

4.  Al presionar el botón usted verá lo siguiente.

Esta imagen muestra la Jerarquía de la Solución. La raíz es “Ejercicio” y su primer proyecto es

“Ejercicio.Escritorio”. Este proyecto nos muestra la clase Program.cs a través de la cual se indica

cual es la primera ventana que de ejecutará en el proyecto así:

Repasando un poco los conceptos básicos lo que vemos en este archivo es:

La referencia a las los namespaces contenidos en las librerías que usa el archivo Program.cs

Recuerde: Este es el primer proyecto (Paquete, Componente) y con él se crean la solución que aagrupará los demás proyectos, por lo que es importante que verifique muy bien en como asigna elnombre de la solución y que deja seleccionada la opción de crear directorio para la solución.

Page 5: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 5/48

 

 La declaración del namespace Ejercicio.Escritorio

La declaración de la clase Program, contenida en el namespace Ejercicio.Escritorio  

La declaración del punto de entrada del proyecto Ejercicio.Escritorio, como método de la clase

Program.

En la siguiente línea

Se indica cual es la forma que iniciará la aplicación en este caso es Form1.

5.  Ahora crearemos el proyecto de Lógica de Negocio. Damos click derecho sobre la solución en el

Explorador de soluciones y agregamos un nuevo proyecto.

Recuerde: Los namespace son agrupaciones lógicas de las clases.

Recuerde: Un proyecto solo puede tener un solo punto de entrada. El punto de entrada de unproyecto tipo ejecutable (Consola o Winforms) siempre será un método llamado Main.

Page 6: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 6/48

 

6.  Elegimos el tipo Class Library (Librería de Clases), le asignamos el nombre

Ejercicio.LogicaNegocio y presionamos el botón .

7.  Si a realizado correctamente el paso anterior, en el Solution Explorer (Explorador de Soluciones)

verá el siguiente árbol.

Hagalo usted mismo! Agregue los demás proyectos tipo Librería de Clases,Ejercicio.ObjetosNegocioy Ejercicio.AccesoDatos.

Page 7: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 7/48

 

8.  Del mismo modo en que se agregaron las Librerías de Clase agregaremos un nuevo proyecto

para la aplicación web, Ejercicio.Web. Esta vez seleccionaremos el tipo de proyecto ASP.NET

Web Application.

9.  Agregamos el proyecto para el servicio web Ejercicio.ServicioWeb, seleccionando esta vez el

tipo de proyecto ASP.NET Web Service Application. 

Page 8: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 8/48

 

10. Para completar las instrucciones que da el diagrama de paquetes, debemos agregar las

relaciones entre los proyectos, es decir las referencias. Veamos nuevamente el diagrama de

paquetes.

11. El proyecto Ejercicio.Escritorio tiene una referencia al proyecto Ejercicio.ObjetosNegocio. Para

añadirla hacemos click derecho sobre la carpeta de referencias del proyecto que tiene la

referencia es decir Ejercicio.Escritorio, y seleccione la opción añadir una referencia:

12. En la nueva ventana que aparece seleccionamos el tab Projects (Proyectos) y elegimos el

proyecto que se va a referenciar, es decir Ejercicio.ObjetosNegocio y presionamos el botón

.

Page 9: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 9/48

 

 

13. Este tipo de referencias se agregan cuando necesitamos que un proyecto de cualquier tipo

pueda usar las clases contenidas en un proyecto de tipo Librería de Clases. Sin embargo para

que los proyectos Ejercicio.Escritorio y Ejercicio.Web puedan referenciar al proyecto

Ejercicio.ServicioWeb se deben seguir los siguientes pasos.

14. De click derecho sobre la carpeta de referencias de alguno de los proyectos que referenciará al

servicio web y seleccione la opción agregar una referencia web.

15. En la nueva pantalla que aparece seleccione la opción servicios web en esta solución.

Page 10: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 10/48

 

 

16. Después se verán los servicios web contenidos dentro del proyecto.

Recuerde: Esta instrucción se sigue solo cuando estamos desarrollando locamente. Cuandoun proyecto de esta naturaleza es implementado en un ambiente de producción debeindicarse la ruta donde se encuentra publicado el servicio web.

Page 11: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 11/48

 

 

17. En nuestro caso tenemos Service1 que es el que el proyecto crea por defecto al ser añadido a la

solución, a modo de ejercicio, continuaremos con la creación de la referencia. Damos click al

nombre del servicio Service1 y veremos como carga muestra los métodos que contiene, en

nuestro caso es el método por defecto HelloWorld.

18. Cambiamos el nombre localhost del campo nombre de referencia web (Web reference name) y

allí colocamos el nombre de la referencia. Por el momento usaremos el nombre

Ejercicio.ReferenciaWeb, después de ingresarlo presionamos el botón .

19. Cuando la referencia se agrega en el explorador de soluciones podemos observar como se ha

agregado una carpeta de referencias web que contiene dentro lo que llamaremos un Proxy, conel nombre que indicamos a la referencia web.

Page 12: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 12/48

 

 

Hagalo usted mismo! Agregue las referencias y referencias web que hacen falta paracompletar el diagrama de paquetes.

Page 13: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 13/48

 

2. Construyendo el acceso a datos

Usaremos para nuestro ejercicio una base de datos sobre MySQL, por lo cual debemos descargar los

siguientes componentes e instalarlos.

Servidor de Base de Datos de MySQL 6.0

http://dev.mysql.com/get/Downloads/MySQL-6.0/mysql-6.0.10-alpha-win32.msi/from/pick 

Conector .NET para MySQL

http://dev.mysql.com/get/Downloads/Connector-Net/mysql-connector-net-5.0.9.exe/from/pick 

Herramientas Graficas para Administración de la Base de Datos MySQL

http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-gui-tools-5.0-r17-win32.msi/from/pick 

Cuando haya realizado las descargas realice las instalaciones.

Reinicie el Visual Studio 2005 después de la instalación del Conector .NET para MySQL, para que pueda

añadir las referencias correctamente.

Después de que todos los instaladores sean ejecutados exitosamente, inicie el programa que permite la

administración de las bases de datos de MySQL.

Cuando el programa se inicia solicita los datos para conectar al servidor, ingrese los que se indican a

continuación acompañados de la contraseña que ha configurado durante la instalación y presione el

botón .

 

Importante: Debe registrarse para poder realizar estas descargas.

Importante: Cuando esta instalando el Servidor de Base de Datos, se le solicitará una contraseñapara el usuario administrador. Ingrese la contraseña deseada y NO LA OLVIDE.

Page 14: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 14/48

 

 

Al ingresar en la aplicación seleccione la opción Catalogs y de click derecho sobre la lista que aparece en

la parte inferior, seleccionando la opción Crear Nuevo Esquema (Create new schema).

Cuando la aplicación se lo solicite ingrese el nombre del esquema o base de datos nueva.

Page 15: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 15/48

 

 

El nuevo esquema aparece en la lista de catalogos. De click derecho sobre el nombre del nuevo esquema

creado y seleccione la opción Crear Nueva Tabla (Create New Table).

Cree la tabla tblUsuario siguiendo la imagen que se presenta a continuación y al terminar oprima el

botón .

Page 16: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 16/48

 

 

La aplicación nos solicitará que confirmemos la creación de la tabla, allí oprimimos el botón

y luego el botón .

Page 17: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 17/48

 

Verificamos que la tabla ha sido creada.

Ahora bien, lo importante en el desarrollo por capas es delegar responsabilidades a cada una de las

capas, componentes y clases que hacen parte del sistema. A partir de este momento construiremos el

componente encargado de conectarse a la base de datos y manipular los datos. El proyecto encargado

de estas responsabilidades es Ejercicio.AccesoDatos. Empezaremos por borrar la clase por defecto quetiene el proyecto.

Page 18: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 18/48

 

Cuando se nos pida confirmación presionamos el botón .

Ahora agregaremos un nuevo elemento

Este nuevo ítem, será de tipo Class (Clase) y lo llamaremos AccesoDatos.

Page 19: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 19/48

 

 

Debe tenerse en cuenta que la extensión .cs, debe conservarse. Ahora bien, de la misma forma

añadiremos otra Clase llamada ManejoDatos.cs. Al terminar el proyecto Ejercicio.AccesoDatos debe

verse de la siguiente forma.

La clase AccesoDatos tendrá la responsabilidad de hacer métodos genéricos para acceder a la base de

datos, tales como: Conectarse, Desconectarse, Ejecutar Operaciones, Consultar Datos.

Para que esto sea posible debemos añadir una referencia en el proyecto Ejercicio.AccesoDatos delconector de .NET para MySQL.

Page 20: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 20/48

 

 

En el tab NET buscamos MySql.Data y presionamos el botón .

Revisamos que en efecto la referencia fue agregada a la carpeta de referencias del proyecto

Page 21: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 21/48

 

A continuación agregamos a la clase AccesoDatos un objeto de tipo Conexión del esquema de ADO.NET

que implementa el Conector .NET de MySQL

Vemos como aparece una linea vinotinto bajo el objeto conexión debido a que aun el archivo dondeesta la clase AccesoDatos, no conoce el namespace donde este se encuentra.

Presionamos la linea y seleccionamos el namespace al que pertenece.

Al seleccionarlo el using correspondiente se ubica en la parte superior del archivo y el nombre de la

clase que corresponde al tipo del objeto conexión, se muestra en color verde claro.

Luego de esto, declaramos el constructor de la clase, así 

Recordamos que el constructor tiene el mismo nombre de la clase y no tiene parámetro de retorno,

además le agregamos un parámetro de entrada a través del cual configuraremos luego la cadena de

conexión a la base de datos.

Page 22: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 22/48

 

Además, en el constructor inicializamos el objeto conexión configurándolo con la cadena de conexión

que se recibirá como parámetro.

Las cadenas de conexión para cualquier base de datos la podemos encontrar en la página

http://www.connectionstrings.com/ 

Ahora vamos a declarar dentro de la clase y debajo del constructor, el método conectar.

Debemos recordar colocar la conexión dentro de un bloque try… catch con el fin de poder controlar si

un error ocurre al momento de conectarse a la base de datos.

Recordamos además que la expresión throw nos sirve para relanzar la excepción.

Ahora declaramos el método desconectar.

Para desconectarnos, cerramos la conexión y destruimos el objeto conexión.

Declaramos el método Consultar que nos va a retornar un DataTable

Como el DataTable no se encuentra referenciado nuevamente saldrá la linea vinotinto que ya sabemos

como usar. El método consultar debe tener la siguiente estructura, para ejecutar sentencias de tipo

consulta que no tengan parámetros.

Page 23: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 23/48

 

 

Podemos agregar una sobre carga para ejecutar consultas que tengan parámetros así.

Ahora declaramos el método necesario para ejecutar operaciones (insertar, actualizar y borrar) sin

parámetros.

Page 24: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 24/48

 

 

Y añadimos la sobrecarga que podrá ejecutar sentencias de modificación de datos, con parámetros.

Cuando todos los métodos estén listos, si los minimizamos, la clase debería quedar de la siguiente

manera.

Page 25: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 25/48

 

 

Es importante que se establezca esta clase como interna, para que no pueda ser accedida desde fuera

del proyecto, ya que solo la clase ManejoDatos puede conocerla.

Ahora crearemos la clase ManejoDatos, esta clase tendrá la responsabilidad de saber que sentencias sql

o procedimientos de la base de datos deben ejecutarse para poder realizar una función específica.

Crearemos un procedimiento con parámetros que haga una consulta en la base de datos de una

combinación de usuario y contraseña.

Seleccionamos el esquema y elegimos el tab procedimientos almacenados (Stored procedures) y

precionamos el botón .

Importante: Con MySQL para ejecutar instrucciones que lleven parametros debemos usarprocedimientos almacenados.

Page 26: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 26/48

 

 

La aplicación nos solicitará el nombre del procedimiento almacenado, escribimos el nombre

spConsultarCredecialesUsuario y presionamos el botón .

A continuación aparecerá una ventana en la cual se creará el procedimiento almacenado.

Page 27: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 27/48

 

Dentro del bloque de BEGIN y END escribimos la instrucción a ejecutarse y en los paréntesis del nombre

del procedimiento configuramos los parámetros de entrada y presionamos el botón .

Verificamos que el procedimiento fue creado exitosamente.

La clase ManejoDatos debe ser publica para que sea accedida desde otros proyectos. Dentro de ella

debemos declarar un atributo string para la cadena de conexión que sea privado y un constructor que

reciba el valor de dicha cadena. Ademas declararemos un método que ejecute el procedimiento que

acabamos de crear.

Page 28: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 28/48

 

 

Con el fin de ver la diferencia entre una consulta y una operación de modificación de datos añadiremos

dentro de la clase ManejoDatos un método encargado de insertar un registro nuevo en la tabla que

tenemos creada. El código del procedimiento es el siguiente:

Recuerde: Las clases DataTable y MySqlParameter no aparecerán en verde claro hasta que no

use la linea vinotinto que le indica cuales son los namespaces a usar o bien hasta que los escribamanualmente si los conoce.

Page 29: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 29/48

 

El procedimiento almacenado que debe crear es el que sigue:

Page 30: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 30/48

 

3. Construyendo la lógica de negocios

Ahora que el acceso a datos está construido, debemos construir secuencialmente las otras capas hasta

llegar a la interfaz de usuario.

Construyamos ahora la lógica de negocio. Vamos al proyecto Escritorio.LogicaNegocio y borramos la

clase por defecto Class1.cs.

Luego añadimos una nueva clase en el proyecto que se llame Operaciones. El árbol del proyecto debe

quedar como se ve a continuación.

Page 31: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 31/48

 

Recuerde que previamente en la parte uno de esta guía ustede debió añadir la referencia de

Ejercicio.LogicaNegocio a Ejercicio.AccesoDatos como lo indicaba el Diagrama de Paquetes.

Ahora bien, haga que la clase Operaciones sea pública y cree las firmas de los métodos que se indican a

continuación

El método IniciarSesion se encargará de validas si un usuario puede entrar o no al sistema.

El método InsertarUsuario se encargará de registrar un usuario nuevo en la base de datos.

Ahora añadamos un atributo tipo string privado para la cadena de conexión, y agreguemos el

constructor a través del cual se inicializará.

Page 32: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 32/48

 

 

Ahora completamos los dos métodos para la ejecución de las operaciones.

En la parte superior del archivo agregamos el using a el proyecto Ejercicio.AccesoDatos.

Dentro del método InsertarRegistro hacemos una instancia de la clase ManejoDatos. Cuando llegamos al

constructor podemos observar como este nos pide entregarle la cadena de conexión.

Completamos el procedimiento como sigue a continuacion

Recuerde que el bloque try nos ayuda a controlar errores en la ejecución, observe ademas que en este

caso el throw lanza una nueva excepcion indicando el mensaje y adjuntando la excepcion que pudiera

venir desde la base datos.

Para implementar el método IniciarSesión en cambio, no haremos una invocación sencilla. Primero

consultaremos y luego verificaremos si la consulta obtuvo resultados, lo que significará que las

credenciales del usuario eran correctas.

Recuerde colocar el namespaces que hagan falta usando la barra vinotinto para la barra vinotinto para la

clase DataTable.

El procedimiento debe quedar como sigue

Page 33: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 33/48

 

 

Así ha quedado implementada la librería de clases de la lógica de negocio. Ahora bien, aun la interfaz de

usuario no puede acceder a estos métodos, debido a que de acuerdo al Diagrama de Paquetes incial es

el servicio web quien accede a estos datos.

Vamos entonces a configurar el servicio web. Recuerde que el servicio web actua simplemente como

una capa de transporte entre la interfaz de usuario y la logica de negocio. Lo que permite un servicio

web es que la lógica de negocios sea accedida a traves de internet.

En primer lugar vamos a usar el archivo web.config que es un archivo de configuración del web service

para configurar la cadena de conexión a la base de datos. Este archivo se encuentra dentro del proyecto

de tipo servicio web

Dando doble click al web.config se ve lo siguiente:

Page 34: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 34/48

 

 

Buscamos en la página sugerida el string de conexión adecuado para mysql

http://www.connectionstrings.com/mysql 

En nuestro caso sería

Vamos al web.config y lo configuramos así 

Page 35: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 35/48

 

 

Estos por supuestos son mis datos de configuración, usted deberá cambiar el password por el que ha

configurado al instalar MySQL.

Ahora vamos a borrar el servicio que hay creado por defecto en el proyecto, asi.

Luego añadimos un nuevo ítem

Page 36: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 36/48

 

 

Elegimos el tipo WebService y le damos por nombre LogicaNegocio.

Recuerde conservar la extensión .asmx.

Si ha hecho todo bien hasta aquí, el árbol debe verse de la siguiente forma

Page 37: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 37/48

 

 

Recuerde que debió agregar previamente una referencia a Ejercicio.LogicaNegocio en la primera sección

de esta guía.

Ahora bien, en la pantalla usted debe estar visualizando el siguiente código.

Page 38: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 38/48

 

Este código pertenece al web service que acabamos de agregar, usted debe tener en cuenta algo básico.

Cuando ubica el tag sobre la cabecera de un método, ese método queda expuesto en el

web service de otra manera no podrá dicho método ser accedido de forma remota.

Probaremos quitándole el atributo a el método por defecto y creando nuestros propios métodos.

Cree dos métodos con las mismas firmas del proyecto Ejercicio.LogicaNegocio.

Desde cada uno de estos métodos se invocará a la clase operaciones enviadole la cadena de conexión

que hay almacenada en el web config.

Recuerde usar la linea vinotinto para incluir los namespaces correspondientes a las clases Operaciones y

ConfigurationManager.

Page 39: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 39/48

 

4. Construyendo la interfaz de usuario

En este punto todas las capas están configuradas, necesitamos crear entonces las pantallas a través de

las cuales el usuario interactuará con el sistema, primero crearemos una pantalla de inicio de sesión.

Primero borramos la forma que hay creada por defecto

Luego añadimos un nuevo ítem

Page 40: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 40/48

 

 

Seleccionamos el tipo WindowsForms y le colocamos el nombre frmInicioSesion.

En la pantalla nos aparece una nueva forma en blanco asi

Page 41: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 41/48

 

 

Agregamos los controles a la forma para que se vea de la siguiente manera

Recuerde el nombramiento correcto de los controles

Botones: btnIniciar, btnRegistrarse

Labels: lblUsuario, lblClave

Textbox: txtUsuario, txtClave

Page 42: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 42/48

 

Ahora bien, debemos eliminar la referencia web que habíamos construido en la primera parte de la guía.

 

Ahora añadiremos una nueva al servicio web que hemos creado

Vemos como al momento de explorar las soluciones del proyecto ya no vemos Service1 si no que vemos

LogicaNegocio que es el nombre que le pusimos a nuestro servicio web.

Page 43: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 43/48

 

 

Y al darle click vemos que aparecen nuestros métodos pero no aparece el HelloWorld por que no le

quitamos el atributo que lo exponía

Page 44: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 44/48

 

Configuramos el nombre y añadimos la referencia

El árbol del proyecto debe ver asi

Ahora vamos a la forma y damos doble click sobre el botón iniciar.

Aparecerá el siguiente código

Invocaremos el método iniciar sesión dentro del click del botón asi

Page 45: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 45/48

 

 

Es importante que se usen los bloques try … catch en la interfaz de usuario para que cuando ocurra un

error la aplicación no se detenga, sin embargo observe que en este caso ya no relanzamos la excepción

con un throw si no que exponemos el mensaje enviado por la excepción.

En este momento podemos probar la aplicación.

Primero debemos establecer la forma frmInicioSesion como la que se va ejecutar primero en el punto deentrada

Page 46: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 46/48

 

Cerciórese ademas de que tiene el proyecto Ejercicio.Escritorio como proyecto de inicio, si no

establézcalo.

Presione el botón ejecutar ubicado en la barra superior.

Debido a que aun no tenemos ningún usuario en la base de datos, solo veremos lo siguiente

Page 47: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 47/48

 

Ahora configuremos el botón Registrarse.

Ahora podemos probar ambos botones, primero registramos un usuario.

Y luego oprimimos el botón iniciar sesión.

Page 48: Guía de Desarrollo de Aplicaciones C# .NET y MySQL

5/10/2018 Guía de Desarrollo de Aplicaciones C# .NET y MySQL - slidepdf.com

http://slidepdf.com/reader/full/guia-de-desarrollo-de-aplicaciones-c-net-y-mysql 48/48