August 2006 - Artículos

Código fuente del Fútbol Chapa

Por fin me decido a dar el paso… Para los que no conozcáis la historia este año hicimos una gira de sesiones técnicas de Visual Studio 2005 por varias ciudades en España. Fue divertido porque intentamos que no fuera un evento de marketing sino algo muy práctico donde se pudiera aprender a desarrollar una aplicación real. En cada sesión desarrollábamos una pieza de una aplicación de ejemplo, todo gestionado con Team System y utilizando casi todas las tecnologías de desarrollo: SQL Server 2005, ADO.NET, Windows Forms, ASP.NET, Compact Framework, Servicios Web…

La temática de la gira fue el mundial de fútbol así que la aplicación que elegimos para desarrollar fue un juego de Fútbol Chapa, aquí tenéis una captura:

Hay que reconocer que tuvo mérito usar todas estas tecnologías con un juego y no con una aplicación de gestión tradicional (gracias a Luis, Aurelio y al resto que lo hicieron posible!). Desde entonces muchos os habéis interesado por la aplicación, sobre todo para ver en detalle el código fuente que hicimos deprisa y corriendo durante el evento. Llevo todo este tiempo intentando paquetizarla y colgarla en la web oficial del lanzamiento, pero mañana me voy de vacaciones y sigo sin sacar ese rato para hacerlo… En resumen, aquí tenéis todo el código fuente en bruto, sin paquete de instalación. La solución está compuesta por 8 proyectos:

  • AccesoDatos: Capa de acceso a datos, con las entidades de la aplicación y los TableAdapters de acceso.
  • CapaNegocio: Lógica de negocio, con la física de las chapas, la lógica del juego, la seguridad y la transaccionalidad.
  • FutbolChapaSql: Proyecto de SQL Server 2005 con un procedimiento almacenado en .NET que calcula las distancias recorridas por los jugadores.
  • FutbolChapaWin: Aplicación WinForms de mantenimiento de jugadores e informes.
  • FutbolChapaWinControl: Tablero de juego en GDI+ incrustado en un control, para poder reaprovecharlo en otra aplicación o en una página web.
  • FutbolChapaWeb: Frontal web con webparts que muestran información de las ligas, los jugadores y un informe. Incluye un proveedor de seguridad Membership y una página web donde jugar online al Fútbol Chapa.
  • FutbolChapaWS: Fachada de servicios web de la capa de negocio, para acceder desde otros sistemas o desde los clientes ricos.
  • JuegoWin: Sencilla aplicación Windows Forms que hospeda el control de tablero para echar una partidita.

Si queréis poner a funcionar este código es necesario efectuar algunas operaciones de instalación manualmente (lo siento, no tendremos instalador de momento):

  • Adjuntar la base de datos (carpeta DB) a una instancia de SQL Server 2005.
  • Configurar la seguridad de la base de datos. Por defecto utiliza autenticación integrada así que es necesario añadir el usuario ASPNET (WinXP) o NETWORK SERVICE (Win 2003) con permiso lectura / escritura en la base de datos adjuntada. Es posible también crear un usuario de SQL específico y cambiar la cadena de conexión en el archivo de configuración.
  • Crear dos directorios virtuales para el frontal web y los servicios web (carpetas FutbolChapaWeb y FutbolChapaWS).
  • La capa de negocio utiliza transacciones distribuidas, por lo que es necesario tener arrancado el DTC (servicio Distributed Transaction Coordinator)
  • Habilitar el CLR en SQL Server (sólo para el proyecto FutbolChapaSql). Más info aquí.

No me suelen gustar los disclaimers pero esta vez sí tengo que hacer uno: si queréis una aplicación didáctica, soportada, con instalación automática y tutoriales de su implementación os recomiendo MSDN Video. Tenéis la versión 2003 en el enlace y estamos trabajando en una versión 2005 que colgaremos en el mismo sitio.

Si aún así quieres seguir adelante, aquí tienes el código fuente completo del Fútbol Chapa.

Ea, a echar unas partiditas!

Código fuente del Fútbol Chapa

Por fin me decido a dar el paso… Para los que no conozcáis la historia este año hicimos una gira de sesiones técnicas de Visual Studio 2005 por varias ciudades en España. Fue divertido porque intentamos que no fuera un evento de marketing sino algo muy práctico donde se pudiera aprender a desarrollar una aplicación real. En cada sesión desarrollábamos una pieza de una aplicación de ejemplo, todo gestionado con Team System y utilizando casi todas las tecnologías de desarrollo: SQL Server 2005, ADO.NET, Windows Forms, ASP.NET, Compact Framework, Servicios Web…

La temática de la gira fue el mundial de fútbol así que la aplicación que elegimos para desarrollar fue un juego de Fútbol Chapa, aquí tenéis una captura:

