AppHarbor – Configuraciones de la aplicación y ejecución de tests unitarios

Finalizando la serie de posts sobre AppHarbor, vamos a ver algunos puntos generales sobre esta herramienta, y sobre todo la ejecución de tests unitarios como parte del proceso de integración continua que nos ofrece.

Como vimos en el post inicial de esta serie, una de las cosas que debemos hacer para comenzar a trabajar con AppHarbor es enlazar nuestra aplicación con el repositorio de control de código fuente donde tengamos el código de nuestra aplicación. Esta configuración es el primer paso del proceso de integración continua, ya que luego de esto ante cada vez que se suban cambios al repositorio comenzará descargando el contenido actualizado del mismo.

Una vez finalizado esto, comenzará el proceso de compilación. En el mismo se realizará la descarga de los paquetes NuGet que estemos usando, para luego si realizar la compilación en si del código de la aplicación. Sobre esta tarea AppHarbor nos permitirá elegir dentro de la configuración de la aplicación que configuración de compilación utilizar, lo cual es muy útil cuando tenemos distintas configuraciones para distintos ambientes. Esto será teniedo en cuenta para cuestiones de compilación, pero lo más útil será para aplicar las transformaciones necesarias al archivo Web.config:

AppHarbor - ConfiguracionPublicacion
Selección del perfil de compilación a usar

Leer más »

AppHarbor y Azure: Alternativas para publicar aplicaciones en la nube de forma gratuita

Muchas veces como desarrolladores queremos publicar nuestras aplicaciones, de forma que podamos mostrar el resultado parcial, o que sea utilizada por usuarios finales. Ante esto puedo recomendarles dos alternativas gratuitas muy interesantes: AppHarbor y Windows Azure. Veamos cada una en detalle:

AppHarbor:

AppHarbor se ofrece bajo la arquitectura PaaS, y nos permite correr aplicaciones ASP.NET en la nube. De forma sencilla podremos crear nuestras aplicaciones e integrarlas al repositorio de control de código fuente correspondiente.

Uno de los aspectos característicos que tiene en su funcionamiento son los Add-ons. Por ejemplo, si queremos agregar un motor de base de datos a nuestra aplicación, el mismo será un Add-on. Hay una gran variedad de opciones de Add-ons, y dependiendo de las necesidades que tengamos habrá distintos planes comenzando desde opciones gratuitas hasta algunas pagas con características destacadas.

PublicacionGratuita - AppHarbor
Pantalla de administración de nuestra aplicación en AppHarbor

Leer más »

[Microsoft-Dev-Blog] Azure Web Sites: Configurar integración continua

Buenas, como es costumbre les comparto el post que escribí en el blog Microsoft-Dev-Blog.

En el mismo repasamos como configurar la integración continua en nuestros sitios web de Azure, enlazando nuestros repositorios de control de código fuente. De esta forma ante cada nuevo “Commit” o “Push” (dependiendo del tipo de repositorio que usemos) se sincronizarán los cambios, se realizará la compilación y ejecución de tests (en caso de que existiesen). Si todo esto es correcto, el resultado se publica en nuestro sitio.

La verdad que da una gran flexibilidad ya que podemos configurar casi cualquier tipo de repositorio, y como funcionalidad es muy útil para los equipos de desarrollo..

Como vimos en el post anterior, el uso del servicio sitios web de Azure nos brinda muchas funcionalidades interesantes. Una de ellas es la publicación automática a partir de los cambios en los repositorios de código fuente, o en otras palabras integración continua. Según el artículo Continuous Integration de Martín Fowler, podemos definir la integración continua de la siguiente forma:

La integración continua es una práctica del desarrollo de software, donde los miembros de un equipo integran su trabajo frecuentemente, dando lugar a múltiples integraciones por día. Por cada integración se realiza una compilación automática (incluyendo la verificación de los tests asociados) para detectar errores de integración lo más rápido posible. Muchos equipos coinciden en que este enfoque conduce a una reducción significativa de los problemas de integración y permite que un equipo pueda desarrollar software coherente con mayor rapidez.

Este enfoque, el cual está muy relacionado con las metodologías ágiles, es relativamente sencillo de comprender: la idea es continuamente integrar y encontrar fallas los más pronto posible, además de estar respaldados en un conjunto de pruebas que se ejecutarán en cada integración para garantizar el correcto funcionamiento. A su vez cada miembro del equipo sube al repositorio de código fuente de manera frecuente. Esto permite una “comunicación” más fluida entre el equipo y una reducción de los errores y su impacto.

Después de esta introducción vayamos a la práctica: cómo lo aplicamos en nuestros sitios web de Azure?

Leer el post completo..