Estoy comenzando un nuevo proyecto y un miembro del equipo ha decidido usar C# como el lenguaje de implementación. No tengo mucha experiencia en C#, pero una breve lectura muestra que es muy capaz de ser una vm multiplataforma completa. Más allá del lenguaje, he tenido problemas para seleccionar herramientas y flujos de trabajo para administrar el código a medida que el proyecto crece. Debería ser bastante pequeño (< líneas de 10K) pero me gustaría tener la capacidad de generar documentación a medida que el proyecto crece, administrar las dependencias externas que decidamos usar y automatizar construcciones y pruebas. Me pregunto qué herramientas se usan comúnmente o se consideran las mejores prácticas para este idioma.Sistema de documentación y compilación para Mono/C#
Me preocupa principalmente cómo podría funcionar un sistema de compilación tanto en * nix como en Windows? ¿Hay herramientas específicas de C# o es Hacer más común? Además, me gustaría usar un dvcs, pero no parece que Visual Studio y MonoDevelop admitan los mismos. ¿Cuál es el vcs común de elección para C#? Para la prueba, ¿qué tipo de prueba de unidad está disponible para C#/Mono? Finalmente, sé que hay buenos generadores de documentos, pero con la cuestión del sistema de compilación, realmente me gustaría que eso sea solo un paso en la compilación, similar a como las pruebas son un paso. Normalmente automatizaría con Hudson, pero me pregunto si hay algo más específico para la plataforma.
En general, me gustaría ver una solución que proporcione un flujo de trabajo decente tanto en Windows como en * nix sin una gran carga de administración. Estoy bastante seguro de que este es el santo grial de la gestión de proyectos, por lo que cualquier cosa que me ponga en ese camino es increíble.
Me gustaría echar un vistazo a CMake, es al menos multiplataforma, y puede que ya tenga scripts para ayudar en proyectos C#/Mono. – sinelaw