Hay que reconocer que tuvo mérito usar todas estas tecnologías con un juego y no con una aplicación de gestión tradicional (gracias a Luis, Aurelio y al resto que lo hicieron posible!). Desde entonces muchos os habéis interesado por la aplicación, sobre todo para ver en detalle el código fuente que hicimos deprisa y corriendo durante el evento. Llevo todo este tiempo intentando paquetizarla y colgarla en la web oficial del lanzamiento, pero mañana me voy de vacaciones y sigo sin sacar ese rato para hacerlo… En resumen, aquí tenéis todo el código fuente en bruto, sin paquete de instalación. La solución está compuesta por 8 proyectos:

  • AccesoDatos: Capa de acceso a datos, con las entidades de la aplicación y los TableAdapters de acceso.
  • CapaNegocio: Lógica de negocio, con la física de las chapas, la lógica del juego, la seguridad y la transaccionalidad.
  • FutbolChapaSql: Proyecto de SQL Server 2005 con un procedimiento almacenado en .NET que calcula las distancias recorridas por los jugadores.
  • FutbolChapaWin: Aplicación WinForms de mantenimiento de jugadores e informes.
  • FutbolChapaWinControl: Tablero de juego en GDI+ incrustado en un control, para poder reaprovecharlo en otra aplicación o en una página web.
  • FutbolChapaWeb: Frontal web con webparts que muestran información de las ligas, los jugadores y un informe. Incluye un proveedor de seguridad Membership y una página web donde jugar online al Fútbol Chapa.
  • FutbolChapaWS: Fachada de servicios web de la capa de negocio, para acceder desde otros sistemas o desde los clientes ricos.
  • JuegoWin: Sencilla aplicación Windows Forms que hospeda el control de tablero para echar una partidita.

Si queréis poner a funcionar este código es necesario efectuar algunas operaciones de instalación manualmente (lo siento, no tendremos instalador de momento):

  • Adjuntar la base de datos (carpeta DB) a una instancia de SQL Server 2005.
  • Configurar la seguridad de la base de datos. Por defecto utiliza autenticación integrada así que es necesario añadir el usuario ASPNET (WinXP) o NETWORK SERVICE (Win 2003) con permiso lectura / escritura en la base de datos adjuntada. Es posible también crear un usuario de SQL específico y cambiar la cadena de conexión en el archivo de configuración.
  • Crear dos directorios virtuales para el frontal web y los servicios web (carpetas FutbolChapaWeb y FutbolChapaWS).
  • La capa de negocio utiliza transacciones distribuidas, por lo que es necesario tener arrancado el DTC (servicio Distributed Transaction Coordinator)
  • Habilitar el CLR en SQL Server (sólo para el proyecto FutbolChapaSql). Más info aquí.

No me suelen gustar los disclaimers pero esta vez sí tengo que hacer uno: si queréis una aplicación didáctica, soportada, con instalación automática y tutoriales de su implementación os recomiendo MSDN Video. Tenéis la versión 2003 en el enlace y estamos trabajando en una versión 2005 que colgaremos en el mismo sitio.

Si aún así quieres seguir adelante, aquí tienes el código fuente completo del Fútbol Chapa.

Ea, a echar unas partiditas!

Publicado por .NET con tropezones

Esta letra no es tan bonita

Pero es mía! Ha llegado a mis manos un enlace a los power toys para Tablet PC:

http://www.microsoft.com/spain/windowsxp/downloads/powertoys/tabletpc.mspx

Además de juegos y chorradillas varias incluye una utilidad llamada My Font Tool que te permite compilar una fuente TTF a partir de tu propia escritura. Utilidad ninguna pero siempre hace ilusión ver una aplicación C# de tu puño y letra:

De obras…

He tenido que hacer unos pequeños ajustes en el blog. Mi nombre de usuario incluía la dirección completa de mi email y todos los robots del mundo se han tirado a mi cuello. La parte buena es que si alguien quiere invertir con el jefe de estado de Gambia, cobrar mi premio de 150.000 dólares en un casino o agrandar alguna parte de su cuerpo puedo pasarle los contactos apropiados…

En fin, ya tengo cambiado mi nombre de usuario pero he tenido que borrar los mensajes antiguos con lo que se han perdido los comentarios, como diría el personal de tierra del Prat “perdón por las molestias que haya podido ocasionar”.

De obras…

He tenido que hacer unos pequeños ajustes en el blog. Mi nombre de usuario incluía la dirección completa de mi email y todos los robots del mundo se han tirado a mi cuello. La parte buena es que si alguien quiere invertir con el jefe de estado de Gambia, cobrar mi premio de 150.000 dólares en un casino o agrandar alguna parte de su cuerpo puedo pasarle los contactos apropiados…

En fin, ya tengo cambiado mi nombre de usuario pero he tenido que borrar los mensajes antiguos con lo que se han perdido los comentarios, como diría el personal de tierra del Prat “perdón por las molestias que haya podido ocasionar”.

Publicado por .NET con tropezones