Cifras y Letras

El mes pasado hicimos una formación interna en Microsoft Ibérica. Se trataba de que cada división de Microsoft le explicara al resto cómo aplicaba la visión de Software + Servicios.  No faltó ningún área de Microsoft, pudimos hablar de Software + Servicios en el hogar (Xbox), consumo (Windows Live), grandes sistemas (Oslo), Information Worder (Office Live) y por supuesto el desarrollo.

De esta última parte nos encargamos en mi departamento y aprovechamos para hacer algo divertido. Queríamos enseñar cómo se desarrollan aplicaciones en un modelo de Software + Servicios y nada mejor para eso que crear una aplicación y mostrarla. La idea era crear un pequeño juego muy conocido (Cifras y Letras) y hacer una competición entre todos los empleados. Colgamos la aplicación en la Intranet y anunciamos la competición junto a la convocatoria del evento.

En cualquier "manual del buen padre" te dicen que la mejor manera para que los niños aprendan es jugando. No sé cuánto aplica eso a los adultos pero ya que hacíamos el juego aprovechamos para incluirle mensajes enseñando las diferencias del modelo Software + Servicios con el tradicional. De esta manera queríamos que todos los que jugaran tuvieran la curiosidad de seguir profundizando y que se apuntaran al curso.

Nunca sabremos si fue por el juego o por el tema del curso pero la verdad es que vino mucha gente, tanto presencialmente en la sala como a través de Live Meeting, donde lo retransmitíamos en directo. En fin, fuera lo que fuera quería compartirlo con vosotros así que he colgado la aplicación en Internet para que juegue el que quiera. 

Podéis lanzar el juego en la página pública de Cifras y Letras o en el siguiente botón:

LanzarJuego 

¿Cómo se hizo?

El juego está desarrollado como no en Windows Presentation Foundation. En el servidor, usando WCF y Linq, hemos creado los servicios que permiten jugar online. La aplicación está publicada por ClickOnce para que pueda ser lanzada directamente desde el navegador y permite el funcionamiento offline, para jugar partidas individuales en caso de falta de conectividad con los servicios.

Originalmente el juego estaba publicado en la Intranet de Microsoft. Para mayor comodidad usábamos autenticación integrada Windows, así los empleados no tenían que registrarse y podían usar directamente su usuario del dominio de Microsoft. También tengo que decir que la aplicación no está pensada para correr en Internet, así que si estás buscando una aplicación segura, escalable y con las mejores prácticas de desarrollo te recomiendo MSDN Video.

¿Cuánto hemos tardado?

Para crear el juego hemos participado un desarrollador y un diseñador (gracias Raúl de Plain Concepts). La verdad es que ha sido una delicia comprobar de nuevo que con WPF podemos trabajar en paralelo los dos roles, no hemos tenido ningún problema de integración. Directamente lo que creaba el diseñador era actualizado en la aplicación y viceversa, una delicia para gente como yo con pocas dotes artísticas. Hemos tardado 3 días (o 3 noches...) y funcionó como la seda para los 600 empleados de Microsoft Ibérica. Tengo que decir que claramente en Microsoft somos de ciencias, el juego de las cifras se nos da mucho mejor que el de letras. Entre todos los que participaron sólo hubo una palabra de más de 6 letras pero se consiguieron muchos números exactos, incluyendo alguno espectacular de Ana, una chica de pequeña y mediana empresa que ha arrasado.

¿Puedo acceder al código fuente?

Esa pregunta estando en mi blog sobra :-) Aquí está todo el código fuente.

Nota: Si quieres instalar el servidor del juego localmente tienes que crear un directorio virtual en IIS apuntando al proyecto "ServicioJuego" y adjuntar la base de datos "CifrasYLetras" en tu SQL Server local.

¿Qué pinta tiene?

Aquí tenéis algunas capturas de pantalla:

image Pantalla inicial

image Juego de cifras

image Juego de letras

image Clasificaciones

Eso es todo, si te animas a jugar una partida mi alias en el juego es "David", nos vemos!!

Comments

  • Anonymous
    May 20, 2008
    PingBack from http://dogs-pets.info/dog-training/?p=981

  • Anonymous
    May 20, 2008
    Fantástico David... una vez más fantástico. Que cracks!. :-)

  • Anonymous
    May 21, 2008
    Pues si que quedó bien al final :P Me alegro que todo fuera como la seda...para el proximo tenemos que rizar el rizo! xD Saludetes...

  • Anonymous
    June 18, 2008
    He desinstalado el juego despues de que me diga mil veces que una palabra no esta en el diccionario cuando si lo esta (y llevarme -1 puntos), mientras hay usuarios (como una tal fer.bermejo) que ganan siempre metiendo cualquier combinacion de letras sin sentido. Como demostracion de SOA sera bueno... pero no me extraña que lo hayais hecho en 3 dias... asi esta.

  • Anonymous
    June 18, 2008
    Las palabras se comprueban con el diccionario de la RAE, ¿puedes comprobar si te aparece en www.rae.es? Si aparece está claro que es un bug, ¿podrías pasarme la palabra para probarla? PD. Muy listo fer.bermejo, para acelerar el juego hacemos la comprobación de las palabras en cliente. Eso significa que puedes cambiar el código y modificar esto pero luego nosotros podemos comprobar en servidor... fer.bermejo se acaba de quedar sin puntos :-)

  • Anonymous
    July 03, 2008
    Señor, de su post  en desarrollaconmsdn http://www.desarrollaconmsdn.com/forums/ShowPost.aspx?PostID=511 puede aportar el código fuente ? Algún día podrán en Desarrolla con MSDN alguna aplicación de ejemplo real que hago unos intensivo de acceso a datos, y así poder conocer las soluciones que pueden darse al acceso concurrente a la aplicación si hay muchos usuarios, soluciones para mejorar el rendimiento de la aplicación cuando se tiene muchos datos, mejoras en cuanto a la visualización para evitar parpadeos (flickers), etcétara. Saludos. Gracias. Saludos cordiales.

  • Anonymous
    July 07, 2008
    Hola Espinete! El código es básicamente el del enlace que aparece en ese mensaje a codeproject. Sólo tienes que hacer los cambios que se explican. Sobre la aplicación de ejemplo real con uso intensivo de datos, acceso concurrente, rendimiento, visualización... Estás definiendo a MSDN Video :-) Aquí lo tienes: http://www.desarrollaconmsdn.com/msdn/MSDNVideo2008.aspx David.

  • Anonymous
    March 30, 2009
    Qué vuelvan más tropezones !!! Gracias