.net build rake psake

psake vs. rake para compilaciones.NET



build (3)

Estoy investigando herramientas de compilación para usar con una aplicación ASP.NET MVC 2. Me gusta la idea de utilizar un lenguaje de scripting en lugar de XML, y he reducido mis opciones a psake o rake. No tengo mucha experiencia con Ruby o PowerShell, pero estoy dispuesto a aprender cualquiera. No me importa instalar Ruby en mi servidor de compilación si esa es mi mejor opción.

Nada demasiado complicado o inusual sobre mi construcción. Tendrá que extraer mi fuente de un repositorio de Mercurial, crear una solución de Visual Studio 10, realizar algunas transformaciones de archivos de configuración, crear / ejecutar un script SQL basado en un proyecto de base de datos (Data Dude), replicar Web Publishing de VS, y probablemente hacer alguna otra sincronización básica de archivos.

¿Alguien tiene experiencia con rake y psake que pueda compararlos? ¿Uno tiene una ventaja sobre el otro en términos de características, o simplemente se reduce a la preferencia del lenguaje de scripting?

Gracias por adelantado.

EDITAR: todavía no tengo una solución de CI instalada, pero me estoy inclinando por utilizar TeamCity. Pensé que lo mencionaría en caso de que una herramienta de construcción juegue mejor que la otra.


Si aún no lo has hecho, echa un vistazo a mi proyecto de Albacore. es un conjunto de tareas de rake para construir soluciones .NET y facilitará mucho más el trabajo con Rake para las soluciones .NET. Puede obtener toda la información que necesita de http://albacorebuild.net

Dicho esto, obviamente tengo mis propios prejuicios y preferencias sobre la herramienta que prefiero usar. así que tome esto con un grano de sal y entender mis preferencias ...

..................

Honestamente creo que es menos una cuestión de qué herramienta hace lo que quieres, y más una cuestión de qué herramienta se adapta a tu conjunto de habilidades y nivel de comodidad. tanto psake como rake + albacora tienen prácticamente la misma funcionalidad. ambos trabajan muy bien. ambos hacen su trabajo muy fácil en comparación con otras herramientas. pero tienen diferentes enfoques y mentalidades, basados ​​en sus antecedentes y de dónde provienen.

¿Estás más cómodo con una pila de herramientas que es toda la plataforma de Microsoft? o se siente cómodo con las herramientas que están fuera de la típica pila MS, pero aún así le dan valor a las personas que están creando software en la pila MS.

¿Preferirías tener soporte para tu herramienta de compilación desde el primer momento, con PowerShell? ¿preferiría tener una experiencia similar a la de una CA, con la capacidad de incorporar C # y otro código .NET en su proceso de compilación? ¿Quieres la capacidad de utilizar los diversos complementos para Powershell que ayudan a automatizar varios aspectos de Windows para implementaciones?

¿o preferirías tener un sistema muy abierto y multiplataforma que te brinde una experiencia de lenguaje más natural con el código que escribes, en ruby ​​/ rake? ¿se siente cómodo con las herramientas y comandos de estilo * nix, ssh y la ejecución de procesos remotos para sus implementaciones?

dices que no te importa instalar Ruby en el servidor de compilación, lo que responde a una parte de esta pregunta y te deja abierto a las opciones. Sin embargo, todavía hay muchas preguntas que necesitan ser respondidas.

si está más cómodo con la pila de MS y quiere la experiencia de una herramienta basada en MS, entonces vaya con powershell. si quieres expandir tus horizontes y salir un poco de MS, con un conjunto de herramientas que es fácil de integrar y trabajar, para obtener una idea de lo que es el mundo de Ruby, entonces ve con ruby ​​/ rake / albacora.

Espero que ayude, aunque no te he dado una respuesta directa sobre cuál deberías usar. sin embargo, con suerte te di lo suficiente como para pensar cuál es el mejor para ti / tu equipo.


Tendría que estar de acuerdo con la evaluación de Derick. Realmente depende de si usted y su equipo se sienten más cómodos con Ruby o Powershell (y también con los que aprecia más el aprendizaje). Ambos tienen sus fortalezas y debilidades. Cualquiera es mejor que XML en mi humilde opinión. Y como dijo Derick, yo también tengo mi propio sesgo ya que soy el autor original de psake. :)

Algunas ventajas de psake / PowerShell:

  1. PowerShell ya está instalado en Windows 7 y Server 2008. Fácilmente instalado en XP y 2003.
  2. Se incluye fácilmente con su solución en el control de versiones. (Menos partes móviles)
  3. Puede tomar una línea de comando de PowerShell y pegarlo vertabim en una tarea de psake.
  4. Microsoft y terceros crean muchos cmdlets.
  5. Es probable que los chicos / chicas de TI conozcan algo de PowerShell, lo que puede hacer que se sientan más cómodos al automatizar implementaciones. (El script de despliegue no es un cuadro negro).

Algunas ventajas de Rake / Ruby:

  1. Rake tiene una comunidad más grande, ya que se utiliza ampliamente a través de la comunidad de Ruby.
  2. Ruby es un lenguaje más expresivo que PowerShell, aunque es probable que desee mantener las cosas simples en sus scripts de compilación.
  3. Albacore hace que la construcción de proyectos .NET con rake sea mucho más fácil.
  4. Rake tiene un buen mecanismo de creación de espacios para agrupar tareas.

Ambas soluciones funcionan para que su solución se construya. Elija el que funcione para su equipo. Espero que ayude.


Actualmente estoy desarrollando herramientas de compilación basadas en PowerShell que combinan la configuración XML con la capacidad de usar y ampliar el sistema con PowerShell. Quiero tener herramientas simples de compilación que se puedan ampliar y personalizar para que se ajusten a la mayoría de los procesos de compilación. Aquí está la página de muestra del proyecto:

Ejemplos de Crawler-Lib Build-Tools