lunes, 6 de octubre de 2014

Entrada 11

Conclusiones del proyecto:


Aprendizaje de SQL sintaxis

¿Qué es?

SQL (Structured Query Language) es un lenguaje orientado a trabajar con bases de datos relacionales. Es de fácil aprendizaje y es muy popular.

Tipos de Datos utilizados.

·         +Varchar (largo): Almacena cadenas de caracteres de tamaño menor o igual al largo.
·         +Int: Variable que funciona para guardar tipos de datos numéricos con una capacidad similar a la de un entero en C.
·         +Bit: Sería el equivalente a lo que en Java un tipo de dato booleano 1 si true 0 si false.
·         +Money: Es el tipo de dato por excelencia para almacenar datos numéricos que ocupan una gran precisión.
·         +Date: Guarda los datos de la fecha actual como mes, hora, día, año, etc.

·         +Nchar (largo): Al igual que varchar almacena una cadena de datos sin embargo este tiene un tamaño estrictamente igual al largo indicado.

a




Palabras Reservadas más importantes:

·         +Select: Genera una vista de cierta
·         +From: Indica de que tabla se desean sacar los resultados.
·         +Where: Sirve para extraer aquellos datos que cumplen con la condición.
·         +Update: Sirve para actualizar los datos en una determinada table.
·         + Insert into: Ingresa nuevos datos o registros en la tabla.
·         +Declare: Es una manera de declarar las variables locales.
·         + BEGIN TRANSACTION: Nos indica el inicio de una transacción local.
·         +Set: Cambia el valor de una variable local o de una tabla.

FFunciones Agregadas Utilizadas:

     + GetDate() : una de las funciones mas utilizadas en el proyecto y sirve para obtener la fecha actual del sistema.

     + DateAdd(datepart,number,date) : utilizada para incrementar el atributo ultimoCorte de la empresas en el procedure que genera las planillas.

     + DateName(datepart,date): utilizado tambien en el procedure de planillas para verificar que hoy fuera el dia de corte y poder realizar el procedure.

     + Convert(type,value): esta funcion se empleo en casi la mayoria de procedures que involucran la lectura de archivos para poder convertir los valores recibidos a los necesarios en la base de datos.

     + ISNULL(expression, newvalue): utilizada en el generador de planillas para evitar problemas con posibles nulls que puedan surgir

     + SUM(tableRow)esta funcion fue necesaria para sumar todas las horas de los movimientos de cada empleado para obtener el total de horas trabajadas de cada tipo.

     + Count(rows) con esta funcion se cuentan las filas de una tabla y nos sirvio para poder iterar en las tablas variantes.

     CHARINDEX(char,expression)  esta funcion fue necesaria para la lectura de archivos en la cual los datos estaba separados por un '/' pues asi se obtenia el indice de dicho caracter en un varchar dado.

     SUBSTRING(expression,start,end) empleada de igual manera en la lectura de archivos, para una vez obtenido el start   y end utilizando la funcion anterior ya con esta funcion se podian extraer los datos.


Stored Procedures

¿Qué son los stored Procedures?
·         Los Stored Procedures o procedimientos almacenados son  procesos que se almacenan en las bases de datos. Fueron  de gran ayuda en la tarea programada debido a que hicieron de la aplicación de escritorio una aplicación con un código más limpio para poder evitar los “software smells”.

Y en total se crearon 26 procedimientos almacenados:


Diagramado (Modelo de datos)

El diagramado fue la clave principal para resolver el problema ya que se va estructurando de una manera ordenada la solución. El uso de patrones de diseño en la base fue de gran ayuda para pensar en la solución del problema, claramente, hubo que hacer pequeñas modificaciones en el proceso de la construcción de bases sin embargo no fueron tantas como si no se hubiera hecho el diagrama desde el principio. En el proceso de construcción primero se analizó el mapa conceptual brindado por el profesor en clase después de varias horas de discusión y análisis, se pasó a la construcción del modelo físico el cual fue construido minuciosamente para no tener problemas posteriormente con valores nulos(para evitarlos para optimizar la consulta) foreign keys y Primary keys. El diagrama final quedó así y para su confección se utilizó el SQL Server 2012:


Herramientas de SQL Server 2012

El SQL Server 2012, puede ser una herramienta de gran utilidad si se saben utilizar todas sus herramientas, ya se mencionó anteriormente una el creador de diagramas, sin embargo existen otras herramientas como por ejemplo:

·         +Creador de Queries: O bien creador de consultas, esta herramienta es útil si se desea probar algún Stored Procedure o bien verificar la validez de los datos.

·         +Backups: La creación de Backups es una gran idea debido a que de vez en cuando pueden haber problemas con la base entonces tener un respaldo en la nube o bien en el escritorio es de gran ayuda.

·         +Entorno organizado: SQL Server 2012 basa su interfaz gráfica en Visual Studio 2012 lo que hace que este sea muy intuitivo para los usuarios que ya usaron este entorno, sin embargo hay que analizar más a fondo (pero no difícilmente) ya que no se trata de simples programas, ahora se trabaja con bases de datos.


Aprendizaje de un nuevo lenguaje C#

Se sabía de cursos anteriores el lenguaje de programación JAVA un lenguaje de alto nivel que por lo general su uso es bastante sencillo y uno de los lenguajes más utilizados a nivel mundial, sin embargo se presentaron muchas dificultades a la hora de unir la base de datos con la aplicación de escritorio, por lo tanto se buscaron recomendaciones de grupos de trabajo que anteriormente llevaron el curso con el profesor Franco Quirós, y recomendaron utilizaron C#, lenguaje que tiene la desventaja que solo funciona en Windows, sin embargo tiene la gran ventaja de que para conectar la aplicación de escritorio no se demora en escribir un par de líneas de código y realizar un par de ajustes en el proyecto de C# y listo! La base de datos se conectará sin ninguna complicación.

