2011-01-14 15 views
6

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.

+0

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

Respuesta

4

En un proyecto en el que trabajo, utilizamos Visual Studio 2010, MonoDevelop/XBuild, Git y monodoc. Los archivos de proyecto creados por Visual Studio 2010 se pueden leer fácilmente por MonoDevelop y XBuild. Además, Git es un excelente VCS para el desarrollo distribuido (me gusta especialmente su ramificación). Monodoc, con algunos ajustes en los parámetros de línea de comandos, puede generar documentación a partir de comentarios XML en código.

+0

Sip se olvidó de monodoc –

+0

Buena llamada, estamos experimentando con ese enfoque y parece estar funcionando. Podríamos terminar eligiendo usar mono como nuestro vm en todas las plataformas. – dcolish

1

Puede usar cualquier dvcs que desee con él. MonoDevelop (al menos en el tronco, no estoy seguro de si ya se ha lanzado) como soporte integrado de Git. Hay algunos complementos para Visual Studio que también le dan Git.

De todos modos, no necesita que su control de fuente esté integrado en el IDE, de hecho prefiero que no lo sea y use Git de TortoiseGit si estoy en Windows o desde la línea de comandos en OS X (Aunque estoy mirando a Gitti para el lado OS X).

Para compilación, sugeriría TeamCity, ya que admite hasta tres agentes remotos que le permiten compilar en Windows/Linux/Mac con la versión gratuita.

Para compilación, utilizaría NAnt, aunque xbuild en mono funciona con archivos de solución, por lo que podría ser más fácil en lugar de mantener dos compilaciones de compilación. Me gusta NAnt para CI simplemente porque me resulta más fácil separarme en construir, probar, cubrir, empaquetar, implementar, etc.

Descubrí que la combinación de MonoDevelop, Git, TeamCity y NAnt te da un buen toque configuración de desarrollo multiplataforma.

1

Le sugiero que trate de usar un IDE principalmente. La mayoría de los IDE Mono admiten formatos de Visual Studio, supongo. Al menos SharpDeveblop lo hace.

http://mono-tools.com parece la forma correcta de desarrollar para .NET y Mono solo en Windows (no gratis). Creo que esta es la mejor opción si tomo el desarrollo de mono en serio en un entorno comercial, pero no 1005 seguro.

http://sharpdevelop.com parece prometedor también, pero todavía se cae como la opción de hombre pobre.

http://monodevelop.com/ es el camino a seguir para desarrollar Mono en Linux.

Para DVCS siempre puede usar Tortoise y ser independiente de IDE. git funciona muy bien en Linux y TortoiseGit en Windows es muy bueno. Sin embargo, los términos de la fama, SVN (no DVCS, por supuesto) sigue siendo dominante, especialmente si el cliente puede conectarse a TFS a través de bridge.Sin embargo, Mercurial y Git están empezando a tener lugar en la comunidad de C#.

+0

¿Por qué usar un IDE? MonoDevelop puede abrir soluciones y proyectos VS. –

0

CruiseControl.Net es un sistema bastante bueno de construcción/integración continua. Puede integrar una carga de applications en el proceso de compilación; utilizamos NAnt para compilaciones, pruebas de unidad NUnit y FXCop para el análisis de código.

-1

Cake (C# Make) es un sistema de automatización de compilación de código abierto con un lenguaje específico de dominio basado en C# que puede hacer cosas como compilar código, copiar archivos/carpetas, ejecutar pruebas unitarias, comprimir archivos y compilar paquetes NuGet. Tiene toneladas de otras funcionalidades incorporadas y se puede ampliar fácilmente con código personalizado. Está disponible para Windows, Linux y OS X y se puede usar con varios sistemas de integración continua como AppVeyor, TeamCity, TFS, VSTS o Jenkins.

Cuestiones relacionadas