Mini Aplicacion de ejemplo del Lanzamiento de VS2010

En los diferentes eventos de lanzamiento, en la charla de “Mejoras en el IDE de Visual Studio 2010” estamos utilizando una mini aplicación para las demos. Como os comento en los eventos presenciales, es una aplicación MUY sencilla conceptualmente y de implementación, no esperéis una referencia de best practices o algo de copiar y pegar que solucionará vuestro proyecto porque no lo es 🙂

La comparto porque creo que puede servidos para cotillear el funcionamiento de algunas cosas:

ASP.NET MVC

Al estar basada en MVC, se puede apreciar el funcionamiento básico de ASP.NET MVC en una aplicación web fuera de la demo del hola mundo ( Aunque la aplicación es poco más que eso ^^ ).

TDD

Sigue desarrollo orientado a pruebas, con tests que van un pelo más allá de la típica suma que solemos ver en los eventos. Así, si alguien no ha hecho nunca TDD puede ver el tipo de tests que se pueden hacer.

Moq  ( code.google.com/p/moq )

A la hora de probar el código, hacen falta mocks que simulen el comportamiento de clases que no queremos utilizar. Por ejemplo, si estoy probando que funciona el apartado de añadir mensajes en la capa de negocio, no tengo pq meter un mensaje en la BBDD, no hay que llegar hasta ahí pq estaríamos probando más cosas que la capa de negocio. Con un mock se simula el comportamiento sin tener que utilizar la clase de acceso a datos. En la aplicación se utiliza el framework Moq para los mocks.

Unity ( unity.codeplex.com )

Para tener cierto desacoplamiento en la aplicación se utiliza Unity como inyector de dependencias.

Diseño

Verás como NO diseñar una aplicación web ^^

 

Prerequisitos

VS 2010. Sip sé que muchos no lo tenéis aun instalado, pero entendedme… era la demo del lanzamiento de VS2010 😉

SQL Server express o similar.

¿Complicado eh?

Los proyectos

La solución es una página web donde se pueden dejar mensajes al estilo twitter. Tiene 4 proyectos y una carpeta con los scripts para la BBDD.

FakeTwitter.Core

Tiene la entidad Mensaje que representa los mensajes de los usuarios y las interfaces. En el caso de esta app solo tiene una, que representa el repositorio de acceso a datos.

FakeTwitter.Data

La clase que implementa el interfaz de acceso a datos. El proyecto tiene una macro para copiar la dll resultante a FakeTwitter.Web.

FakeTwitter.Tests

Pruebas de los controllers web y de la entidad mensaje. No he incluido pruebas del repositorio de datos. Aquí es donde se usa Moq en algunos tests para representar el almacén de acceso a datos.

FakeTwitter.Web

La aplicación MVC. Además se le ha incluido código para que cada vez que se cree un controller, esta creación pase por Unity para que se le pueda inyectar el Repositorio de datos adecuado. En el caso de esta aplicación es la DLL resultante de FakeTwitter.Data, por eso la copiamos desde su proyecto. No añado una referencia directa para evitar acoplamiento. Si mañana hay otra implementación del repositorio, se añade a la configuración de Unity, se cambia la DLL y listo ^^

Para arrancar esa configuración en Unity se empieza desde el application_start del global.asax

Sisisi… que no se me olvida,aquí esta el enlace a la demo ^^

Sé que no es mucho, pero a los que estáis más verdes en alguno de los temas espero que os sirva de ayuda!!

Happy Hacking

~ds

PD –> Pq una web estilo twitter y no un cliente de twitter?? Es simple… pq twitter está casi siempre caido y nos fastidiaría las demos en el lanzamiento 😛

PD2-> Cualquier feedback es bien recibido,  gracias!!

Publicado por

4 comentarios en “Mini Aplicacion de ejemplo del Lanzamiento de VS2010”

  1. Cuando lo ejecuto con VS2010 después de ejecutar los SQLs
    me da un error justo después de compilar

    Descripción: Error durante el procesamiento de un archivo de configuración requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el archivo de configuración en consecuencia.

    Mensaje de error del analizador: Se ha producido un error al crear el controlador de sección de configuración para unity: No se puede cargar el archivo o ensamblado ‘Microsoft.Practices.Unity.Configuration, Version=2.0.315.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)

    Línea 10:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *