Professional Documents
Culture Documents
La Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social tiene la necesidad que al delegado se le informe de la situacin de la misma as como las subdelegaciones y departamentos que la componen, el trabajo se intensifica al tener que manejar los datos no solo a nivel ciudad sino a nivel estado, comprendiendo todos los municipios con los que cuenta el estado de Puebla. Cada una de las unidades mdicas que conforman la Delegacin Estatal de Puebla cuenta con departamentos similares entre s, en los que se procesa informacin sensible que refleja la situacin actual de cada una de las unidades mostrando su nivel de cumplimiento y compromiso con las funciones institucionales. La informacin conjunta de todos los aspectos que cada departamento con el que cuente cada unidad debe observar y cumplir se conocen como indicadores situacionales de la Delegacin Estatal de Puebla, los cuales deben ser capturados, almacenados y procesados para la generacin de informes que reflejen la situacin actual de Delegacin. cada una de las unidades que conforman la
2. Justificacin.
Debido al problema de manejo de informacin en la Delegacin se ha propuesto una WebApp que lleva por nombre Tablero Delegacional para Toma de Decisiones. Con esta WebApp se conoce la situacin de cada departamento as como todos los movimientos que se llevan a cabo en cada uno de ellos. Como antes se ha mencionado se lleva un manejo a nivel estado por lo cual la informacin es presentada de lo general a lo particular.
Es decir la delegacin se descompone en las subdelegaciones con las que cuenta, las cuales se encuentran en diferentes puntos del estado de Puebla; tanto de la delegacin como de las subdelegaciones se desglosa mas informacin pero ahora a nivel de unidades mdicas y al final por departamentos (ver Figura 1).
Subdelegaciones
Unidades
Departamentos
3. Objetivos.
3.1 Objetivo general.
Disear y desarrollar una WebApp que permita procesar toda la informacin referente a los diferentes departamentos que constituyen cada una de las unidades de la Delegacin Estatal Puebla del Instituto Mexicano del Seguro Social, tal informacin conjunta constituye los indicadores situacionales de la delegacin.
Anlisis de requerimientos. Diseo y creacin de la WebApp. Pruebas de la WebApp en el servidor que alojar al mismo.
Desarrollo de mdulos que permitan al usuario final capturar y consultar la informacin concerniente a cada uno de los departamentos que conforman la unidad a la que pertenece.
Definicin de roles de usuario y privilegios de acceso a la WebApp, para garantizar la integridad y confiabilidad de la informacin que ser almacenada, procesada y reflejada en la situacin de la delegacin.
Desarrollo de mdulos que permitan obtener informacin precisa sobre la situacin actual de la delegacin, de lo general a lo particular.
Ambas localizaciones en las que se lleva a cabo el desarrollo de la WebApp cuentan con ventilacin e iluminacin muy favorables para trabajar, adems de que el rea de servidores cuenta con los sistemas adecuados de enfriamiento para poder mantener en un estado ptimo toda la infraestructura perteneciente a la institucin. Las personas con las que se tiene contacto da a da, as como las que estn a cargo de esta WebApp como asesores son personas muy agradables con las que se puede entablar una conversacin amena, agradable y respetuosa, gente muy preparada y sobre todo compaeros ya que algunos de ellos son egresados de nuestro querido Instituto Tecnolgico de Puebla.
Aunado a lo anterior, el proceso para conocer los resultados que arrojan la situacin actual de la Delegacin es lento, tedioso y propenso a errores al ser procesada la informacin de forma completamente manual.
6. Alcances y limitaciones.
6.1 Alcances.
La WebApp ser alojada en un servidor institucional. La WebApp estar funcionando para todos los departamentos de la delegacin de forma simultnea. Se podr consultar la informacin de cada uno de los departamentos para la delegacin o desglosar la informacin por unidades mdicas. Creacin y definicin especfica de permisos para nuevos usuarios de la WebApp. Manejo de perfiles y roles de usuario para accesar a la WebApp. Generacin automtica de opciones y perfiles de navegacin para los diferentes tipos de usuarios de la WebApp. Agrupacin de la informacin situacional de la delegacin mejorando su entendimiento y facilidad de interpretacin.
6.2 Limitaciones.
La informacin referente a cada departamento puede no ser capturada a tiempo por los usuarios finales provocando la alteracin de resultados en la creacin del panorama actual de la delegacin.
Manejo incorrecto de inicio de sesin de usuarios si no se activa el Agente SQL Server despus de reiniciar el servidor o recuperarse de un fallo.
7. Fundamento terico.
7.1 Modelo de Ingeniera de Software.
La ingeniera web, debe su desarrollo al crecimiento que est teniendo la Web, est ocasionando un impacto en la sociedad y el nuevo manejo que se le est dando a la informacin en las diferentes reas en que se presenta. La Ingeniera Web incluye nuevos enfoques disciplinados, metodologas, herramientas, tcnicas, guas y patrones donde tuvieran en cuenta aspectos cientficos de este nuevo medio para cubrir los requisitos nicos de las aplicaciones web. Utilizando las tcnicas y principios de la Ingeniera Web podemos controlar el desarrollo de las aplicaciones Web, mejorando la calidad, mantenimiento y disminuyendo los riesgos. Como las aplicaciones basadas en la Web estn creciendo, se debe mejorar los medios de gestin y la metodologa a usar. La ingeniera Web establece y utiliza principios cientficos, de ingeniera y gestin, y con enfoques sistemticos y disciplinados del xito y desarrollo, empleo y mantenimiento de sistemas y aplicaciones basados en la Web de alta calidad.
La ingeniera Web est relacionada con el establecimiento y utilizacin de principios cientficos, de ingeniera y gestin, y con enfoques sistemticos y disciplinados del xito y desarrollo, empleo y mantenimiento de sistemas y aplicaciones basados en el Web de alta calidad. Es importante porque las aplicaciones web se integran cada vez ms en las estrategias de negocios de las organizaciones grandes y pequeas. Es necesario que estas aplicaciones sean prcticas, confiables y adaptables.
Sensibilidad al contenido. La calidad y naturaleza esttica del contenido sigue siendo un importante determinante de la calidad de una WebApp. Evolucin Continua. Las aplicaciones Web evolucionan de manera continua. No es raro que algunas WebApps se actualicen sobre una agenda minuto a minuto, o que el contenido sea calculado de manera independiente para cada solicitud. Inmediatez. Todo aquello a lo que se quiere acceso se debe tener una respuesta inmediata. Todos los servicios web deben ser rpidos y alcanzables. Seguridad. Con la finalidad de proteger el contenido confidencial y ofrecer modos seguros de transmisin de datos, se deben implementar fuertes medidas de seguridad a lo largo de la infraestructura que sustenta una WebApp y dentro de la aplicacin misma. Esttica. Un arte innegable de la apariencia de una WebApp es su presentacin y la disposicin de sus elementos. Cuando una aplicacin se disea para comercializar o vender productos o ideas, la esttica puede tener tanto que ver con el xito como el diseo tcnico. Estos atributos generales se aplican a todas las WebApps, pero con diferentes grados de influencia. Caractersticas como inmediatez y evolucin y crecimiento continuos, nos llevan a un proceso incremental y evolutivo, que permite que el usuario se involucre activamente, facilitando el desarrollo de productos que se ajustan mucho lo que ste busca y necesita. Segn Pressman, las actividades que formaran parte del marco de trabajo incluiran las tareas abajo enumeradas. Dichas tareas seran aplicables a cualquier aplicacin Web, independientemente del tamao y complejidad de la misma. Las actividades que forman parte del proceso son: formulacin, planificacin anlisis, modelizacin, generacin de pginas, test y evaluacin del cliente.
La Formulacin identifica objetivos y establece el alcance de la primera entrega. La Planificacin genera la estimacin del coste general del proyecto, la evaluacin de riesgos y el calendario del desarrollo y fechas de entrega. El Anlisis especifica los requerimientos e identifica el contenido. La Modelizacin se compone de dos secuencias paralelas de tareas. Una consiste en el diseo y produccin del contenido que forma parte de la aplicacin. La otra, en el diseo de la arquitectura, navegacin e interfaz de usuario.
7.1.3.1 Proceso.
Los modelos de procesos Web adoptan la filosofa de desarrollo gil. El desarrollo gil enfatiza un enfoque de desarrollo riguroso que incorpora rpidos ciclos de desarrollo.
7.1.3.2 Mtodos.
Los mtodos de la IWeb abarcan un conjunto de labores tcnicas que permiten al ingeniero Web comprender, caracterizar y luego construir una aplicacin Web de alta calidad.
Los mtodos de la IWeb se pueden categorizar de la siguiente manera: Mtodos de comunicacin: Definen el enfoque con que se facilita la comunicacin entre: Mtodos de anlisis de requisitos: Proporcionan una base para comprender el contenido que se entregar a las WebApps, la funcin que proporcionar al usuario final y los modos de interaccin de cada clase de usuario requerir mientras ocurra la navegacin por medio de las WebApps. Mtodos de diseo: Abarcan una serie de tcnicas de diseo que abordan el contenido, la aplicacin y la arquitectura de informacin. Mtodos de pruebas: Incorporan revisiones tcnicas formales tanto de contenido y el modelo de diseo como de una amplia variedad de tcnicas de pruebas que abordan conflictos al nivel de componentes.
10
3. Modelado. Desarrollar anlisis rpidos y modelos de diseo que definan requisitos y al mismo tiempo representen una WebApp que los satisfar. 4. Construccin. Las herramientas y la tecnologa IWeb se aplican para construir la WebApp que se ha modelado. Una vez que se construye el incremento de WebApp, se dirige una serie de pruebas rpidas para asegurar que se descubran los errores en el diseo es decir: contenido arquitectura, interfaz, navegacin. 5. Despliegue. La WebApp se configura para su ambiente operativo, se entrega a los usuarios finales y luego comienza un periodo de evaluacin. La retroalimentacin acerca de la evaluacin se presenta al equipo de IWeb y el incremento se modifica conforme se requiera. A continuacin se muestra la Figura 2 para explicar grficamente el proceso de la ingeniera web. [1]
[1] Ingeniera del software Un enfoque prctico / Roger S. Pressman / Sexta edicin 11
Independencia lgica y fsica de los datos. Redundancia mnima. Acceso concurrente por parte de mltiples usuarios. Integridad de los datos. Consultas complejas optimizadas. Seguridad de acceso y auditora. Respaldo y recuperacin. Acceso a travs de lenguajes de programacin estndar.
12
almacenamiento, adems de provocar la falta de consistencia de datos. En los sistemas de bases de datos todos estos ficheros estn integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos. Consistencia de datos: Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato est almacenado una sola vez, cualquier actualizacin se debe realizar slo una vez, y est disponible para todos los usuarios inmediatamente. Si un dato est duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. Comparticin de datos: En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estn autorizados. Mantenimiento de estndares: Gracias a la integracin es ms fcil respetar los estndares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e
13
internacionales. Estos estndares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estndares de documentacin, procedimientos de actualizacin y tambin reglas de acceso. Mejora en la integridad de datos: La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas. Mejora en la seguridad: La seguridad de la base de datos es la proteccin de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integracin de datos en los sistemas de bases de datos hace que stos sean ms vulnerables que en los sistemas de ficheros. Mejora en la accesibilidad a los datos: Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicacin que realice tal tarea. Mejora en la productividad: El SGBD proporciona muchas de las funciones estndar que el programador necesita escribir en un sistema de ficheros. A nivel bsico, el SGBD proporciona todas las rutinas de manejo de ficheros tpicas de los programas de aplicacin.
14
El hecho de disponer de estas funciones permite al programador centrarse mejor en la funcin especfica requerida por los usuarios, sin tener que preocuparse de los detalles de implementacin de bajo nivel. Mejora en el mantenimiento: En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicacin que los manejan. Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. Aumento de la concurrencia: En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda informacin o se pierda la integridad. La mayora de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo. Mejora en los servicios de copias de seguridad: Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada da, y si se produce algn fallo, utilizar estas copias para restaurarlos.
15
En este caso, todo el trabajo realizado sobre los datos desde que se hizo la ltima copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.
16
Nivel interno (o fsico): define cmo se almacenan los datos y los mtodos de acceso. Nivel conceptual: tambin denominado modelo ER (modelo entidadrelacin) o MLD (modelo lgico de datos). Define cmo se organiza la informacin dentro de la base de datos.
independientemente del nivel conceptual. Esto significa que el usuario no puede ver todos los componentes de hardware de la base de datos, que es simplemente una estructura transparente para representar la informacin almacenada. Independencia lgica: El nivel conceptual debe poder modificarse sin alterar el nivel fsico. En otras palabras, el administrador de la base de datos debe poder introducir mejoras sin afectar la experiencia de los usuarios. Facilidad de uso: Las personas que no estn familiarizadas con la base de datos deben poder describir su consulta sin hacer referencia a los componentes tcnicos de la base de datos. Acceso rpido: El sistema debe poder responder a las consultas lo ms rpido posible. Esto requiere algoritmos de bsqueda rpidos. Administracin centralizada: El DBMS debe permitirle al administrador manipular los datos, agregar elementos y verificar su integridad de manera centralizada. Redundancia controlada: El DBMS debe poder evitar la redundancia de datos siempre que sea posible, tanto para minimizar los errores como para prevenir el desperdicio de memoria.
17
Verificacin de integridad: Los datos deben ser internamente coherentes y, cuando algunos elementos hacen referencia a otros, estos ltimos deben estar presentes.
Uso compartido de datos: El DBMS debe permitir que mltiples usuarios accedan simultneamente a la base de datos. Seguridad de los datos: El DBMS debe poder administrar los derechos de acceso a los datos de cada usuario. [3]
7.2.6 Entidad.
Una entidad es una cosa u objeto en el mundo real que es distinguible de todos los dems objetos. Una entidad tiene un conjunto de propiedades, y los valores para algn conjunto de propiedades pueden identificar una entidad de forma unvoca.
Una entidad puede ser concreta, como una persona o un libro, o puede ser abstracta, como un prstamo, unas vacaciones o un concepto. Un conjunto de entidades es un conjunto de entidades del mismo tipo que comparten las mismas propiedades, o atributos. Los conjuntos de entidades no son necesariamente disjuntos.
7.2.7 Atributo.
Los atributos describen propiedades que posee cada miembro de un conjunto de entidades. La designacin de un atributo para un conjunto de entidades expresa que la base de datos almacena informacin similar concerniente a cada entidad del conjunto de entidades; sin embargo, cada entidad puede tener su propio valor para cada atributo.
Una relacin es una asociacin entre diferentes entidades. Un conjunto de relaciones es un conjunto de relaciones del mismo tipo.
[3] http://es.kioskea.net/contents/bdd/bddansi.php3 18
Uno a uno. Una entidad en A se asocia con a lo sumo una entidad en B, y una entidad en B se asocia con a lo sumo una entidad en A. Uno a varios. Una entidad en A se asocia con cualquier nmero de entidades en B (ninguna o varias). Una entidad en B, sin embargo, se puede asociar con a lo sumo una entidad en A
Varios a uno. Una entidad en A se asocia con a lo sumo una entidad en B. Una entidad en B, sin embargo, se puede asociar con cualquier nmero de entidades (ninguna o varias) en A.
Varios a varios. Una entidad en A se asocia con cualquier nmero de entidades (ninguna o varias) en B, y una entidad en B se asocia con cualquier nmero de entidades (ninguna o varias) en A.
La correspondencia de cardinalidades apropiada para un conjunto de relaciones particular depende obviamente de la situacin del mundo real que el conjunto de relaciones modela. [4]
Creando un conjunto de tablas iniciales y aplicar operaciones de normalizacin hasta conseguir el esquema ms ptimo.
Convertir el diagrama e-r a tablas y posteriormente aplicar tambin operaciones de normalizacin hasta conseguir el esquema ptimo.
La primera tcnica fue de las primeras en existir y, como es de suponerse, la segunda al ser ms reciente es mucho ms conveniente en varios aspectos:
El partir de un diagrama visual es muy til para apreciar los detalles, de ah que se llame modelo conceptual.
Se podra pensar que es lo mismo porque finalmente hay que normalizar las tablas de todas formas, pero la ventaja de partir del modelo e-r es que la normalizacin es mnima por lo general.
Lo anterior tiene otra ventaja, an cuando se normalice de manera deficiente, se garantiza un esquema aceptable, en la primera tcnica no es as. [5]
20
Una buena instalacin y configuracin de SQL Server, y sobre todo una buena administracin de las herramientas que ste nos proporciona, lograr: Qu las consultas que se realicen mediante sentencias SQL obtengan un tiempo de respuesta ptimo. Qu la memoria y la CPU de la mquina estn aprovechadas al mximo.
Transact-SQL. Es el lenguaje que utiliza SQL Server para poder enviar peticiones tanto de consultas, inserciones, modificaciones, y de borrado a las tablas, as como otras peticiones que el usuario necesite sobre los datos. En definitiva, es un lenguaje que utiliza SQL Server para poder gestionar los datos que contienen las tablas.
El lenguaje estndar SQL (Structured Query Language) se emplea para los sistemas de bases de datos relacionales RDBMS (Relational Database Management System), es el estndar ANSI (American National Standards Institute). Tambin es utilizado por otros sistemas como: Oracle, Access, Sybase, etc.
21
Motores de SQL Server. Existen dos motores muy importantes en SQL Server: El motor relacional: Incluye los componentes necesarios para la consulta de datos. El motor de almacenaje: Gestiona el almacenaje fsico de los datos y la actualizacin de los datos en disco.
El equipo cliente se suele encargar de la parte lgica y de mostrar la informacin al usuario que realiza una peticin. El equipo servidor SQL Server, se encarga de administrar la base de datos, de gestionar los recursos del servidor. (CPU, memoria, etc.), y por supuesto de resolver y devolver en forma de solucin la peticin realizada por el cliente.
Nota: La aplicacin cliente por lo general est instalada en equipos cliente que realizan peticiones a un servidor de datos SQL Server, se puede dar el caso de tener una aplicacin cliente instalada en el mismo equipo donde se encuentra el servidor de bases de datos, aunque no es lo normal, ni lo recomendable.
El sistema RDBMS se encarga de: Crear una estrategia de copias de seguridad. Crear planes de mantenimiento para el buen funcionamiento de la base de datos. [6]
[6] http://www.formaselect.com/curso/experto-en-sql-server-2000/Introduccion-a-SQL-Server%202000.pdf
22
23
La parte inferior es un cuadro descriptivo que proporciona una breve descripcin de la propiedad seleccionada (ver Figura 3c).
3b 3a
3c
24
En Visual Basic .NET existen dos archivos: Un archivo de proyecto con extensin .vbproj, el cual contiene informacin especfica para una determinada tarea de programacin. Un archivo de solucin con extensin .sln, el cual contiene informacin relacionada con uno o ms proyectos. Este tipo de archivo puede administrar varios proyectos relacionados entre s y son similares a los archivos de grupos de proyecto con extensin .vbg en Visual Basic 6. Si la solucin tiene un nico proyecto, abrir el archivo de proyecto (.vbproj) o el archivo de solucin (.sln) tiene el mismo resultado, pero si la solucin es multiproyecto entonces deber abrir el archivo de solucin. Los formularios en Visual Basic .NET tienen la extensin .vb. Se mostrarn a manera de pestaas junto a la pgina de inicio, la vista de diseo y el cdigo del formulario.
25
System.EventArgs)-Handles MyBase.Load txtOutput.Text += Sqrt(9) & vbNewLine Cdigo 1. Declaracin de Imports a nivel de formulario.
7.4.2.3 .NET.
La biblioteca de clases .NET es una biblioteca de clases incluida en el Microsoft .NET Framework y est diseada para ser la base sobre las cuales las aplicaciones .NET son construidas. La biblioteca .NET contiene un nmero considerable de clases con cdigo reutilizable, para ayudar a controlar esta complejidad .NET utiliza namespaces, colecciones de clases relacionadas (ver Cdigo 2).
Imports System.Data Imports System.Data.SqlClient
26
7.4.2.4.1 Evento.
Un evento es una accin o acontecimiento reconocido por algunos objetos para los cuales es necesario escribir el cdigo para responder a dicho evento. Los eventos pueden ocurrir como resultado de una accin del usuario (onClick), por invocacin a travs de cdigo o disparados por el sistema (Timer Tick Event) (ver Figura 4).
7.4.2.5 Procedimientos.
Un procedimiento es un conjunto de sentencias que realizan una accin lgica. Existen tres tipos de procedimientos en Visual Basic .NET:
27
Event procedures/Event handler, procedimiento que contiene cdigo que es ejecutado en respuesta a un evento. Cuando el evento es disparado el cdigo dentro del manejador de eventos es ejecutado. Visual Basic .NET para los manejadores de eventos utiliza una convencin estndar la cual combina el nombre del objeto seguido de un guin bajo y el nombre del evento (ver Cdigo 4).
Private|Public Sub objeto_Evento(parmetros) handles Objeto.Evento sentencias End Sub
Cdigo 4. Procedimiento que se ejecuta en respuesta a un evento en Visual Basic.Net. La clusula Handles indica el tipo de procedimiento. La lista de parmetros indica el tipo de variables sobre las que trabaja dicho procedimiento.
Cada manejador de eventos provee dos parmetros, el primer parmetro llamado sender provee una referencia al objeto que dispara el evento, el segundo parmetro es un objeto cuyo tipo de dato depende del evento que es manejado. Ambos parmetros son pasados por valor. Si un parmetro es declarado por referencia ByRef el parmetro apunta al argumento actual. Por default los argumentos se pasan por valor ByVal el parmetro es una copia local del argumento. Sub procedures. Contiene cdigo que el desarrollador crea para realizar una accin lgica (ver Cdigo 5).
Private|Public Sub nombre_Procedimiento(parmetros) sentencias End Sub
Cdigo 5. Procedimiento creado por el desarrollador. La lista de parmetros es opcional.
28
Function procedures. Contiene cdigo que el desarrollador crea para realizar una accin lgica y regresa un valor, el valor que una funcin enva de regreso al programa que lo invoco es llamado valor de regreso. Para regresar un valor se utiliza la sentencia Return (ver Cdigo 6).
Private|Public Function nombre_Funcion(parmetros) as Tipo Sentencias Return valor End Function Cdigo 6. Procedimiento del tipo funcin. La lista de parmetros es opcional y se debe indicar el tipo de valor que regresar la funcin. La clusula Return es obligatoria.
Partial Class _Default Inherits System.Web.UI.Page Dim variable_modular As float 'Declaracin de variable modular Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim variable_local As Integer 'Declaracin de variable local End Sub End Class Cdigo 7. Declaracin de variables modular y local en Visual Basic.Net
29
7.4.2.7 Constantes.
Una constante es aquella que almacena un valor que no es posible cambiar durante la ejecucin del programa. Se recomienda que el nombre de una constante sea escrito en su totalidad en maysculas (ver Cdigo 8).
Const PI As Double = 3.14159265 Cdigo 8. Declaracin de constantes.
Si desea que la constante est disponible para todos los formularios y mdulos de la aplicacin deber ser declarada en un mdulo y anteponer a su declaracin la palabra reservada Public (ver Cdigo 9).
REM Escribir en un Mdulo Public Const PI As Double = 3.14159265 Cdigo 9. Declaracin de una constante pblica.
7.4.2.8 Operadores.
La Tabla 1 muestra los operadores matemticos disponibles en Visual Basic .Net. Operador + * / Mod ^ & Suma Resta Multiplicacin Divisin Residuo (resto de la divisin entera) Exponenciacin (elevar a una potencia) Concatenacin de Cadenas
Tabla 1. Operadores aritmticos.
Descripcin
30
Dim nInc As Integer For nInc = 1 To 10 If nInc Mod 2 = 0 Then txtOutput.Text += nInc & " es par " & vbNewLine Else txtOutput.Text += nInc & " no es par " & vbNewLine End If Next txtOutput.Text += "10/0 = " & CStr(10 / 0) Cdigo 10. Uso de operadores aritmticos
31
32
Los nuevos operadores lgicos AndAlso y OrElse reciben el nombre de sistema de corto-circuito. Parece que el operador lgico AndAlso como OrElse nos ahorran escribir un If dentro de otro If/else y quiz evitar un error en tiempo de ejecucin (ver Cdigo 16).
Dim nCalificacion As Integer = 0 If nCalificacion < 0 OrElse nCalificacion / 0 Then MsgBox("Error de lgica") Else MsgBox("Continuar clculo") End If Cdigo16. Uso de operadores lgicos.
33
34
La palabra reservada Finally es opcional. El cdigo contenido dentro de un bloque Try recibe el nombre de cdigo protegido, porque evita la interrupcin del programa o aplicacin y ejecuta las instrucciones contenidas en Catch.
35
Para probar ms de una condicin de error en tiempo de ejecucin utilice la sentencia Catch When (ver Cdigo 18).
Try 'Evaluar expresin Catch When Err.Number = 13 'Ocurrio un error de tipo de datos, no coinciden los tipos Catch When Err.Number = 6 'Ocurrio un error en el control del ndice, desbordamiento Catch 'Controlar el error End Try Cdigo 18. Estructura de Catch When.
Por ltimo, este mecanismo al igual que las sentencias de control tiene una manera de salir del bloque ya sea este Try o Catch a travs del empleo de la instruccin Exit try, pero si contiene una sentencia Finally el cdigo contenido en esta si se ejecuta, nicamente aplica para Try y Catch pues el objetivo de Finally es precisamente el ejecutar pase lo que pase su contenido (ver Cdigo 19).
Try 'sentencia(s) que pueden generar un error en tiempo de ejecucin 'Bajo determinada condicin Exit try Catch '(el error se genero) 'sentencia(s) que definen las acciones a seguir ya que se genero el error 'Bajo determinada condicin Exit try Finally 'sentencia(s) que restablecen las condiciones antes de generarse el error. End Try Cdigo 19. Estructura de Finally.
36
37
Archivo de cdigo correspondiente/Code-Behind (Mdulo de cdigo que contiene el cdigo que corresponde a la pgina Web Forms .aspx.vb) (ver Figura 6).
En Visual Studio es posible ver los archivos ASPX y VB.NET como dos vistas de la misma pgina. El servidor web compilar ambos archivos y crea una nueva clase que contiene HTML esttico, controles-servidor ASP.NET y cdigo de la forma compilado en conjunto, la clase genera el HTML que enva al cliente cada vez que la pgina es requerida. Los Web Forms (requieren de .NET Framework en el servidor para ejecutarse en la mquina-servidor) son similares a Windows Forms (requieren de .NET Framework para ejecutarse en la mquina-cliente) pues ambos son event driven, es decir, que se puede responder a eventos que ocurren en los controles-servidor de la pgina HTML. Los manejadores de eventos para los controles-servidor son escritos en el cdigo detrs de la pgina utilizando sintaxis VB.NET. Una aplicacin Web puede contener mdulos de cdigo (.vb), documentos HTML (.htm/html), informacin de configuracin (Web.config) y (Global.asax), as como otros componentes.
38
Las aplicaciones ASP.NET contienen un archivo especial llamado Global.asax utilizado para establecer cualquier objeto global requerido por la aplicacin web. El archivo es compilado con la primera peticin a una pgina de la aplicacin web. Cuando este archivo es modificado, el archivo es recompilado y la aplicacin web reiniciara en la prxima peticin de una pgina. Para crear una aplicacin Web de ASP.NET se utilizan los controles de las secciones HTML o Web Forms de la caja de herramientas. Los controles Web Forms son controles de servidor, es decir, que se ejecutan y pueden ser programados en el servidor web. Los controles HTML son por default controles cliente, es decir, que se ejecutan en el navegador del usuario final, aunque es posible configurar estos controles HTML como controles de servidor dando el valor Server a su propiedad Runat. Los Controles HTML son los controles comunes utilizados en el HTML, los Controles Web Forms son ms potentes y poseen propiedades, mtodos y eventos. No es necesario que un usuario tenga la ltima versin del navegador ya que Visual Studio .NET contiene la propiedad targetSchema en el objeto DOCUMENT para especificar una versin del navegador y soporta Internet Explorer 3.02, 3.0, 5.0 y Navigator 4.0, por default tiene el valor de Internet Explorer 5.0, as que el valor seleccionado afecta el cdigo HTML generado y las funciones disponibles en Visual Studio. Si requiere crear una aplicacin Web en Visual Basic .NET, cree un proyecto Aplicacin Web ASP.NET (ASP.NET Web Application), tambin requiere de Windows 2000 o Windows XP Professional, IIS, Extensiones de FrontPage 2000 y bibliotecas .NET Framework, si tiene XP Home Edition no podr crear aplicaciones Web ASP.NET localmente, pero si podr crearlas si accede a un Servidor Web Remoto configurado adecuadamente.
39
Se recomienda instalar IIS y Extensiones Front Page antes de instalar .NET Framework y Visual Studio .NET, si trata de instalar IIS y Extensiones Front Page despus de .NET Framework deber repararlo pues .NET Framework registra las extensiones a travs de IIS.
Las aplicaciones de tres capas protegen los recursos del servidor de base de datos reduciendo el nmero de conexiones actuales a la base de datos. Las conexiones al servidor de base de datos se realizan por las aplicaciones del servidor en lugar de ser realizadas por las mquinas cliente. Los usuarios no requieren de conexiones individuales o persistentes al servidor de base de datos, lo cual no slo protege los recursos de base de datos, tambin facilita el mantenimiento de cuentas y fortalece la seguridad de datos. Capa de Presentacin - Presentation Layer La Capa de Presentacin se ejecuta sobre la mquina del usuario (cliente) y provee de una interfaz de aplicacin, un cliente robusto realiza procesos significativos con menos carga en la capa de aplicacin, un cliente menos robusto tpicamente involucra un navegador (browser) que despliega HTML con procesos poco significativos y requiere de una mayor carga en la capa de aplicacin.
40
Capa de Aplicacin - Application Layer La Capa de Aplicacin provee varios mdulos y servicios que son esenciales para la solucin, incluyendo el procesamiento basado en las reglas de negocio. Si las reglas de negocio cambian solamente los servicios en la capa de aplicacin necesitan ser cambiados para implementar los cambios a travs del sistema. La Capa de Aplicacin tambin provee un mediador entre los manejadores de la capa de aplicacin y la capa de datos. Los requerimientos del usuario para los servicios de datos son manejados por la capa de aplicacin la cual puede reducir el nmero de conexiones a la base de datos, por ejemplo todos los usuarios pueden compartir una conexin entre la capa de aplicacin y la capa de datos, antes que cada usuario (cliente) requiera de una conexin de datos. Capa de Datos - Data Layer La Capa de Datos es la responsable de todos los accesos a la base de datos requeridos por la solucin, esta capa comnmente provee el soporte para agregar, eliminar, actualizar y recuperar informacin de la base de datos.
41
7.4.3.3 Tcnicas de administracin de estados. En ASP.NET existen varias opciones para que los desarrolladores mantengan el estado de un sitio web, algunas de ellas involucran mantener informacin en la mquina-cliente, otras en la mquina-servidor.
Un Query String no es seguro porque la informacin es visible en el navegador, adems que la mayora de los navegadores tienen una longitud mxima de 255 caracteres para el URL, lo cual limita la informacin que puede ser enviada utilizando un Query String (ver Cdigo 20).
Dim id As Integer = Request.QueryString("id") Cdigo 20. Uso de Query String.
7.4.3.3.1.3 Cookies.
Una Cookie es un texto pequeo almacenado en la mquina-cliente, es decir, un archivo de texto y no un programa o plug-in, el navegador anexa la Cookie en cada nueva peticin HTTP antes que enviarla al servidor para que los datos puedan ser ledos y respondidos apropiadamente. La informacin almacenada en una Cookie puede ser expuesta y por lo tanto no es lo mejor para mantener informacin, adems los usuarios podran deshabilitar la opcin en sus navegadores para no utilizar Cookies, entonces la aplicacin no debera ser dependiente de un dato en la Cookie (ver Cdigo 21).
Dim galleta As New HttpCookie("bruker") galleta.Value = TextBox3.Text 'galleta.Expires = DateTime.Now.AddMinutes(20) galleta.Expires = DateTime.Now.AddDays(1) Response.Cookies.Add(galleta) Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString Cdigo 21. Uso de Cookies
43
del cliente la informacin es ms segura. Los estados de administracin del lado del servidor deberan ser incluidos en todas las aplicaciones que requieran soluciones seguras.
44
comillas) del nombre de la variable, por ejemplo: Session("User"), las variables de sesin pueden ser accedidas desde cualquier pgina de la aplicacin web por cada peticin a la aplicacin. Las sesiones y sus variables expiran despus de veinte minutos de inactividad. Si el navegador hace una peticin despus del tiempo de expiracin (20 minutos) la aplicacin web crea una nueva sesin para el navegador.
Seguridad, la informacin del usuario almacenada en la base de datos es un nivel extra eliminado de las capa de presentacin, haciendo que los datos sean menos disponibles para uso indebido. Si la base de datos contiene informacin importante puede ser protegida a travs de un usuario y contrasea para evitar accesos no deseados.
Consultas, el almacenamiento de datos en la base de datos da a la aplicacin el poder y funcionalidad de la base de datos en general, incluyendo la habilidad para consultar informacin especfica.
45
Capacidad, las bases de datos son especialmente buenas para mantener cantidades grandes de informacin y los servicios de datos pueden fraccionarse a la capa de datos que reside en uno o ms servidores de datos, permitiendo a la aplicacin web evitar la disminucin del desempeo.
Extraccin de Datos, teniendo la capacidad de base de datos una aplicacin, podra mantener referencias sobre cuntas veces el usuario ha visitado la aplicacin web. [7]
8.
Procedimientos
descripcin
de
las
actividades
realizadas.
Para el desarrollo de la WebApp se utiliz el modelo IWeb descrito en el punto
La WebApp se constituye como la solucin a una necesidad de procesamiento de informacin de la Coordinacin Delegacional de Informtica que permite conocer de forma precisa la situacin real de la Delegacin Estatal de Puebla del Instituto Mexicano del Seguro Social. Durante el proceso de formulacin se llevaron a cabo entrevistas con el Lic. Jefte De Jess Espinosa Vera Coordinador Delegacional de Informtica para conocer las necesidades reales de la Delegacin Estatal de Puebla, dichas entrevistas arrojaron la informacin necesaria para determinar que la solucin ptima para las necesidades identificadas era la creacin de una WebApp. La Lic. Yadira Estrada Izucar Controladora de Sistemas Interactivos, asesor externo y responsable del proyecto, particip en la formulacin de la WebApp indicando la forma en la que se procesan los diferentes indicadores de cada uno de los departamentos de la Delegacin Estatal de Puebla. A continuacin se muestra la entrevista realizada al Lic. Jefte De Jess Espinosa Vera y a la Lic. Yadira Estrada Izucar durante el proceso de comunicacin con el cliente. 1. Qu tipo de informacin procesar la WebApp? 2. Qu procesamiento o tratamiento se le dar a dicha informacin? 3. Cul es el volumen de informacin estimado que procesar la WebApp? 4. Cul es la infraestructura disponible para la manipulacin de la WebApp? 5. Qu herramientas se tienen disponibles para el desarrollo de la WebApp? 6. Cul es el nmero aproximado de usuarios que tendr la WebApp? 7. A qu tipo de usuarios estar destinada la WebApp? 8. Cul sera el propsito general de la WebApp? 9. Qu tipo de resultados espera obtener con la WebApp?
47
existe
algn
mecanismo
para
procesar
dicha
11. Describa brevemente el proceso que sigue la informacin y que debe ser automatizado. La informacin obtenida mediante las entrevistas indic que exista una gran posibilidad de que se realizaran cambios posteriores sobre la WebApp. 2. Planeacin. Una vez que se obtuvo y analiz la informacin necesaria para el desarrollo de la WebApp, mediante la realizacin de las entrevistas, se estableci el calendario de actividades y diagrama de Gantt, los cuales se muestran en las Figuras 7 y 7a respectivamente. 3. Modelado. Para el desarrollo de la WebApp se inici con la creacin de una representacin grfica de cmo se llevara a cabo el proceso de manejo de informacin proveniente desde las diferentes unidades que conforman la Delegacin Estatal de Puebla (ver Figura 8). Como se puede apreciar en la Figura 8, cada Unidad Mdica que constituye la Delegacin Estatal de Puebla cuenta con sus propios departamentos, los cuales generan informacin referente a su situacin actual, cada Unidad Mdica debe enviar la informacin de cada uno de sus departamentos a la Delegacin Estatal de Puebla y la WebApp debe encargarse de almacenar, procesar y mostrar los resultados del procesamiento de dicha informacin para cada uno de los departamentos que la constituyen.
48
49
50
51
Posteriormente se diseo el diagrama conceptual de la base de datos que se us para la WebApp, a continuacin se describen los pasos a seguir para dicho proceso. 1. Identificar las entidades.
TIPO_UNIDAD DEPARTAMENTO
UNIDAD
USUARIO identificador_usuario password_usuario matricula_usuario apellido_paterno_usuario apellido_materno_usuario nombre_usuario unidad_usuario area_usuario status_usuario permisos_usuario hora_login_usuario accesos_usuario
52
DEPARTAMENTO USUARIO *identificador_departamento *nombre_departamento *identificador_usuario *password_usuario *matricula_usuario *apellido_paterno_usuario *apellido_materno_usuario *nombre_usuario *unidad_usuario *area_usuario *status_usuario *permisos_usuario *hora_login_usuario *accesos_usuario
53
DEPARTAMENTO USUARIO #*identificador_departamento *nombre_departamento #*identificador_usuario *password_usuario *matricula_usuario *apellido_paterno_usuario *apellido_materno_usuario *nombre_usuario *unidad_usuario *area_usuario *status_usuario *permisos_usuario *hora_login_usuario *accesos_usuario
54
La Figura 9 muestra el diagrama conceptual inicial de la base de datos que incluye una tabla de procesamiento para la generacin de anlisis.
La Figura 10 muestra el diagrama conceptual final de la base de datos sin la tabla de procesamiento anlisis, ya que esta no es necesaria al no almacenar informacin, dicha base de datos es la utilizada por la WebApp.
55
Finalmente, se disearon las estructuras o modelos de cmo sera la interfaz grfica de usuario. En base a los estndares del Instituto Mexicano del Seguro Social, las aplicaciones deben contar con un banner institucional, el cual se permiti disear libremente y que deba contener logo, nombre y slogan oficial del IMSS, as como el logo de vivir mejor, adems todas las interfaces de la WebApp deban ser diseadas con los colores institucionales (verde y blanco). Con base en los requerimientos analizados se idearon tres diseos de interfaces pertenecientes a las reas genricas que constituyen la WebApp, dichas reas se describen a continuacin. Se realiz el diseo rpido de la interfaz de login y autenticacin de usuarios y se identificaron las reas que constituyen dicha interfaz como puede observarse en la Figura 11.
56
El banner institucional que se diseo para ser utilizado en las interfaces de la WebApp se muestra en la Figura 12.
El segundo diseo rpido que se cre fue el de la interfaz de captura de datos para la informacin proveniente de los diferentes departamentos y unidades que constituyen la Delegacin Estatal de Puebla, de la misma forma que en el diseo de la interfaz de login la Figura 13 muestra las reas que constituyen esta interfaz.
57
El tercer y ltimo diseo rpido que se cre es el correspondiente a la interfaz de anlisis de informacin, dicha interfaz as como las reas que la constituyen se muestran en la Figura 14.
NOTA: Los colores utilizados para describir y mostrar las diferentes reas en los diseos rpidos de las interfaces antes mencionadas slo sirven para denotar las secciones de la interfaz, pero no constituyen los colores utilizados en la WebApp.
58
4. Construccin. Una vez revisados y aceptados los modelos o prototipos para la WebApp, se desarrollaron y programaron las diferentes interfaces y secciones que la conforman. Se inicia con la creacin del WebForm que contendr la interfaz de login o inicio de sesin de la WebApp (ver Figura 15).
Se copia el banner y el logo de vivir mejor al directorio en el que fue creada la WebApp (ver Figura 16) para poder utilizarlos posteriormente.
59
Desde el explorador de soluciones (ver Figura 17a) se arrastra el banner para agregarlo al WebForm de login, posteriormente se selecciona dicho banner y se configuran sus propiedades (ver Figura 17b) como es style que incluye la posicin y el tamao del mismo.
17a
17b
Para insertar el logo de vivir mejor se siguen los mismos pasos utilizados para insertar el banner en el WebForm de login, la Figura 18 muestra ambos elementos ya configurados en el WebForm.
60
Los pasos descritos para insertar el banner y el logo de vivir mejor son los mismos para las diferentes pginas de la WebApp por lo que ya no se mencionarn en la construccin de las siguientes interfaces. El siguiente paso es crear el rea de procesamiento para el WebForm de login. Se arrastra un Panel del cuadro de herramientas (ver Figura 19a) y se configuran sus propiedades BackColor = Green, Height = 173px y Width = 350px (ver Figura 19b).
19a
19b
A continuacin, se arrastran tres Label del cuadro de herramientas (ver Figura 20a), el primer Label ser utilizado para resaltar el ttulo de Inicio de Sesin configurando sus propiedades BackColor = White, Height = 20px, Width = 336px, Font = Arial, Size = Smaller, Bold = True y ForeColor = Green. Los siguientes dos Label sern utilizados como etiquetas para Nombre de Usuario y Contrasea respectivamente, se configuran las propiedades de ambos con Font = Arial, Size = Smaller, Bold = True, ForeColor = White. Finalmente se arrastran dos TextBox del cuadro de herramientas (ver Figura 20b) y se configuran sus propiedades Width = 148px y TextMode = Password para el TextBox dedicado a la contrasea (ver Figura 20c).
61
20b 20a
20c
Para continuar se inserta el rea de botones, acciones y navegacin. Se arrastra un elemento Button del cuadro de herramientas (ver Figura 21a) y se configuran sus propiedades BackColor = DarkGreen, BorderColor = YellowGreen, Font = Arial, Size = Smaller, Bold = True, Fore color = White, Text = Iniciar Sesin (ver Figura 21b).
21a
21b
62
Por ltimo se coloca el rea de mensajes, para dicha rea se arrastra nuevamente un Label del cuadro de herramientas y se configuran sus propiedades Font = Arial, Size = Smaller, Bold = True, ForeColor = Red, Visible = False. El Label ser manipulado desde el cdigo segn se cumplan distintas condiciones de acuerdo a las acciones del usuario. La Figura 22 muestra el resultado final de la construccin de la interfaz de login para los usuarios.
Hasta ahora se ha mostrado la ubicacin de los elementos Panel, Label y TextBox en el cuadro de herramientas, para futuras menciones de dichos elementos slo se mencionar su configuracin debido a que ya se conoce su origen. A continuacin se muestra el cdigo fuente de la pgina de login.
63
Imports System.Data Imports System.Data.SqlClient Partial Class _Default Inherits System.Web.UI.Page Dim conexion As String = "Data Source=(local);Initial Catalog=indicadores;Integrated Security=True" Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim objConexion As New SqlConnection(conexion) Dim contra As String If TextBox3.Text = "root" Then contra = TextBox4.Text Else contra = CIF(TextBox4.Text) End If objConexion.Open() Dim SentenciaSql As New SqlCommand("select count(*) from usuario where id_usua= '" & TextBox3.Text & "' and ps_usua = '" & contra & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() myReader.Read() Dim conta As Integer = myReader.GetValue(0) objConexion.Close() If TextBox3.Text = "" Or TextBox4.Text = "" Then Label2.Text = ("Los datos para iniciar sesin no estn completos.") Label2.Visible = True Else If conta = 0 Then Label2.Text = ("Los datos de la cuenta no son vlidos") Label2.Visible = True Else ' bruker es usuario en noruego Dim galleta As New HttpCookie("bruker") galleta.Value = TextBox3.Text galleta.Expires = DateTime.Now.AddMinutes(30) Response.Cookies.Add(galleta) objConexion.Open() Dim estado As New SqlCommand("update usuario set st_usua = 1, hl_usua = '" & Format(Now, "HH:mm") & "' where id_usua = '" & TextBox3.Text & "'", objConexion) 'declarar para insertar el texto en sql estado.ExecuteNonQuery() objConexion.Close() Response.Redirect("MPrincipal.aspx", False) End If End If Catch ex As Exception End Try End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
64
Label2.Visible = False End Sub Private Function CIF(ByVal cadena As String) As String Dim i As Integer = 0 Dim cadcif As String = "" Dim valor As Integer = 0 For i = 0 To cadena.Length - 1 valor = Asc(cadena.Substring(i, 1)) valor = (valor * 100) / 120 If valor <= 33 Then valor = valor * 2 End If cadcif += Chr(valor) Next Return cadcif End Function End Class
Tambin se desarrollo una interfaz para las principales funciones de la WebApp, las cuales son captura y anlisis, dichas funciones se unificaron an cuando la informacin proveniente de cada departamento (sus indicadores) vara
demasiado, pero grficamente se trat de unificar lo ms posible. Para desarrollar la interfaz de captura se crea un nuevo WebForm como se observ en la Figura 15 y se anexa el banner y el logo de vivir mejor como se observ en la Figura 17 y 18 respectivamente de la interfaz de login. A continuacin se arrastra un Label para el titulo del WebForm que indica el nombre del indicador que ser capturado y se configuran sus propiedades Font = Arial, Size = Smaller, Bold = True, ForeColor = Green. Despus se inserta la cantidad de Label necesarios para la captura de cada indicador, ya que como se mencion antes, no todos los departamentos manejan la misma informacin, la propiedad Text vara de forma similar pero todos comparten las mismas propiedades Font = Arial, Size = Smaller, Bold = False, ForeColor = Black. La Figura 23 muestra la interfaz de captura de datos construida hasta el momento.
65
Despus se arrastra el elemento DropDownList del cuadro de herramientas (ver Figura 24a). Para configurar dicho elemento se da clic en la pestaa que aparece en la parte superior derecha del mismo, aparecern las tareas del elemento y se elige la opcin editar elementos. Posteriormente aparece el editor de la coleccin ListItem (ver Figura 24b), en este caso se crea la lista de elementos con los nombres de los meses del ao. En la propiedad Text se escribe el nombre del mes y en la propiedad Value se otorga un valor, en este caso Value = 1 para el Text = Enero y as sucesivamente para los dems meses del ao (ver Figura 24c).
66
24a 24b
24c
Posteriormente se arrastra el nmero de TextBox, del cuadro de herramientas, necesarios para la captura del indicador que se est procesando, en este caso se utilizan dos, las propiedades de dichos TextBox se mantienen por defecto. Para el rea de botones se establece el elemento Button, tal y como se mostr en la Figura 21, que llevar a cabo la accin de guardar los datos capturados (ver Figura 25a). Para el rea de mensajes se establece un elemento Label (ver Figura 25b) que mostrar los mensajes de confirmacin o error al usuario, dicho elemento se maneja desde cdigo de programacin y sus propiedades son las asignadas por defecto.
67
25a
25b
Finalmente dentro del rea de navegacin se incluye el elemento HyperLink, que servir para redireccionar al Men Principal, este elemento se arrastra tambin desde el cuadro de herramientas (ver Figura 26a) y se configuran sus propiedades Font = Arial, Bold = True, Size = Smaller, ForeColor = Green Text= Regresar y la propiedad NavigateUrl = ~/MPrincipal.aspx que es el nombre del WebForm que contiene el men principal (ver Figura 26b).
26a
26b
68
A continuacin se muestra el cdigo fuente de la pgina de captura de datos mostrada en la Figura 27.
Imports System.Data Imports System.Data.SqlClient Partial Class juridicos_trascendente Inherits System.Web.UI.Page Dim conexion As String = "Data Source=(local);Initial Catalog=indicadores;Integrated Security=True" Dim unidad As String = "" Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Label3.Visible = False Try Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString Dim objConexion As New SqlConnection(conexion) objConexion.Open() Dim SentenciaSql As New SqlCommand("select pe_usua,un_usua from usuario where id_usua = '" & bruker & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader()
69
myReader.Read() Dim privilegios As String = myReader.GetValue(0) unidad = myReader.GetValue(1) objConexion.Close() If privilegios <> "root" Then If privilegios.Substring(7, 1) <> "1" Then Response.Redirect("..\permisos.aspx", False) Else If unidad <> "Delegacin Puebla" Then Response.Redirect("..\permisos.aspx", False) End If End If End If Catch ex As Exception Response.Redirect("..\Default.aspx", False) End Try End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Try Dim bruker As String = Request.Cookies.Get("bruker").Value.ToString If TextBox1.Text = "" Or TextBox2.Text = "" Then Label3.Text = "Los campos de registro se encuentran vacos" Label3.ForeColor = Drawing.Color.Red Label3.Visible = True Else If IsNumeric(TextBox1.Text) And IsNumeric(TextBox2.Text) Then Dim reci As Integer = TextBox1.Text Dim favo As Integer = TextBox2.Text If favo <= reci Then Dim objConexion As New SqlConnection(conexion) objConexion.Open() Dim SentenciaSql As New SqlCommand("select count(*) from trascendentes where uni_tra = '" & unidad & "' and mes_tra =" & DropDownList1.Text & " and substring(fec_tra,7,4) = '" & Format(Now, "yyyy") & "'", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() myReader.Read() Dim existe As Integer = myReader.GetValue(0) objConexion.Close() If existe <> 0 Then objConexion.Open() Dim inserta As New SqlCommand("update trascendentes set rec_tra = '" & reci & "', fav_tra = " & favo & " where uni_tra = '" & unidad & "' and mes_tra =" & DropDownList1.Text & " and substring(fec_tra,7,4) = '" & Format(Now, "yyyy") & "'", objConexion) 'declarar para insertar el texto en sql inserta.ExecuteNonQuery() objConexion.Close() Else objConexion.Open()
70
Dim inserta As New SqlCommand("insert into trascendentes (uni_tra, mes_tra, rec_tra, fav_tra, fec_tra) values ('" & unidad & "'," & DropDownList1.Text & ",'" & reci & "','" & favo & "','" & Format(Now, "dd/MM/yyyy") & "')", objConexion) 'declarar para insertar el texto en sql inserta.ExecuteNonQuery() objConexion.Close() End If TextBox1.Text = "" TextBox2.Text = "" Label3.Text = "Informacin Almacenada Exitosamente" Label3.ForeColor = Drawing.Color.Green Label3.Visible = True Else Label3.Text = "Los laudos favorables son mayores a los laudos recibidos en el mes" Label3.ForeColor = Drawing.Color.Red Label3.Visible = True End If Else Label3.Text = "Los datos que insert no son vlidos" Label3.ForeColor = Drawing.Color.Red Label3.Visible = True End If End If Catch ex As Exception Response.Redirect("..\Default.aspx", False) End Try End Sub End Class
Para la interfaz de anlisis se crea un nuevo WebForm como se observ en la Figura 15 y se anexa el banner y el logo de vivir mejor como se observ en las Figuras 17 y 18 respectivamente. Esta interfaz utiliza elementos como Label (ver Figura 20), Button (ver Figura 21), DropDownList (ver Figura 24) e Hyperlink (ver Figura 26) por lo que no se mencionarn su ubicacin ni su configuracin. Se arrastra un Label al WebForm para colocar el ttulo del anlisis, posteriormente se arrastra el elemento SqlDataSource desde el cuadro de herramientas (ver Figura 28a) y se configuran sus propiedades ConnectionString = Data Source=(local);Initial Catalog=indicadores;Integrated Security=True y SelectQuery = select distinct substring(fec_inc,7,4) as anios from inconformidad order by substring(fec_inc,7,4) (ver Figura 28b).
71
Se arrastra un segundo SqlDataSource y se asignan las mismas propiedades que al primero, slo se cambia la propiedad SelectQuery por un procedimiento almacenado de la base de datos.
28a
28b
Posteriormente se arrastra un Label y un DropdownList, se presiona en la pestaa superior del mismo y se selecciona Elegir origen de datos (ver Figura 29a), en la pantalla emergente se selecciona el primer SqlDataSource (ver Figura 29b) para que los elementos del DropDownList se generen con los aos disponibles para la generacin de anlisis, por ltimo se presiona el botn aceptar (ver Figura 29c). Para finalizar se arrastra un Button, un Hyperlink y el elemento GridView del cuadro de herramientas (ver Figura 30a), se presiona en la pestaa superior del mismo y en el apartado Elegir origen de datos se selecciona el SqlDataSource2 que contiene la informacin del anlisis para dicho indicador (ver Figura 30b)
72
29a 29b
29c
30a
30b
Despus de elegir el origen de datos del GridView se configuran su propiedades AutoGenerateColumns = False, BackColor = White, BorderColor = DarkGreen, BorderStyle = None, BorderWidth = 1px, CaptionAlign = Right, Font = Arial,Medium, GridLines = None, HorizontalAlign = Left, Visible = False y Width = 433px concluyendo as la construccin de la interfaz de anlisis.
73
74
End Try End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click objConexion.Open() Dim limpia As New SqlCommand("delete from analisis_inconformidad", objConexion) 'declarar para insertar el texto en sql limpia.ExecuteNonQuery() objConexion.Close() inserta("ret_inc", "rem_inc", 1, "Recursos resueltos", DropDownList1.Text) objConexion.Open() Dim inant As New SqlCommand("insert into analisis_inconformidad (con,mes) values ('','')", objConexion) inant.ExecuteNonQuery() objConexion.Close() inserta("rcr_inc", "iem_inc", 2, "Recursos ingresados", DropDownList1.Text) GridView2.DataBind() GridView2.Visible = True End Sub Private Sub inserta(ByVal campo1 As String, ByVal campo2 As String, ByVal tab As Integer, ByVal concepto As String, ByVal anio As String) objConexion.Open() Dim SentenciaSql As New SqlCommand("select convert(decimal(12,2),(sum(convert(decimal(12,2),(replace(" & campo1 & ",',','.'))))*100/sum(convert(decimal(12,2),(replace(" & campo2 & ",',','.')))))) as porce, mes_inc from inconformidad where substring(fec_inc,7,4) = '" & anio & "' group by mes_inc order by mes_inc", objConexion) Dim myReader As SqlDataReader myReader = SentenciaSql.ExecuteReader() Dim meses(13) As Single Dim i As Integer While myReader.Read() Try meses(myReader.GetValue(1)) = myReader.GetValue(0) Catch ex As Exception meses(myReader.GetValue(1)) = 0 End Try End While objConexion.Close() Dim anterior As Single = Single.Parse(anio) - 1 Dim actual As Single objConexion.Open() Dim anios As New SqlCommand("select (select convert(decimal(12,2),(sum(convert(decimal(12,2),(replace(" & campo1 & ",',','.'))))*100/sum(convert(decimal(12,2),(replace(" & campo2 & ",',','.')))))) from inconformidad where substring(fec_inc,7,4) = '" & anterior & "'),(select convert(decimal(12,2),(sum(convert(decimal(12,2),(replace(" & campo1 &
75
",',','.'))))*100/sum(convert(decimal(12,2),(replace(" & campo2 & ",',','.')))))) from inconformidad where substring(fec_inc,7,4) = '" & anio & "')", objConexion) Dim leeanios As SqlDataReader leeanios = anios.ExecuteReader() leeanios.Read() Try anterior = leeanios.GetValue(0) Catch ex As Exception anterior = 0 End Try Try actual = leeanios.GetValue(1) Catch ex As Exception actual = 0 End Try objConexion.Close() Dim mes_nom(13) As String mes_nom(1) = "Enero" mes_nom(2) = "Febrero" mes_nom(3) = "Marzo" mes_nom(4) = "Abril" mes_nom(5) = "Mayo" mes_nom(6) = "Junio" mes_nom(7) = "Julio" mes_nom(8) = "Agosto" mes_nom(9) = "Septiembre" mes_nom(10) = "Octubre" mes_nom(11) = "Noviembre" mes_nom(12) = "Diciembre" For i = 1 To 12 objConexion.Open() If i = 1 Then Dim inser As New SqlCommand("insert into analisis_inconformidad (con,ano,mon,mes,por,tab) values ('" & concepto & "', '" & anio & "'," & i & ",'" & mes_nom(i) & "','" & meses(i) & "'," & tab & ")", objConexion) inser.ExecuteNonQuery() Else Dim inser As New SqlCommand("insert into analisis_inconformidad (ano,mon,mes,por,tab) values ('" & anio & "'," & i & ",'" & mes_nom(i) & "','" & meses(i) & "'," & tab & ")", objConexion) inser.ExecuteNonQuery() End If objConexion.Close() Next objConexion.Open() Dim inant As New SqlCommand("insert into analisis_inconformidad (con,mes,tab) values ('Promedio Ao Anterior','" & anterior & "'," & tab & ")", objConexion) inant.ExecuteNonQuery() objConexion.Close() End Class
76
5. Despliegue. Una vez terminada la WebApp se traslado al servidor institucional, el cual aloja a la misma. La WebApp fue entregada a la Lic. Yadira Estrada Izucar y al Lic. Jefte De Jess Espinosa Vera, para su evaluacin iniciando as el proceso de retroalimentacin. Retroalimentacin Durante la revisin de la WebApp fueron sealados una serie de cambios tanto a nivel de interfaz como a nivel de programacin. Nivel de interfaz. El banner de la WebApp se tuvo que hacer ms pequeo y debido a eso cambio su diseo. La fuente y formato de la WebApp se tuvo que hacer ms pequea para los anlisis. Permitiendo que sean visibles a primera vista an en resoluciones bajas de monitor. La presentacin de los anlisis tuvo que cambiarse de posicin, en vez de desplegarse de forma vertical se deban desplegar horizontalmente, logrando que sea ms agradable a la vista del usuario y que el ancho de la pantalla sea mejor aprovechado. Se quit el logo de vivir mejor, para mejorar la vista de la WebApp. Los colores de los anlisis se cambiaron de verde a blanco. Nivel de programacin. Se desarroll un men principal en el que fuera ms fcil tener acceso a la informacin y a los departamentos a los que el usuario tenga privilegios.
77
Se cre un panorama general Delegacional por departamentos, en el que se muestre la informacin de cada indicador de cada departamento de forma sintetizada para el usuario y que permita desglosar dicha informacin por niveles. Se recodificaron las secciones de cdigo donde se utilizaban mtodos que manipulaban resultados con punto decimal ya que el servidor institucional que aloja la WebApp se encuentra configurado en ingls. Se increment la seguridad en la WebApp y se asignaron privilegios y permisos de accesos as como roles de usuario, adems se desarroll un mecanismo de cierre de sesin para cada usuario de la WebApp. Se desarrollaron los anlisis con un nivel de profundidad de varios niveles, permitiendo al usuario poder visualizar la informacin de lo general a lo particular, esto es mostrando la situacin delegacional al principio permitiendo al usuario desglosar dicha informacin, si as lo requiere, por las unidades que constituyen la Delegacin Estatal de Puebla en cada uno de sus departamentos. Una vez terminadas las mejoras antes mencionadas en la retroalimentacin la WebApp fue entregada y aceptada por la Lic. Yadira Estrada Izucar y el Lic. Jefte De Jess Espinosa Vera logrando el incremento de la misma y terminando la versin final de la WebApp.
78
Requerimientos de Hardware para el funcionamiento de la WebApp. Servidor Web con soporte de conexiones mltiples, disco duro de 40 GB, memoria RAM de 512 MB y tarjeta de red 10/100 Mb como mnimo. Red de computadoras con acceso al servidor web.
Requerimientos de Software para el funcionamiento de la WebApp. Sistema operativo Microsoft Windows Server 2000 con IIS activado y configurado correctamente. SQL Server 2000 configurado para ser utilizado con el usuario ASP.NET. .Net Framework. Internet Explorer 6.0 o superior.
Instalacin y configuracin de la WebApp. La WebApp completa se encuentra contenida en un directorio llamado indicadores, el cual es el que debe ser transportado y direccionado para su posterior utilizacin. A continuacin se describen los pasos necesarios para la correcta configuracin de la WebApp. 1. Contando con el directorio indicadores en un medio extrable, se debe copiar dicho directorio a la ubicacin fsica del servidor en el que se alojar la WebApp (ver Figura 31).
79
2. Se debe iniciar el Administrador de Internet Information Services (IIS) y crear un nuevo sitio Web predeterminado direccionndolo al directorio indicadores que se copi anteriormente. La Figura 32 muestra como se debe ver el sitio indicadores al ser configurado.
80
3. Se ha terminado de configurar el sitio indicadores, utilizando el Administrador corporativo de SQL Server debe crearse una nueva base de datos con el nombre indicadores. Se debe desplegar la pestana Bases de datos, clic derecho y seleccionar Nueva Base de Datos, se proporciona el nombre de la base de datos (indicadores) y se aceptan los cambios. La Figura 33 muestra la base de datos creada.
4. Se debe seleccionar la base de datos creada en el paso anterior (indicadores) y seleccionar la pestaa Usuarios para poder configurar los permisos y accesos a la misma. Se debe agregar al usuario ASPNET y se le deben conceder los permisos de public, db_owner, db_datareader y db_datawriter marcando dichas casillas como muestra la Figura 34, por ltimo se deben aceptar los cambios. Con esto se ha logrado configurar al usuario ASPNET, dicho usuario es el utilizado por la WebApp para la manipulacin de la base de datos.
81
5. Por ltimo se deben crear las tablas de la base de datos, se debe seleccionar, en la barra de Men, Herramientas y Analizador de Consultas SQL, se abrir una nueva pantalla direccionando a la base de datos indicadores (ver Figura 35), todos los cambios que se llevan a cabo en esta pantalla afectaran a dicha base de datos.
En el rea en blanco que muestra la Figura 35 se debe colocar el cdigo referente a la creacin de las tablas que conforman la base de datos, una vez que se coloque el cdigo basta con presionar F5 para ejecutar las sentencias Transact-SQL, si existiera algn error se mostrara por pantalla. Con estos pasos se logr instalar y configurar la WebApp en el servidor institucional que actualmente aloja a la misma y sobre el cual se encuentra trabajando.
82
Figura 35. Vista del Analizador de consultas SQL direccionando a la base de datos indicadores.
Manipulacin de la versin final de la WebApp. La WebApp se encuentra alojada en uno de los servidores institucionales de la Delegacin Estatal de Puebla con direccin IP 11.1.22.3 de su red interna. Para poder accesar a la WebApp slo es necesario introducir la siguiente direccin web en el navegador: http://11.1.22.3/indicadores/Default.aspx. Una vez que se ha escrito dicha direccin en el navegador se mostrar la ventana de inicio de sesin o login (ver Figura 36), se debe introducir la informacin requerida, un nombre de usuario vlido (previamente creado) y la contrasea del mismo.
83
Al proporcionar los datos de inicio de sesin se mostrar el Men Principal, el cual mostrar las opciones y los accesos a las secciones de la WebApp a las que se tenga permisos para accesar. La Figura 37 muestra el Men Principal para un usuario con acceso a todos los departamentos, pero sin privilegios administrativos.
Figura 37. Men Principal desplegado para un usuario sin privilegios administrativos.
84
La Figura 38 muestra el Men Principal para un usuario con acceso a todos los departamentos y con privilegios administrativos.
Figura 38. Men Principal desplegado para un usuario con privilegios administrativos.
Las opciones desplegadas en el Men Principal de cada usuario definen las reas o tareas que este puede realizar, la Figura 39 muestra el Men Principal de un usuario con todos los privilegios y permisos totales sobre la WebApp, incluidos privilegios administrativos, acceso a todos los departamentos y permisos de captura, anlisis delegacional y anlisis por unidad.
Figura 39. Men Principal mostrado a un usuario con permisos y privilegios totales.
85
Una vez que el usuario ha iniciado sesin correctamente ya puede empezar a trabajar. La seccin izquierda del men muestra los departamentos a los cuales tiene acceso (ver Figura 40a). Al seleccionar un departamento se mostrar en la parte de la derecha los indicadores de dicho departamento (ver Figura 40b), y al seleccionar un indicador se mostrar en la parte inferior del men las acciones que puede realizar sobre dicho indicador (captura, anlisis y anlisis por unidad) (ver Figura 40c).
40a
40b
40c
Genricamente, cada indicador de cada uno de los departamentos cuentan con las secciones de captura de datos, anlisis delegacional de informacin y anlisis de informacin por unidad. Dependiendo el indicador se deber capturar la informacin informacin. A pesar de que cada departamento cuenta con sus propios indicadores los procesos de captura de datos y generacin de anlisis son similares an cuando para cada uno de ellos se capture y procese informacin completamente diferente. referente al mismo y los anlisis se generarn en base a dicha
86
Como se ha mencionado las opciones para cada indicador se encontrarn habilitadas en el Men Principal del usuario siempre y cuando cuente con los permisos necesarios para dicha opcin. La Figura 41 muestra el acceso al proceso de captura de datos para un indicador previamente seleccionado.
Cuando la opcin de captura de datos es seleccionada se mostrar en pantalla la pgina que permite capturar la informacin referente a dicho indicador. Las Figuras 42 y 43 muestran pginas de captura de datos.
Figura 42. Captura de datos para un indicador del departamento de Prestaciones Mdicas.
87
Figura 43. Captura de datos para un indicador del departamento de Planeacin y Finanzas.
En las pginas de captura de datos se debe seleccionar el mes del ao en curso para el que es capturada la informacin (ver Figura 44a), capturar la informacin requerida (ver Figura 44b), y por ltimo presionar el botn Guardar para almacenar la informacin del indicador referente al mes seleccionado (ver Figura 44c).
44a
44b
44c
Figura 44. Secciones de las pginas de captura de datos.
88
La Figura 45 muestra el acceso al proceso de anlisis por unidad para un indicador previamente seleccionado.
Figura 45. Opcin de anlisis por unidad para un indicador previamente seleccionado.
Cuando la opcin de anlisis por unidad es seleccionada se mostrar en pantalla la pgina que permite visualizar el anlisis del indicador seleccionado para la unidad a la que pertenezca el usuario (ver Figura 46).
Figura 46. Pgina de anlisis por unidad para un indicador del departamento de Servicios de Personal.
Las pginas de anlisis por unidad, al momento de ser cargadas, muestran el anlisis de dicho indicador en el ao en curso para la unidad a la que pertenece el
89
usuario, sin embargo, es posible seleccionar el ao para el que desea generar el anlisis en cuestin. La Figura 47 muestra el acceso al proceso de anlisis para un indicador previamente seleccionado.
Cuando la opcin de anlisis es seleccionada se mostrar en pantalla la pgina que permite visualizar el anlisis delegacional del indicador seleccionado para el ao en curso (ver Figura 48).
90
En las pginas de anlisis es posible seleccionar el ao para generar el anlisis delegacional del indicador en el periodo seleccionado (ver Figura 49a), en la parte derecha de la pgina se despliega el anlisis por mes con su porcentaje situacional correspondiente (ver Figura 49b), dichos porcentajes son enlaces para conocer la situacin del indicador pero ahora para cada una de las unidades que componen la Delegacin Estatal de Puebla. Para generar el anlisis de un ao determinado se debe seleccionar el ao en cuestin y presionar el botn Generar Anlisis (ver Figura 49c).
49a 49c
49b
Al seleccionar y presionar alguno de los enlaces que se muestran en la Figura 49b automticamente se mostrar en pantalla el anlisis por unidad del indicador seleccionado en el mes y ao seleccionados. La Figura 50 muestra el anlisis por unidad para el indicador Supervisin trimestral a espacios y condiciones para resguardo de bienes enajenados del departamento de Afiliacin y Cobranza para el periodo Febrero 2009.
91
Figura 50. Pgina de anlisis por unidad derivado del anlisis delegacional para un indicador del departamento de Afiliacin y Cobranza.
Por ltimo sern descritas las opciones superiores del Men Principal, las cuales sern habilitadas de acuerdo a los permisos y privilegios de cada usuario, excepto la opcin de Cerrar Sesin, la cual se encuentra disponible para todos los usuarios de la WebApp. La opcin Situacin Actual Delegacional del Men Principal proporciona un anlisis por departamentos de la Delegacin Estatal de Puebla (ver Figura 51), muestra el porcentaje de cumplimiento del perodo anterior (ao pasado) y la situacin actual (ao en curso o perodo actual) de cada uno de los indicadores que son monitoreados en cada departamento, adems cada valor del perodo actual es un enlace al anlisis delegacional de dicho indicador (ver Figura 51a) y basta con presionar dicho enlace para ser redireccionado al anlisis delegacional en cuestin.
92
51a
93
La opcin Registro del Men Principal sirve para dar de alta a nuevos usuarios de la WebApp pero se necesitan permisos administrativos para poder realizar dicha tarea, al seleccionar dicha opcin se mostrar la pgina de Registro de usuarios (ver Figura 52).
52a
Figura 52. Pgina de Registro de Usuarios.
Como puede observarse en la Figura 52 se debe introducir la informacin referente al nuevo usuario, sus datos de cuenta, datos personales y contractuales, unidad a la que pertenece, as como los permisos y reas a las que puede accesar. Al crear a un nuevo usuario, este tendr como mximo los mismos permisos y privilegios de acceso que el usuario que lo est creando, es decir, si el usuario slo cuenta con permisos de captura y creacin de usuarios, el nuevo usuario slo podr tener dichos permisos ms no los permisos referentes a los anlisis por unidad y delegacional.
94
Al terminar de introducir los datos del nuevo usuario se debe presionar el botn Crear Usuario (ver Figura 52a) para que este quede registrado en la WebApp. La ltima opcin del Men Principal es Cerrar Sesin la cual, al ser presionada, muestra la pgina de cierre de sesin de trabajo (ver Figura 53) la cual muestra un pequeo mensaje informativo y las opciones de Cerrar Sesin (ver Figura 53a) y Continuar Trabajando (Ver Figura 53b), las cuales describen a la perfeccin sus funciones.
53a
53b
Es muy importante que los usuarios cierren su sesin mediante este mecanismo, ya que de esta forma se garantiza un manejo seguro de cuentas y se evitan problemas de suplantacin de usuarios y mal manejo de informacin. Adicional a lo anterior la WebApp cuenta con un mecanismo de cierre de sesin automtico tras 30 minutos de actividad, despus de ese tiempo el usuario debe iniciar sesin nuevamente logrando que cuando la estacin de trabajo se deje sola no se le d un uso indebido a la cuenta de usuario de la WebApp.
95
Genricamente los enlaces definidos como Regresar en toda la WebApp redireccionan al Men Principal y los enlaces Regresar que se encuentran en los anlisis por unidades derivados de anlisis delegacionales redireccionan a dicho anlisis delegacional.
96
Vigilar que el Agente SQL Server se encuentre activo y funcionando correctamente, sobre todo despus de que el servidor se recupere de un fallo o se reinicie.
Crear en los usuarios de la WebApp la buena costumbre de Cerrar Sesin y no slo cerrar el navegador, ya que de esta forma la WebApp garantiza la integridad y el buen de sus cuentas de usuario.
Fundamentos y modelos de Bases de Datos Adoracin de Miguel Mario Piattini Segunda Edicin Alfaomega Ra-Ma
Fundamentos de Bases de Datos Abraham Silbertschatz, Henry F. Korth, S. Sudarshan Quinta Edicin Mc Graw Hill
http://www.formaselect.com/curso/experto-en-sql-server-2000/Introducciona-SQL-Server%202000.pdf
http://www.canalvisualbasic.net/manual-net/vb-net/
97
http://es.kioskea.net/contents/bdd/bddansi.php3
http://www.mae,lkstrosdelweb.com/principiantes/%C2%BFque-son-lasbases-de-datos/
http://anamaigua.blogspot.com/2009/06/ingenieria-web.html
98