Trabajo en Grupo

Los primeros días de trabajo fueron duros para lograr por así decirlo una sincronización efectiva del grupo sin embargo con el paso del tiempo, fue siendo un grupo más compenetrado y organizado con su tiempo con las horas de trabajo, a pesar de la distancia se logró tener ciertas reuniones vía Skype para poder trabajar en conjunto.

Herramienta Visual Studio 2013

Visual Studio 2013 es el sucesor de Visual Studio 2012 y es el entorno con el que se trabajó con el lenguaje C#  J, como se utilizó Visual Studio 2012 para la base de datos se encontraron varias diferencias todas a favor de la versión nueva como por ejemplo:
La rapidez con la que ejecutaba las predicciones, al iniciar la aplicación se realizaron en casi la mitad del tiempo que se demoraba el VS 2012, esto es una característica importante debido a que hace al programador ganar segundos valiosos que antes no tenía así mejorar su rendimiento con su trabajo.

Posteriormente, para IDE’s como Netbeans y otros es muy incómodo desplazarse entre GUI y la parte del código de este por lo que en VS 2013 se propone al usuario la división de pantallas para darle solución a este problema.




Total de Horas trabajadas:


2 Horas 20 Minutos
2 horas 20 minutos 
2 20 horas
3 horas y 20 minutos
4 horas 
6 horas
2 horas 
2 horas
2 horas
5 horas
3 horas (conclusiones)

Para un total de 34.2 horas










Entrada 10

Acciones Realizadas:

- Por una decision del equipo de trabajo se decidio cambiar la pagina web de php y html5 a asp.net Esto para tener mayor facilidad a la hora de conectar la base de datos con la misma, ya que realizarla con php significaba la instalación y utilización  del programa wamp server, el cual se utiliza como servidor para poder utilizar php y esto le agregaba mucha mas complejidad al trabajo que se iba a realizar, ademas que en .net se cuenta con un elemento de la interfaz especializado para conectarse a una base de datos y ejecutar stored porcedures con mayor facilidad, estas fueron las principales razones para realizar el cambio, para poder realizarlo ademas se requirio aprender el lenguaje para lo cual se consultaron los siguientes links:

                + https://www.youtube.com/watch?v=sfzm9ajnVxk

                + http://msdn.microsoft.com/es-es/library/office/gg278645(v=office.15).aspx

                + http://es.slideshare.net/Benedeti/visual-basic

                + http://msdn.microsoft.com/es-es/library/ke6sh835.aspx

                + http://msdn.microsoft.com/es-es/library/cc464105(v=vs.71).aspx

Estos Links permitieron el correcto aprendizaje del lenguaje para poder realizar con la mayor facilidad posible la pagina web, para mayor simplicidad se realizo toda la aplicación en una sola ventana, pero la misma, muestra su contenido dependiendo de lo que el usuario va a realizar, de esta manera se evita una posible perdida de información entre pagina y pagina , ademas de que se muestra un diseño mas elegante de la misma y mas simple de utilizar para el usuario que para efectos de este proyecto son los empleados de cada empresa, los cuales pueden ser de tipo Empleado normal , y ademas Administradores de empresa, este ultimo a pesar de ser administrador , no deja de ser miembro de la empresa y por lo tanto cuenta con sus planillas respectivas.


-Se realizo un cambio pequeño en el archivo de datos general que este grupo de trabajo se encarga de realizar, el cambio procedió el la inserción de  valores de configuración ya que a solicitud de otro grupo de trabajo se cambio a los valores expuestos por el profesor la clase 20 viernes  3 de Octubre, al final de la modificación el archivo fue subido nuevamente al grupo de google de la clase, y las lineas donde se realizaron los cambios fueron las que muestra la siguiente:


Anterior mente uno de estos valores era un entero con un valor fijo, esto lo pensé de esta manera para que el estudiante tuviera que programar casos para los posibles tipos de los valores de configuración para por el motivo explicado anteriormente tuve que cambiarlo nuevamente.

- Se realizaron algunos cambios en algunos store procedure de nuestra base de datos, esto porque los mismo fueron programados antes de implementar las aplicaciones de administrador y la de usuarios, al crear y empezar a conectar las mismas se requerían realizar algunos cambios, como por ejemplo el procedure SP_MostrarPlanillasAnteriores , que es el encargado de mostrar los datos de las planillas de los empleados en la pagina web, anteriormente recibía como parámetro únicamente la cédula del empleado que iba a consultar su planilla, pero debido a que el usuario solo ingresa su nombre de usuario y su contraseña en la pagina y el nombre de usuario NO es la cedula, entonces se cambiaron los parametros del mismo para que fueran el nombre de usuario y la contraseña, esto genera que en lugar de ser solo una condicion en el "where" fueran dos, y ademas la clave recibida se le debe aplicar la funcion agregada HASHBYTES para poder encritarla y compararla con la que se encuentra en el sistema, pero esto evita que se tenga que llamar a otro procedure para traer la cedula de empleado  poder pasarla como parametro.

Horas Trabajadas:
     3 horas y 20 minutos


Participantes:
     Jonathan Salazar Garcia
     Mariano Montero Muñoz