Por parte del equipo se miro la dificultad de crear la base de datos y la pagina web la cual al final se tuvo que hacer en localhost ya que se venció la cuenta de azure donde se planeaba subir dicha pagina con su respectiva base de datos.
Se empezara el análisis punto por punto con los requerimientos del profesor:
+ Los SP de todas las actualizaciones (inserción, modificación y borrado de cada entidad) :
En este apartado no fue de mucha dificultad hacer todos los SP ya que no es difícil hacer un Update ni una inserción, lo que no se pude hacer del todo bien fue los SP de Eliminación ya que el profesor informo un después (ya toda la base de datos estaba diseñada y con datos almacenados y cargados) que este "delete" era de forma logica cambiando un bit que deberia existir en las tablas pero este no se pudo implementar por dichas razones.
Tiempo planeado: 2:5 horas
Tiempo real de implementacion: 1:30 horas
+ El SP que procesa los resultados de una carrera (la entrada es un archivo XML con la información de las posiciones y las sanciones), acumulando los puntos por posición para cada corredor, acumulando el tiempo, acumulando los puntos de sanción, y el cambio de estado de activo a expulsado.
Este Stored Procedure no fue muy difícil de crear pero si fue un poco tedioso ya que el archivo XML que brindaron los compañeros en sus inicios estaba mal, existían problemas en las posiciones y existían problemas en las sanciones, se logro hacer el insert masivo de dicho XML y se cree que la finalizacion de este XML no sera hasta la ultima hora de proyecto.
Tiempo estimado: 7 horas
Tiempo real: 9 horas (fue mas tiempo porque al ser un insert masivo era un poco mas complicado de escribir el SP ademas se tuvo problemas con las primeras versiones del XML)
+ El SP que lista el reporte de posiciones acumuladas al final de cada carrera
Este sección del proyecto fue de gran dificultad ya que se tuvieron que ingeniar técnicas y investigación de como hacer un cast o un convert de un dato para poder sumar los tiempos que hacen los atletas, después de mucho investigar se logro encontrar dicha forma usando una columna que se llamaba cast y lograba transformar el time en int el cual ya se podía acumular para poder hacer la suma.
Tiempo estimado: 4 horas
Tiempo real: 6:30 horas
+ El SP que lista los corredores expulsados o que faltaron a carreras
En la dicha parte del proyecto se presentaron problemas de como poder hacer un Inner Join Inverso (es decir que diera los datos no relacionados) pero con investigación y practica se encontró la función de Except la cual permitió que dicha tarea fuera un poco mas sencilla de hacer usando 2 consultas sencillas se puedo verificar este dato de manera sencilla, usando una consulta sobre que carreras había ido el corredor y otra consulta que determinaba cuantas carreras podía ir el corredor por campeonato y el except saca la intersección y asi determina a cuales carreras no fueron algunos corredores.
Tiempo estimado: 6 horas
Tiempo real: 4 horas
+ Los SP para cargar datos básicos (campeonatos, carreras, corredores, tipos de sanción, tipos de movimiento)
Los Stored Procedure para dicha labor eran sencillos y se desarrollaron de manera rápida y eficaz los cuales fueron sencillos de realizar ya que eran inserciones y updates simples los cuales hacen la tarea fácil.
Tiempo Estimado: 7 horas
Tiempo Real: 4:30 horas
El código en capa lógica:
+ La suscripción de corredores a un campeonato (debe ser una página web)
Por un momento esta seccion del proyecto fue duro ya que no se tenia muy claro de que tecnología se usaría (javascript, php, python o C#) al final se decidió manejar la pagina web en C# asp.net ya que da gran facilidad para integrar las bases de datos de sql server ya que son del mismo desarrollador.
Tiempo estimado: 12 horas
Tiempo real: 8 horas
+ El mantenimiento de campeonatos y carreras en campeonato.
Se pudo hacer esto de buena manera aunque existe un problema con el Update del corredor pero se llego a la conclusión de que C# esta teniendo un Bug ya que al hacer el Update desde capa de datos este se hace de manera correcta usando el mismo SP y a la hora de hacer dicho procedimiento en la capa logica este no funciona aunque por un error del programador de la pagina se encontró que el SP si funcionaba ya que confundió entre 2 textbox y los intercambio y en la capa de datos hubo un cambio.
Tiempo estimado: 7 horas
Tiempo real: 6 horas
+ La consulta de los corredores del reporte de posiciones y expulsados
Finalmente se dio unos grandes errores por parte de del C# ya que a veces no determina los datos de los gridview y esto era un poco molesto ya que muchas veces le daba un bug a la pagina web, con el tiempo se descubrió que el error podía ser solucionado si y solo si se usaba un panel el cual contendría al gridview y este asi dejaba de buggear de manera repetitiva, por lo demás la creación de los reportes es muy sencilla ya que se usaban SP ya creados y simplemente se incluían en un Gridview y listo.
Tiempo estimado: 4:30
Tiempo real: 5:30
Moralejas del proyecto:
-Manejar mejor los datos desde código y no jalando botones ya que estos hacen que los sistemas sean menos flexibles y genera mucho código basura.
-Usar master page: En estos tiempos que el código se reutiliza mucho para hacer un ecosistema de paginas similares por lo general se copia muchas veces el codigo, gracias a las master page que ofrece C# se pudo hacer una plantilla la cual todas las paginas usan y ahorra mucho el trabajo en programar.
-Manejar inserts masivos es mucho mejor con alto volumen de datos, ya que en esta tarea se hizo un insert masivo y no se vio mucho la diferencia con un insert normal pero se sospecha que es mejor.
-Usar Variables tablas hace cómodo la modificación de datos los cuales no se quieren cambiar del todo.
Tiempo total del proyecto: 45 horas