miércoles, 31 de octubre de 2007

Creación de un reloj en AJAX

Para todos aquellos que trabajen con .NET es requisito indispensable tener conocimiento de AJAX. Para el resto, AJAX seguirá siendo el principal equipo de fútbol de Amsterdam, pero ese no es el tema...

AJAX (acrónimo de Asynchronous JavaScript And XML) es una técnica de desarrollo web para crear aplicaciones interactivas que permite la ejecución de Scripts en el cliente, ¡sin necesidad de recargas! Con esto se consigue un aumento de interactividad, velocidad y usabilidad.

Pero vayamos a lo práctico; lo que intentaré mostrar en este post es cómo crear un reloj digital usando AJAX, porque para hablar de AJAX ya tenemos la wikipedia o la página oficial de AJAX (en inglés) donde os podréis bajar las extensiones de AJAX, el kit de herramientas y algunos tutoriales.

Pues bien, lo único que necesitamos es añadir en nuestro formulario un ScriptManager, para que funcionen los Scrips de AJAX, y un UpdatePanel en el que introduciremos un Timer y un Label. Veamos el código del formulario:

asp:ScriptManager id="ScriptManager1" runat="server">/asp:ScriptManager>
asp:UpdatePanel id="UpdatePanel1" runat="server">
ContentTemplate>
<%--Cada 1000 milisegundos (1 segundo) llamamos al evento Timer1_Tick--%>
asp:Timer id="Timer1" runat="server" interval="1000" ontick="Timer1_Tick" enabled="false">
/asp:Timer>
<%--La siguiente etiqueta mostrará el reloj--%>
asp:Label id="LReloj" runat="server">/asp:Label>
/ContentTemplate>
/asp:UpdatePanel>
asp:label id="LHoraInicial" runat="server" text="Label">/asp:Label>
asp:button id="Button1" runat="server" text="Button">

Y a continuación veamos el CodeBehind asociado al formulario que contiene sólo los procedimientos de Timer1_Tick y Button1_Click:

Partial Class reloj
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
'Muestro la hora en la que pulsamos el botón en la etiqueta LHoraInicial
LHoraInicial.Text = System.DateTime.Now.TimeOfDay.ToString().Substring(0, 8)
'Habilito el Timer
Timer1.Enabled = True
End Sub

Protected Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs)
'Cada segundo, la etiqueta LReloj se actualizará con la hora actual menos la hora en la que se pulsó el botón, simulando así un reloj digital inicializado en 0:00:00
LReloj.Text = (System.DateTime.Now.TimeOfDay - CType(LHoraInicial.Text, DateTime).TimeOfDay).ToString.Substring(0, 8)
End Sub

End Class

*Notese que faltan las marcas "<" porque blogspot las interpreta y no las muestra como texto.

Empirical-WebGen

Empirical-WebGen es el título de la herramienta Web desarrollada en mi Proyecto Fin de Carrera y en mi estancia como tecnólogo en el grupo de investigación Alarcos. Ésta se encuentra enmarcada en el ámbito de la experimentación en Ingeniería del Software, y tiene por objeto dar soporte al diseño de encuestas y experimentos, a su posterior realización y al análisis de los resultados obtenidos.

El 26 de Junio fue presentado en la 12th International Conference on Evaluation and Assessment in Software Engineering (EASE 2008) un artículo sobre esta herramienta, y que se encuentra disponible este enlace del BCS.

Las principales características de la herramienta son:

- Diseño de encuestas y experimentos, a partir de la definición de tareas (preguntas de tipo Si/No, Verdadero/Falso, Elección Múltiple, Respuesta Abierta, Matriz y ejercicios que permiten subir el archivo de solución).

- Asignación de puntuaciones a las preguntas y corrección automática, lo que permite incluso la creación de exámenes tipo test con la herramienta.

- Registro de usuarios.

- Soporte a la realización de las encuestas y experimentos por parte de los usuarios registrados.

- Administración de usuarios; gestión de permisos.

- Monitorización de las encuestas y experimentos en tiempo real.

- Generación de informes en Crystal Reports (tiempos, respuestas, aciertos/fallos y puntuaciones).

- Disponibilidad en los idiomas Español e Inglés.

Empirical-WebGen se encuentra disponible en http://webgen.webportalquality.com/

GALERÍA DE IMÁGENES:


Mis Encuestas y Experimentos
Realización de un Experimento
Administracion de Usuarios
Administración de Permisos
Diseño de un experimento
Informe de respuestas en Crystal Reports

martes, 30 de octubre de 2007

Bienvenida

Bienvenidos a mi blog personal.

En este espacio iré publicando algunos aspectos prácticos relacionados con el mundo de la informática en general y de las tecnologías con las que trabajo en particular, como por ejemplo .NET, AJAX, Crystal Reports...

Espero que los contenidos puedan ser de utilidad y lo más importante, fomentar y compartir el conocimiento.

"Invertir en conocimientos produce los mejores intereses". Benjamín Franklin