Universidad Tecnológica de Querétaro Digitally signed by Universidad Tecnológica de Querétaro DN: cn=Universidad Tecnológica de Querétaro, c=MX, o=Universidad Tecnológica de Querétaro, ou=UTEQ, [email protected] Date: 2006.04.27 13:36:37 +02'00' UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO “Voluntad • Conocimiento • Servicio” DIRECTORIO TELEFÓNICO Reporte de Estadía para obtener el Título de Técnico Superior Universitario en Telemática HÉCTOR HERNÁNDEZ VILCHIS Santiago de Querétaro Febrero del 2005 1 2 UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO “Voluntad • Conocimiento • Servicio” DIRECTORIO TELEFÓNICO Reporte de Estadía para obtener el Título de Técnico Superior Universitario en Telemática Asesor de la Empresa: ING. JESSICA LILIANA RUELAS S. Asesor de la Universidad: ING. JORGE GARCÍA SALDAÑA Alumno: HÉCTOR HERNÁNDEZ VILCHIS Santiago de Querétaro Febrero del 2005 3 AGRADECIMIENTOS Agradezco a todos mis maestros, ya que gracias a ellos y sus conocimientos nos brindan las herramientas para poder enfrentarnos a la problemática de la vida real y así poder dar solución a cada uno de los problemas que se nos presenten. Agradezco a mi familia por que en todo momento conté con su apoyo en especial a mi madre y a mi tío, quienes me brindan su apoyo incondicional y por permitirme crecer intelectualmente y de igual manera a mi tía. También agradezco a todos y cada uno de mis compañeros, con quienes tuvimos momentos difíciles, así como también momentos inolvidables, contando en cada momento con su apoyo. 4 AGRADECIMIENTOS ÍNDICE INTRODUCCIÓN CAPÍTULO I DIRECTORIO TELEFÓNICO PAG. 1.1 Cideteq 10 1.1.1 Giro de la empresa 10 1.1.2 Organigrama 11 1.2 Análisis de necesidades 12 1.2.1 Definición del proyecto 13 1.2.2 Objetivos 13 1.2.3 Justificación 13 1.3 Alternativas de solución 14 1.4 Elección de la alternativa óptima 14 1.5 Plan de trabajo 15 1.5.1 Diagrama de gantt 15 1.5.2 Especificaciones 15 1.5.2.1 Investigación sobre el lenguaje de programación 16 1.5.2.2 Definición del trabajo y ambientación con el software de programación 16 1.5.2.3 Programación de la aplicación a nivel 5 administrador 16 1.5.2.4 Programación de la aplicación a nivel usuario 16 1.5.2.5 Diseño y programación de la interfaz gráfica de la aplicación 17 1.5.2.6 Fase de pruebas y corrección 17 1.5.2.7 Entrega de proyecto 17 CAPÍTULO II DESARROYO DEL PROYECTO 2.1 Descripción detallada del plan de trabajo 19 2.2 Investigación sobre el lenguaje de programación 19 2.2.1 Visual Basic. Net 19 2.2.2 ¿Qué es .Net framework? 20 2.2.3 Visual Basic .Net con base de datos 22 2.2.4 Ejemplo del objeto Conection 22 2.2.5 Objeto command 25 2.2.6 Objeto dataadapter y dataset 26 2.2.7 Dataadapter y Dataset 28 2.2.8 Sql select consulta, despliegue o Selección 29 2.3 Definición del trabajo y ambientación con el software de programación 30 2.4 Programación de la aplicación a nivel administrador 31 2.4.1 Página para introducir usuario 6 y contraseña 31 2.4.2 Página de mantenimiento 33 2.4.3 Página de altas 34 2.4.4 Página de modificaciones 35 2.4.5 Página de búsquedas 36 2.5 Programación de la aplicación a nivel usuario 37 2.5.1 Página inicial 38 2.5.2 Página de búsquedas 39 2.5.3 Página de reporte 41 2.6 Diseño y programación de la interfaz gráfica de la aplicación. 42 2.7 Fase de pruebas y corrección 42 2.8 Entrega del proyecto 43 CAPÍTULO III CONCLUSIONES 3.1 Dificultades 45 3.2 Logros obtenidos 46 3.3 Recomendaciones 46 3.4 Aportaciones 46 ANEXOS GLOSARIO MATERIAL DE CONSULTA 7 INTRODUCCIÓN La empresa Cideteq cuenta con telefonía IP y con extensiones para el personal. El proyecto inicia por que requieren de una estrategia para tener un mejor manejo de la información de cada una de las extensiones, como es: nombre y apellidos de la persona a la que se le asigna dicha extensión, departamento y algunos datos. El problema de la empresa es cuando se asigna una nueva extensión, se tiene que dar aviso a todo el personal para que estén enterados y así saber cuál es la extensión de la persona. Para esto se tuvo la necesidad de realizar estas tareas de una forma automatizada, por lo que se recurrió a la realización de un sistema informático en Visual Basic .NET. El sistema contiene una base de datos que almacena la información de cada extensión, también contiene todo lo que es un mantenimiento (altas, bajas, modificaciones), el sistema realiza un reporte con todos los datos e imprime un reporte así como genera un formato PDF. El sistema puede ser utilizado desde cualquier computadora que tenga acceso en la intranet de la empresa, ya que se encuentra alojado en un servidor, por lo tanto, su acceso es ilimitado. 8 CAPÍTULO I DIRECTORIO TELEFÓNICO 9 1.1. Cideteq 1.1.1 Giro de la empresa Cideteq (Centro de Investigación y Desarrollo Tecnológico en Electroquímica) es un centro especializado en el desarrollo de soluciones a problemas electroquímicos y ambientales, proyectados por personal altamente capacitado y apoyo por la infraestructura más avanzada en los campos de la electroquímica, tecnología ambiental, microscopia electroquímica, y análisis químico, respaldado por un centro de información tecnológico especializado y avanzado. 10 1.1.2 Organigrama 11 El proyecto se realizará para el área de informática, el sistema será utilizado por todo el personal del centro de investigación (CYDETEQ) cuando lo requieran. 1.2 Análisis de necesidades 1.2.1 Definición del proyecto La empresa cuenta con telefonía IP, y su gran utilidad se basa en la comunicación con las demás instituciones que pertenecen al CONACYT. Actualmente se requiere de alguna forma para facilitar búsquedas de números telefónicos, extensiones o de algún usuario en particular, esto se puede lograr por medio de una base de datos, en la cual se almacenará información de todos y cada uno de los usuarios, dicha Base de Datos se creará en ambiente Web para que los usuarios tengan acceso a la información. Se pretende que se haga dicha página con la cual se podrá manipular la información de una manera más rápida y efectiva, la cual realizará búsquedas, altas, modificaciones y bajas en el caso que así lo requiera. Esto sólo es para el Administrador del sistema, el cual el podrá hacer las modificaciones respectivas de la información que se contenga en la Base de Datos, así como también bajas, modificaciones y altas de usuarios nuevos. 12 En el caso de los usuarios, ellos sólo podrán hacer consultas de la información, imprimir el directorio completo o guardarlo en su computadora en formato PDF. También se pretende que cuando se haga una alta de un nuevo usuario, el sistema enviará correos electrónicos a todos los usuarios que contenga la base de datos, para anunciar un nuevo registro ha sido dado de alta y se den a conocer sus datos respectivos. 1.2.2 Objetivos • Mantener la información actualizada de los usuarios. • Facilitar a los usuarios la búsqueda del personal, contenido en la Base de Datos. • Mantener a los usuarios informados de algún cambio en una de las extensiones 1.2.3 Justificación Con el sistema los usuarios tendrán un acceso más rápido y con una mejor calidad de información, para el manejo de las extensiones telefónicas internas del personal que labora en la empresa. 13 1.3 Alternativas de solución Una de las alternativas que se tenía para realizar el sistema es la de utilizar el lenguaje de programación PHP para realizar la página Web y MySQL para realizar las Bases de Datos, estas son alternativas muy buenas, ya que ninguno de los dos presenta problemas de compatibilidad. Visual Basic .NET es otra de las alternativas conjuntamente con Access como manejadora de Bases de Datos. Visual Basic net es un lenguaje de programación que viene en la suit de la programación Visual Studio .Net de Microsoft. Dicho lenguaje puede manejar Bases de Datos de diferentes distribuidores, tales como Oracle, MySQL, SQL Server, Access etc. 1.4 Elección de la alternativa óptima De las dos alternativas anteriores la que se eligió fue la de Visual Basic .Net, ya que en la empresa se tienen servidores con la plataforma Windows. Si se hubiera utilizado php y mySQL se debería instalar un servidor con alguna de las distribuciones Linux, conjuntamente con el servidor Apache y MySQL, ademas tendría que adquirir equipo nuevo para instalar el servidor; por lo tanto, el sistema se instalará en uno de los servidores existentes, además la empresa ya cuenta con el software. 14 1.5 Plan de trabajo 1.5.1 Diagrama de Gantt Id 1 1 2 3 4 5 6 7 8 Semanas 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Actividad a Realizar Id 1 2 3 4 5 6 7 8 Creación de un directorio telefónico. Investigación sobre el lenguaje de programación. Definición del trabajo y ambientación con el lenguaje de prog. Programación de la aplicación a nivel administrador. Programación de la aplicación a nivel usuario. Diseño y programación de la interfaz grafica de la aplicación. fase de pruebas y corrección. Entrega del proyecto. 1.5.2 Especificaciones 1.- Creación de un directorio telefónico: Durante el periodo de la estadía se realizará el sistema de directorio telefónico, éste comprende todas y cada una de las actividades hasta culminar el proyecto. 15 1.5.2.1 Investigación sobre el lenguaje de programación Para poder realizar el proyecto se consultarán libros, revistas, páginas de Internet, como apoyo para tener el conocimiento sobre el uso del lenguaje y su aplicación. 1.5.2.2 Definición del trabajo y ambientación con el software de programación Aquí se define lo que contendrá el sistema, así como las tareas que realizará, en esta parte también se hacen algunas pruebas para conocer el software. 1.5.2.3 Programación de la aplicación a nivel administrador Se hará la parte programada que va a ser utilizada por el administrador, en donde aparecerán restricciones para los usuarios. En esta parte el administrador podrá realizar altas, bajas, modificaciones, estas opciones sólo estarán disponibles para el administrador, quien tendrá contraseña para restringir el acceso a personas no autorizadas. 1.5.2.4 Programación de la aplicación a nivel usuario Para la parte del usuario, sólo podrá hacer consultas e imprimir el directorio o guardarlo en su computadora en formato PDF. 16 1.5.2.5 Diseño y programación de la interfaz gráfica de la aplicación Aquí se programará y se realizará la parte gráfica, donde se elegirán los colores que se le pondrán, así como algunas imágenes que contendrá el logotipo de la empresa, el cual será mostrado en la página. 1.5.2.6 Fase de pruebas y corrección Esta será una fase de depuración y pruebas, aquí se corregirán algunas cosas que no funcionen de acuerdo a lo planeado para hacer algunos cambios. 1.5.2.7 Entrega del proyecto Aquí se entregará el proyecto terminado al personal encargado y se procederá a dejarlo instalado en el servidor que ya estará funcionando. 17 CAPÍTULO II DESARROLLO DEL PROYECTO 18 2.1 Descripción detallada del plan de trabajo Durante esta etapa se realizara el directorio telefónico, éste abarca desde la inicialización del mismo hasta su culminación, ahí abarcan todas las actividades como es la ambientación con el lenguaje, planteamiento del proyecto y la definición del mismo con el responsable del proyecto en la empresa. 2.2 Investigación sobre el lenguaje de programación 2.2.1 Visual Basic .NET La nueva versión de Visual Basic .Net no es sólo una mejora con respecto a las versiones anteriores, sino que cambia mucho, tanto como si de otro lenguaje de programación se tratara. Visual Basic .net usa una jerarquía de clases que están incluidas en el .NET Framework, por tanto conocer el .NET Framework nos ayudará a conocer al propio Visual Basic .NET, aunque también se necesitará conocer la forma de usar y de hacer del Visual Basic ya que, aunque en el fondo sea lo mismo, el aspecto sintáctico es diferente para cada uno de los lenguajes basados en .NET Framework, si no fuese así, sólo existiría un solo lenguaje. 19 2.2.2 ¿Qué es el .NET Framework? ".NET Framework es un entorno para construir, instalar y ejecutar servicios Web y otras aplicaciones. Se compone de tres partes principales: el Common Language Runtime, las clases Framework y ASP.NET" • El .NET Framework es un entorno multi-lenguaje para la construcción, distribución y ejecución de Servicios Webs y aplicaciones. • El .NET Framework es una nueva plataforma diseñada para simplificar el desarrollo de aplicaciones en el entorno distribuido de Internet. • El .NET Framework consta de dos componentes principales: el Common Language Runtime y la librería de clases .NET Framework." El .NET Framework es el corazón de .NET, cualquier cosa que queramos hacer en cualquier lenguaje .NET debe pasar por el filtro cualquiera de las partes integrantes del .NET Framework. El Common Lenguage Runtime (CLR) es una serie de librerías dinámicas (DLLs), también llamadas assemblies, que hacen las veces de las DLLs del API de Windows así como las librerías runtime de Visual Basic o C++. Cualquier ejecutable depende de una forma u otra de una serie de librerías, ya sea en tiempo de ejecución como a la hora de la compilación. Pues el CLR es eso, 20 una serie de librerías usadas en tiempo de ejecución para que nuestros ejecutables o cualquiera basado en .NET puedan funcionar. Se acabó eso de que existan dos tipos de ejecutables: los que son autosuficientes y no dependen de librerías externas o los que necesitan de librerías en tiempo de ejecución para poder funcionar, tal es el caso de las versiones anteriores de Visual Basic. Por otro lado, la librería de clases de .NET Framework proporciona una jerarquía de clases orientadas a objeto disponibles para cualquiera de los lenguajes basados en .NET, incluido el Visual Basic. Esto quiere decir que a partir de ahora Visual Basic ya no será la "oveja negra" de los lenguajes de programación, sino que tendrá a su disposición todas las clases disponibles para el resto de los lenguajes basados en .NET, con lo cual sólo nos diferenciará del resto de programadores en la forma de hacer las cosas: más fáciles VB.NET ahora es totalmente un lenguaje orientado a objetos con herencia y todo. También permite crear Threads o hilos o tramas de ejecución y otras cosas que antes nos estaban vetadas. 21 2.2.3 Visual Basic .NET con Bases de Datos El nuevo modelo de datos de Microsoft es ADO .NET este modelo descansa en una serie de objetos especializados que facilitan el procesamiento de una base de datos. Figura 2.2.3.1 funcionamiento de la interacción de la bases de datos en el entorno .Net El problema es comunicar un programa o aplicación con una base de datos y, más que comunicar se pretende que el programa o aplicación realice una serie de procesos u operaciones con la base de datos o mejor aun con el conjunto de tablas que contiene una base de datos. Sin embargo, también es necesario conocer que así como existen servidores de páginas (web server), servidores de correo (mail 22 server), servidores de Ftp (Ftp server), etc. También existen servidores de bases de datos (data base server), los más comunes son el SQL Server de Microsoft, Oracle, MySQL, etc, estos servidores también pueden crear, administrar y procesar una base de datos. El modo de comunicarse entre nuestro programa Visual Basic .Net o aplicación y la base de datos (ya sea física o un Data Base Server) implica que ambos manejen un lenguaje de programación común; es decir, no se puede mandar una instrucción en C# o en Borland Delphi, Java a la base de datos y además esperar que ésta última la entienda (para entender esto, una razón muy sencilla es que la base de datos tendría que conocer o comprender todos los lenguajes de programación), para resolver este problema de comunicación es que se usa un lenguaje común de bases de datos que tanto los lenguajes de programación existentes como las bases de datos entienden, este lenguaje común de bases de datos es el SQL (structured query languaje) o lenguaje estructurado de consultas. Las principales instrucciones de SQL que se usan son select, insert, update y delete. La pregunta es ahora cómo mandar las instrucciones SQL a la Base de Datos, la respuesta son los objetos ado.net. Objeto connection: Objeto que se utiliza para establecer una conexión o enlace a la Base de Datos. Este objeto primero se tendrá que crear en el programa y luego se tendrá que cargar con dos parámetros, el primer parámetro es el 23 proveedor o la fuente que proporcionará los datos, los proveedores o fuentes de datos que existen son: SQL Server Net data provider: que se especializa en comunicarse y procesar bases de datos construidas con Microsoft SQL Server v7.0 Oledb.net data provider: que se especializa en comunicarse y procesar Bases de Datos que a la fecha algunos de los siguientes drivers, SQLoledb (versiones anteriores de SQL Server de Microsoft), msdaora (Oracle), microsoft.jet (Access y algunos otros dbms de Microsoft) Odbc.net: bases de datos que usan odbc como medio de comunicación con otras bases de datos y aplicaciones, como nota a considerar odbc.net no ésta incluida por defecto en microsoft.net, se tiene que bajar de Microsoft. El segundo parámetro es la propia Base de Datos con la cual se comunicará el programa o aplicación. 2.2.4 Ejemplo del objeto connection dim conexión as oledbconnection OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\Inetpub\wwwroot\WebApplication2\directo.mdb") Es una sola string y los dos parámetros mencionados van separados por el punto y coma. Atención es data sourse= no usar datasource 24 Ejemplos de los otros proveedores o fuentes mencionados: //Provider=MSDAORA; Data Source=ORACLE8i7; User ID=OLEDB; Password=OLEDB //Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\bin \LocalAccess40.mdb; //Provider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI; 2.2.5 Objeto command Este objeto puede contener directamente una instrucción SQL y enviarla al objeto connection ya descrito. Ya establecido el canal o enlace entre el programa aspx y la Base de Datos vía el objeto connection, se debe mandar la instrucción SQL a la propia base de datos; sin embargo, en un programa de Visual Basic por supuesto que no puede contener instrucciones de otros lenguajes de programación como el de SQL, es por esto que se deberán usar algunos de los otros objetos de Ado.Net para que estos objetos transporten la instrucción SQL hacia la Base de Datos (y transporte de regreso al servidor los datos de alguna tabla), uno de estos objetos es el command. Este objeto command primero se tendrá que crear y luego cargarle dos parámetros que son: La instrucción SQL y el objeto connection que ya se vio en el párrafo anterior, ejemplo: 25 DIM orden AS OLEDBCOMMAND Orden = NEW OLEDBCOMMAND("select * from mitabla", conexion) Si está muy grande o muy compleja la instrucción SQL, es más conveniente crearla en una variable string y poner la variable como parámetro ejemplo: DIM orden AS OLEDBCOMMAND DIM q AS STRING q = "select * from mitabla" orden = NEW OLEDBCOMMAND(q, conexion) 2.2.6 Objetos dataadapter y dataset Con los objetos connection y command ya se pueden efectuar cualquiera de la operaciones SQL descritas, el problema es que pasa con el usuario, cuando va a ver base de datos o mejor aun las tablas que están en la base de datos en disco. DATASET:- Es una copia en memoria (de la máquina cliente) de la Base de Datos (y todas sus tablas) que se encuentran en disco. DATAADAPTER.- En principio es muy similar al objeto command es decir se usa para transportar instrucciones SQL a la base en disco, de hecho sus formatos e instrucciones son muy similares a los vistos para el objeto command, su diferencia principal es que 26 dataadapter está más especializado y contiene una serie de métodos que facilitan la interacción entre el dataset y la Base de Datos en disco. Otra vez, dataadpater se especializa en transportar instrucciones SQL a la base de datos en disco pero además se utiliza para cargar la tabla en memoria o dataset del cliente. Ejemplo: ' abriendo la coneccion conexion = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\progfacil\tusitio\mibase.mdb") ' cargando el adapter con la instruccion SQL canal=new OleDbDataAdapter("select * from mitabla", conexion) ' cargando el dataset tabla= new DataSet() canal.Fill(tabla, "mitabla") Como se observa en este ejemplo, el dataadapter (canal) está funcionando de manera muy similar al primer ejemplo que se vio del objeto COMMAND, pero tengan la seguridad que también se pueden usar variables parámetros y agregarles los dos tipos de parámetros a este objeto dataadapater. Observar que su propiedad FILL carga el DATASET (tabla) con una de las tablas en disco, recordar que en la base de datos puede contener muchas tablas. 27 Además esa propiedad FILL es equivalente a las tres últimas instrucciones del objeto COMMAND; es decir, open, executenonquery y close. 2.2.7 Datareader y dataset Observar que también se usan en forma conjunta, primero es muy similar en uso y función que el objeto DATAADAPATER, la diferencia entre datareader y dataadapter es el tipo de base de datos con las cuales se pueden comunicar, dataadpater se especializan en bases de datos relacionales y datareader se especializa en bases de datos no relacionadas. También es importante mencionar que datareader es el objeto de ADO.NET más parecido al objeto RESULTSET que usó mucho en el ADO anterior de Microsoft. En general se han visto de manera sencilla los principales objetos ADO.ASP (connection, command, datareader, dataadapter, dataset); sin embargo, la tabla o las tablas y la Base de Datos que se tiene en disco o sirviéndola algún servidor de Bases de Datos, se ha quedado en la memoria de la máquina del cliente, ADO.NET ha terminado su trabajo y su función. Para mandar el dataset al browser se tendrá que pasar a algún tipo de objeto visible que soporte el browser, los objetos que se pueden usar para mandar el dataset a pantalla son: 28 • COMPONENTE TABLE DE HTML. • COMPONENTE HTMLTABLE DE ASP. • COMPONENTE DATAGRID DE ASP NET. 2.2.8 Sql select consulta, despliegue o selección Existen una serie de operaciones y procesos que son muy comunes contra una tabla en una base de datos en disco, la más común es desplegar todos los renglones de la tabla que están almacenados en disco, a este proceso le llamaremos selección, consulta o despliegue. Como se indicó anteriormente, la comunicación con la base de datos se tendrán que dar usando el lenguaje especializado de bases de datos llamado SQL (structured query language), la instrucción SQL que se usa para resolver este problema tiene el siguiente formato: SELECT [listacampos, * o ALL] FROM TABLA El procedimiento que se intenta seguir cuando se construya un programa asp.net que tenga que manipular una tabla en disco deberá seguir los siguientes pasos: 1.- Crear una conexión o enlace a la base de datos. 2.- Abrir la conexión a la base de datos. 3.- Crear el enlace o adapater y cargarlo con la instrucción SQL (o cargar primero la instrucción SQL en un objeto command y mandarlo a través del adapter) 29 4.- Crear el dataset y cargarlo a través del adapter 5.- Cargar el Datagrid con el dataset y enlazarlo (binding) Con todo esto ya podremos mostrar el resultado deseado de la base de datos en una tabla (Datagrid), ejemplos al hacer una búsqueda y mostrar el resultado de la búsqueda o al capturar un nuevo registro y mostrar cómo quedó capturado. El DATAGRID es un WEBCONTROL, por tanto, hay que crearlo e inicializarlo al principio del programa; también tiene muchas propiedades que le mejoran la interfase con que se despliega, y es en esta parte donde se cargan dichas propiedades como son color, tipo de fuente, grueso de líneas, color de líneas etc. 2.3 Definición del trabajo y ambientación con el software de programación Visual Basic .Net es una lenguaje de programación de la empresa Microsoft, es un lenguaje que se adecua para hacer varios tipos de aplicaciones, una de las ventajas que tiene es que se pueden hacer aplicaciones Web, las cuales llegan a ser muy eficientes, el manejo de Bases de Datos es una de las principales características con la programación dominada ASP.NET y una de las herramientas más avanzadas que posee llamada ADO.NET, También permite el manejo de varias bases de datos de diferentes distribuidores, como lo son: Microsoft Access, Oracle, MySQL, SQL Server. Dicho lenguaje también permite la utilización 30 de instrucciones SQL, con las cueles se pueden manipular las bases de datos. El lenguaje, conjuntamente con todas las herramientas antes mencionadas, es muy eficiente para el manejo de Bases de Datos a nivel cliente servidor, esto quiere decir que las Bases de Datos se encuentran en el servidor, donde se tendrá la página alojada. Cuando un usuario acceda a la Base de Datos, se hace una copia de la misma en la máquina cliente, esto sirve para que las consultas se hagan directamente en la máquina y no tenga que estar conectada a todo tiempo a la base de datos del servidor, ya que esto alentaría mucho los procesos y sólo estaría accesible para determinado número de usuarios. 2.4 Programación de la aplicación a nivel administrador Se realizará la programación de la parte que utilizara el administrador, en esta parte se programa lo que serán los mantenimientos del sistema, altas, bajas, modificaciones, todo esto se hace mediante el lenguaje de programación Visual Basic.NET, con ayuda de instrucciones SQL. 2.4.1 Página para introducir usuario y contraseña Dentro de lo que es el sistema, el administrador tendrá privilegios en el manejo de la información, ya que él dará de alta una nueva extensión, así como también hacer modificaciones a los registros 31 existentes o si se requiriera podría hacer una baja (borrar un registro). Para que el administrador sea el único que tenga acceso a alguna de las operaciones antes mencionadas, él tendrá que introducir un nombre de usuario y una contraseña, con esto se evitará que los usuarios tenga acceso a los mantenimientos, ya que se podría alterar algún registro o llegar a borrar información accidentalmente. Figura 2.1 Página de comprobación para el administrador. 32 2.4.2 Página de mantenimiento Figura 2.2 Opciones para efectuar un mantenimiento. En la figura 2.2 se muestra la ventana donde se tienen las opciones para llevar a cabo un mantenimiento (altas, bajas, modificaciones), al hacer click en algunas de las opciones nos llevará a una siguiente página para poder efectuar la operación seleccionada. 33 2.4.3 Página de altas Figura 2.3 Página de altas. La figura 2.4 muestra la página donde el administrador podrá hacer alguna modificación. Puede existir el caso en que a la hora de dar de alta un nuevo registro se haya cometido algún error ortográfico o que los teléfonos no sean los correctos, si esto llegase a suceder se tiene esta opción donde los datos podrán ser corregidos y una vez hecha la corrección guardar los cambios en la base de datos. Todo esto se hace en un Datagrid (tabla), al escoger la opción de actualizar nos llevará a una página donde nos muestra un Datagrid con todos los datos contenidos en la 34 base de datos, y si hacemos click en la opción de edición nos abrirá en modo de edición el registro respectivo antes seleccionado, se hacen los cambios correspondientes y ya después se hace click en la opción de actualizar o, si no se quiere guardar se hace click en cancelar y el registro no sufre ningún cambio. 2.4.4 Página para hacer modificaciones Figura 2.4 Página de modificaciones La figura 2.5 muestra la página, en donde se hacen las respectivas modificaciones a los registros. Si por alguna razón 35 existe un error en la captura de los datos, el administrador puede hacer la respectiva corrección de los mismos. Cuando se hace click en la opción Edición de alguno de los registros, éste se abre a modo de edición para hacer los cambios correspondientes. Todo esto es dentro del mismo Datagrid, una vez que se corrigieron los datos se procede a guardar el registro con los cambios efectuados. 2.4.5 Página de búsquedas Figura 2.5 Página para eliminar registros. 36 La figura 2.5 muestra la página de eliminación de registros, en el caso de que existiera la necesidad de dar de baja una extensión, por medio de esta página se puede hacer la eliminación. Para eliminar un registro esto se hace basándose en la extensión del usuario, ya que necesitamos un dato que no se repita con alguno de los demás registros y el dato que no se repite es la extensión, cada persona tiene una extensión diferente para hacer la eliminación. La instrucción de SQL que se utiliza hace referencia a la extensión del registro que deseamos eliminar, la extensión a eliminar se introduce en un cuadro de texto (Textobox) y así se procede a hacer la eliminación. En caso de que no se recuerde la extensión o que se quieran verificar los datos del registro que se desea eliminar, se cuenta con unas opciones de búsqueda que ayudarán a filtrar la información y obtener una referencia del registro que se desea eliminar, para no cometer un error eliminando un registro que no se deseaba eliminar, es por eso que se puede utilizar la opción de búsquedas. 2.5 Programación de la aplicación a nivel usuario Aquí se realiza la programación que será operada por los usuarios, en la cual podrán hacer búsquedas e imprimir el reporte, donde contendrá todas las extensiones telefónicas así como también los datos de cada una de ellas (nombre, apellido paterno, apellido materno, teléfono, teléfono ip, extensión, correo electrónico y el departamento), el reporte también se podrá guardar, como archivo en formato PDF, 37 2.5.1 Página de inicial Figura 2.6 Página inicial. La figura 2.6 muestra la página de inicio del sistema, cuando un usuario teclee la dirección (donde se encuentra ubicado el sistema), en un navegador esta será la página a mostrar (fig 2.6) en la cual se cargan los datos contenidos en la tabla de la base de datos y son mostrador en un datagrid de la página, también la página contiene unos links con las siguientes opciones: • Búsqueda • Reporte • Mantenimiento 38 2.5.2 Página de búsqueda Figura 2.7 Página para realizar búsquedas. La figura 2.7 muestra la página de búsqueda, al hacer click en la imagen de búsqueda (link) nos mostrara una página en la cual podremos realizar búsquedas, las cuales se pueden hacer tomando en cuenta tres datos, que son: Departamento, Nombre, Apellido paterno. En una lista desplegable podemos escoger por que criterio deseamos hacer la búsqueda, en el caso que se elija por Nombre. En un cuadro de texto capturamos el nombre de la persona que deseamos buscar y hacemos click en el botón buscar y se hará un 39 filtro de la tabla con los datos de las personas que coincidan con la búsqueda y se cargará en el Datagrid (tabla) los datos que coincidan con la búsqueda, en el caso de que no encuentre el dato no mostrará datos el Datagrid. En el caso de que la búsqueda sea por apellido paterno, la búsqueda es muy semejante a la anterior, lo que cambia es el dato para hacer la referencia de la búsqueda, ya que ahora no se hará por el nombre de la persona a buscar si no por el apellido paterno. Si en las opciones escogemos la búsqueda por departamento, nos activa una lista desplegable, en la cual muestra todos los departamentos existentes en el Cideteq, esto es para evitar que al hacer una búsqueda por departamento nos de un resultado erróneo, esto pude ser causado por escribir mal el departamento, uno caso seria que existe un departamento llamado Química, entonces al hacer la búsqueda se escriba Quimica sin acento, esto nos arrojaría un resultado erróneo en la búsqueda, ya que el acento hace diferente una palabra de otra, es por lo tanto que se opto por realizar de esta manera la búsqueda por departamentos y se evita que el usuario escriba. 40 2.5.3 Página de reporte Figura 2.8 Página de reporte que se realiza en formato PDF. En la figura 2.8 muestra la página correspondiente al reporte, dicho reporte se genera en formato PDF y puede ser impreso o guardado en la computadora como un archivo, para tener la información y consultarla sin tener que entrar a la página para hacer alguna consulta. El reporte es generado por medio de Cristal Report y Visual Basic, para esto se agrega al proyecto un formulario de Cristal Report, el cual va a contener los datos del reporte, así como también por 41 medio de Visual Basic se genera un formulario en donde va a cargar los datos que se van a utilizar en los reportes, para esto se hace una selección de todos los datos que se van a contener en el reporte, por medio de intrusiones SQL, esto se carga en un Dataset y después se descargan los datos en el formulario de Cristal Report y también en el Cristal Report se agregan unas líneas de código para poderle indicar que el reporte sera generado en formato PDF. 2.6 Diseño y programación de la interfaz gráfica de la aplicación Cuando este por terminarse la aplicación se realizarán las actividades correspondientes al diseño de las páginas Web, del directorio telefónico; se elegirán los colores de cada página, la fuente y logotipos de la empresa. 2.7 Fase de pruebas y corrección En Esta etapa se realizarán pruebas para corregir errores que surjan; En este proceso se ejecuta el programa y se hacen todas las pruebas para ver si existen errores y corregirlos, y así de esa manera evitar que una vez ya instalado el programa presente fallas. Esta etapa de proyecto es muy importante, ya que muchas veces se presentan algunos problemas, cuando se diseña el programa o 42 en el código y de esta forma se puede encontrar errores y corregirlos, para que el sistema funcione correctamente. También en esta parte del proyecto se pueden realizar algunos cambios que sean necesarios, para un mejor funcionamiento. 2.8 Entrega del proyecto La entrega se realizará una vez que esté terminado el sistema, para proceder a que los usuarios de la empresa lo utilicen, el sistema se instalará en un servidor interno, para que los usuarios puedan acceder a él por medio de la intranet, y así facilitar el manejo de la información de las extensiones telefónicas. 43 CAPÍTULO III CONCLUSIONES 44 3.1 Dificultades Una de las dificultades que se tuvieron durante la realización del proyecto fue que el sustentante no conocía el lenguaje de programación con el cual se debía desarrollar la pagina web lenguaje de programación en el cual se tenía que desarrollar la página web, por lo cual se consultaron manuales, tutoriales, libros, páginas web para poder entender y ver las características del lenguaje, así como la forma de programación que se maneja. Otra de la dificultades que se tuvieron fue que, al hacer la Base de Datos en access e integrarla al sistema y hacer pruebas marcaba errores, porque la Base de Datos cuando se crea y se pasa al directorio desde donde se va a manejar, está protegida y tiene el atributo de solo lectura, entonces cuando se deseaba hacer una alta de un registro marcaba error, y para poder solucionar el problema la Base de Datos se tiene que quitarle el atributo de solo lectura para que se pueda guardar en la Base de Datos, pero este atributo se quita desde las herramientas administrativas del servidor y se tiene que agregar al proyecto del net. Firework. Otra de las dificultades que también se tuvieron fue que el programa marcaba errores y no se podía solucionar, hasta que la computadora se formateó y se instaló de nuevo el sistema operativo y el visual estudio .net, conjuntamente con todas las herramientas del mismo y con esto se solucionó el problema. 45 3.2 Logros obtenidos Uno de los durante el periodo de estadía fue que el proyecto se terminó antes de lo planeado, 15 días de anticipación. Otro fue que el proyecto se entregó y funciona adecuadamente hasta el momento a pesar de las dificultades que se mencionaron anteriormente. 3.3 Recomendaciones Algunas de las recomendaciones que se pueden hacer con respecto al proyecto son: 1.- En la página de modificaciones, poner una lista desplegable para el campo de departamento, esto con la finalidad de que no se cometan errores en la captura de este dato, por que al hacer una búsqueda esto puede ocasionar que se de un resultado erróneo. 2.- Hacer que el sistema haga búsquedas por aproximación, esto para facilitar las búsquedas a los usuarios. 3.4 Aportaciones Durante la estadía en el Cideteq se apoyó en algunas actividades que se describen a continuación: 46 Apoyar al encargado de soporte técnico en el traslado de un cpu del área de tecnología ambiental a la sala de medios, ya que se le iba a hacer u respaldo de su disco duro antes de proceder a que el personal de soporte técnico lo formateara. También se apoyó en trasladar la computadora del director técnico a su oficina, ya que antes le habían formateado y reinstalado, ya que no estaba funcionando correctamente. Se auxilió en el apoyo para trasladar la impresora de recepción a la sala de medio, ya que habían reportado que no imprimía y estaba fallando. 47 ANEXOS 48 ANEXO A. Creación de la Base de Datos en Microsoft Access Microsoft Access: es un sistema de gestión de Bases de Datos (SGBDR) totalmente funcional. Proporciona la definición, manipulación y control de los datos que se necesitan para gestionar grandes cantidades de los mismos. La Base de Datos con la que se trabajara en el proyecto está hecha en Microsoft Access. Como ya se había mencionado que Visual Basic Net trabaja con varios tipos de Bases de Datos, por lo tanto, la Base de Datos se hizo en Access. La forma de realizar una Base de Datos en Microsoft Access es de la siguiente manera: 1.- Abrir el programa de Microsoft Access. 49 Una vez abierto el programa, escogemos la opción archivo del menú y hacemos clic en nuevo. Después de hacer clic en la opción nuevo, en la parte derecha de la ventana nos mostrará unas opciones, las cuales se observan en la siguiente ventana 50 Elegimos la opción que dice Base de Datos en blanco, la cual abrirá otra ventana donde va a pedir el nombre de la Base de Datos, una vez que le ponemos el nombre hacemos clic en el botón guardar y la Base de Datos se guarda en la ubicación seleccionada. 51 Una vez que se guardó la base de datos nos mostrara otra ventana en donde crearemos la tabla o las tablas que vayamos a utilizar, en el caso del la página de Cideteq sólo se utiliza una tabla. 52 En la pantalla anterior escogemos crear una en vista de diseño y nos muestra otra pantalla, en la cual capturamos dos campos que llevará nuestra tabla, así como también el tipo de datos de los campos y su respectiva tamaña de datos. Ya terminada la tabla cerramos la ventana y nos pedirá el nombre que llevará la tabla, escribimos el nombre y la tabla queda guardada, lista para comenzar a capturar datos dentro de ella. 53 De esta forma es como queda la tabla con su nombre y con todos los campos, como se muestra en la siguiente imagen. 54 Por último, esta es la tabla con datos reales de los usuarios. 55 ANEXO B. Página de comprobación para el administrador ANEXO C. Opciones para efectuar un mantenimiento 56 ANEXO D. Página de altas ANEXO E. Página de modificaciones 57 ANEXO F. Página para eliminar registros ANEXO G. Página inicial 58 ANEXO H. Página para realizar búsquedas ANEXO I. Página de reporte que se realiza en formato PDF 59 GLOSARIO 60 ADO: tecnología para la gestión de bases de datos incluidos desde la versión 3 de visual Basic, dicha tecnología revoluciono la programación con bases de datos en visual Basic. Ado.Net: es una mejora evolutiva de Microsoft® ActiveX® Data Objects (ADO) que aporta interoperabilidad entre plataformas y un acceso a datos escalable. Puesto que utiliza XML (Lenguaje de marcado extensible), ADO.NET garantiza la transferencia eficaz de los datos a cualquier aplicación que se ejecute en cualquier plataforma ASP.NET: es un marco de trabajo de programación generado en Common Language Runtime que puede utilizarse en un servidor para generar eficaces aplicaciones Web. ASP.NET ofrece varias ventajas importantes acerca de los modelos de programación Web anteriores: mejor rendimiento, compatibilidad con herramientas de primer nivel, eficacia y flexibilidad, simplicidad, Facilidad de uso, escalabilidad y disponibilidad, posibilidad de personalización y extensibilidad, seguridad. Aspx: es la extensión que le da visual Basic .Net, en los programas que se hacen con dicho lenguaje. Borland Delphi: es un ambiente de Desarrollo Rápido de Aplicaciones (RAD: Rapid Application Development) para el lenguaje ObjectPascal en el sistema operativo Windows 95/98/NT/2000. Es producto de BORLAND Corporation. 61 Browser: los programas que permiten ver las páginas de la Malla Mundial o WWW se llaman en inglés browsers. Algunos de esllos son: Opera, Mozilla, Explorer, firefox. C#: es el nuevo lenguaje de propósito general diseñado por Microsoft para su plataforma .NET. Sus principales creadores son Scott Wiltamuth y Anders Hejlsberg, éste último también conocido por haber sido el diseñador del lenguaje Turbo Pascal y la herramienta RAD Delphi. Crystal Report: es el generador de reporte por excelencia de Visual Basic desde versiones anteriores a .NET. Esta no es la primera vez que se distribuye una versión de este generador de reporte junto a una versión de Visual Studio; en la versión 4 de Visual Basic se incluía una versión de Crystal Reports, aunque no tan integrada como la versión .NET. Intranet: es una infraestructura basada en los estándares y tecnologías de Internet que soporta el compartir información dentro de un grupo bien definido y limitado, intranet es una red privada. Java: es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. 62 Linux: es la denominación de un sistema operativo y el nombre de un núcleo. Es uno de los paradigmas del desarrollo de software libre (y de código abierto), donde el código fuente está disponible públicamente y cualquier persona puede libremente usarlo, modificarlo y redistribuirlo. Mysql: es un sistema gestor de bases de datos SQL, esto significa que permite la gestión de los datos usando un lenguaje de consulta estructurado. Esto significa que a partir de una oración, MySQL llevará a cabo una determinada acción sobre nuestra base de datos, dicho sistema es gratuito, está hecho bajo la licencia de código abierto. Oracle: es un sistema de administración de base de datos (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation. Se considera a Oracle como uno de los sistemas de bases de datos más completos, destacando su: soporte de transacciones, estabilidad, escalabilidad, es multiplataforma. Su mayor defecto es su enorme precio, que es de varios miles de euros (según versiones y licencias). PDF: ideado por Adobe, el formato de documentos portátiles (Portable Document Format, PDF) es la herramienta pública empleada en empresas con estándares mundiales para una distribución e intercambio seguros y fiables de documentos electrónicos. Gobiernos, empresas y formadores de todo el 63 mundo han adoptado el formato PDF de Adobe® para agilizar la el intercambio de documentos. PHP: (acrónimo recursivo de "PHP: Hypertext Preprocessor", originado inicialmente del nombre PHP Tools, o Personal Home Page Tools) es un lenguaje de programación interpretado, con licencia open-source. Servidor apache: es un servidor HTTP de código abierto para plataformas Unix (BSD, GNU/Linux, Windows y otras, que implementa el protocolo HTTP/1.1 Cuando comenzó su desarrollo en 1995 se basó inicialmente en código del popular NCSA HTTPd 1.3, pero más tarde fue reescrito por completo. Su nombre se debe a que originalmente Apache consistía solamente en un conjunto de parches a aplicar al servidor de NCSA. Servidores de bases de datos: un servidor de bases de datos es una computadora destinada a alojar una base de datos y a la gestión de la misma por medio de alguno de los gestores de bases de datos como oracle, mysql etc. Servidores de correo: es una computadora, la cual se destina al envió de correos electrónicos, todo esto se hace mediante un software, ejemplo de Exchange de Microsoft. 64 Servidores de Ftp: son computadoras que tienen por objetivo transferir información por medio de ftp, dichos servidores alojan programas, documentos para ser descargados. Servidores de páginas (Web Server): los servidores de paginas Web, permiten alojar las páginas y poder acceder de cualquier máquina que este conectada a Internet. SQL: es un lenguaje de manipulación de bases de datos, este lenguaje común de bases de datos es el SQL. (structured query languaje) o lenguaje estructurado de consultas. String: es un tipo de variable manejada por Visual Basic .Net, la cual contiene datos del tipo texto. 65 MATERIAL DE CONSULTA 66 REFERENCIAS ELECTRÓNICAS Microsoft Corporation. (Marzo de 2002) Introducción a Visual Studio .NET. Recuperado el 6 de mayo del 2005, de: http://www.microsoft.com/spanish/msdn/articulos/archivo/050503/v oices/netcfgetstarted.asp Microsoft Corporation (2002-2003) MSDN de visual estudio .NET. Recuperado el 6 de mayo del 2005, de: http://msdn.microsoft.com/vstudio/ Guillermo ‘guille’ Som. (1966-2005) el guille, la web de visual Basic, C#, .Net y más. Recuperado el 10 de mayo del 2005, de: http://www.elguille.info/NET/cursoVB.NET/indice.htm Programacionfacil (2004-2005)Profesor Lauro Soto. Recuperado el 12 de mayo de 2005, de: http://www.programacionfacil.com/visualbasic/indice.htm Guillermo ‘guille’ Som. (1966-2005) el guille, Crystal Reports para Visual Basic clásico y .NET. Recuperado el 22 de julio del 2005, de: http://www.elguille.info/colabora/puntoNET/makepeace_crystalrpt. htm 67