2010-03-04 8 views
5

Trabajo en equipo con otros tres desarrolladores y un analista de negocios que redactan aplicaciones comerciales internas. Principalmente, estamos creando aplicaciones en ASP.Net, y lo hacemos de una forma muy 2003-ish. Es como regresar en una máquina del tiempo. Aunque dos de los otros desarrolladores están dispuestos a aprender cosas nuevas, uno de los desarrolladores no. Es del tipo que piensa que es el desarrollador más fuerte de la ciudad, y que si no entiende una nueva herramienta en 5 minutos, entonces solo necesita construir la suya propia. Tampoco reconoce el desarrollo ágil, TDD o básicamente cualquier herramienta o método no bendecido por Microsoft. Incluso considera que el control de fuente de algo que no sea SourceSafe es peligroso. Para su crédito, él es un brillante programador, simplemente no alguien interesado en desarrollo de software.¿Cuál es el conjunto más fácil de herramientas para comenzar con Source Control, TDD y CI para Microsoft.Net 2008/2010

Por lo tanto, la única manera en que puedo obtener un consenso es si una herramienta es realmente fácil de usar. Una vez que golpeemos un inconveniente, perderá la fe en un tipo de "te lo dije".

Entonces, ¿qué conjunto de herramientas debo usar para introducirnos en un moderno sistema de control de fuente, TDD y CI? La opción obvia en mi situación parece que sería el TFS de Microsoft, pero dudo que pueda conseguir que nuestro equipo de gestión ahorrativo y apático gaste el dinero extra (ya piensan que MSDN Pro es demasiado).

Básicamente, ¿cuál es el conjunto de herramientas más fácil de usar con Source Control, TDD y CI para un entorno .Net 2008/2010?

+0

Estoy empezando a inclinarme por presionar por TFS, ya que creo que sería más fácil hacer que todos se unan a bordo. Simplemente no entiendo los costos para 2010. ¿Cuál sería la diferencia al pasar de las licencias pro 4 msdn a TFS? ¿Y solo obtiene las características de prueba si compra la edición de prueba? Si solo renovamos nuestras suscripciones Pro, ¿podemos actualizar? ¿Debería ser esta una publicación completamente nueva? – NeedAgileNow

Respuesta

-1

En entornos .NET, Microsoft Visual SourceSafe se usa con mayor frecuencia. (pero cuesta). Al lado de eso puedes optar por SVN o GIT. Git es más reciente (y gana popularidad). Es más fácil trabajar con SVN una vez que lo tienes.

http://git.wiki.kernel.org/index.php/GitSvnComparison podría ayudar con su decisión.

+0

Visual SourceSafe es un dinosaurio. Yo diría que todos en un entorno corporativo usan TFS ahora. – Slavo

+1

SourceSafe ha funcionado bien en nuestro negocio durante aproximadamente 5 años hasta hace unos meses. Hemos comenzado a tener problemas extraños, y estoy pensando que es hora de usar eso como una oportunidad para seguir adelante. – NeedAgileNow

+0

Costos de SourceSafe por ser muy inseguro. No utilice. http://www.codinghorror.com/blog/2006/08/source-control-anything-but-sourcesafe.html –

3

Siempre va a ser difícil introducir nuevas herramientas si no se puede construir un consenso. Enfóquese en construir el consenso, en lugar de las herramientas.

SVN es muy bueno (con Ankh y TSVN), pero puede ser un poco sorprendente para las personas que usan SourceSafe.

TDD es una técnica, en lugar de un conjunto de herramientas, por lo que necesita libros, blogs, etc. Para herramientas que lo admitan, NUnit o MSTest. La integración continua es imprescindible. CruiseControl.Net es bastante bueno (aunque un poco difícil de configurar inicialmente). Considera también TeamCity.

¿Tiene un sistema de seguimiento de errores?

Ah, y si su equipo de gestión es tan apático, considere renunciar.

Actualización: has dicho que no son tanto "apáticos" como "sin manos". Pregunta: ¿están realmente fuera de lugar y le permitirán mover las cosas? ¿O son "status quo" - "no está roto, así que no lo arregles y no balancees el barco"?

+0

Buenos puntos. Creo que primero necesito unir a mi jefe. ¿Recomiendas SVN sobre Git y Mercurial? Estoy impresionado con TeamCity, aunque fue un poco molesto configurar la conexión de DB para SQL Server. Tenemos un sistema interno de tickets para rastrear errores. Para ser justos con la administración, en realidad son tipos muy amables y excelentes para trabajar en la mayoría de los aspectos (muy flexibles con el trabajo desde casa, por ejemplo).Son muy estrictos con el dinero. Apático fue probablemente una mala elección de palabras. Debería haber dicho que estaban apáticos con la metodología de desarrollo. – NeedAgileNow

+0

Mi problema con Git y Mercurial es la falta de un equivalente maduro de TSVN. En mi experiencia (y conduje una migración de VSS a SVN hace unos años), la mayoría de los usuarios de MS-stack prefieren una GUI, y no se puede mejorar (en lo que a ellos respecta) que Visual Studio o Windows Explorer. integración. –

+0

... y la gente utiliza para SourceSafe van a flipar cuando se ven en Git o Mercurial ... –

6

Hay muchas buenas opciones, pero personalmente me puede recomendar los siguientes:

Estos son fáciles de usar porque son buenos productos, razonablemente bien documentados y ampliamente utilizados (por lo que es fácil obtener ayuda).

+1

TDD Tools: ¡TestDriven.Net es imprescindible en mi opinión! – Eric

+1

¿Ustedes prefieren SVN sobre Git o Mercurial? NUnit sobre xUnit? CruiseControl.Net sobre TeamCity o Hudson? ¿Qué pasa con Moq? NCover sobre PartCover? – NeedAgileNow

+1

SVN tiene una mejor historia de integración que Git o Mercurial en este momento. PartCover es gratis, pero NCover es mejor. No puedo comentar sobre xUnit o Hudson. Prefiero TeamCity a CC.NET, pero TeamCity cuesta dinero una vez que superas la edición gratuita. –

6

No recomendaría descargar todas estas herramientas y metodologías en su equipo a la vez, dar pequeños pasos. Presentar uno a la vez. Algunos vendrán naturalmente.

+2

+1 para pasos de bebé. Una cosa a la vez. No molestes a la gente. –

+1

Estoy de acuerdo con esto, especialmente si hay un tipo ruidoso en el equipo. Introducir mucho demasiado rápido definitivamente lo molestará y probablemente detenga todo el proceso. – Nick

+1

Los desarrolladores que no están acostumbrados a trabajar sin ningún control de fuente a menudo encuentran que el ajuste es difícil. Intentar que un equipo se adapte a un conjunto de herramientas completamente nuevo puede presentar una curva de aprendizaje tan empinada que parecerá ser un muro para su equipo. Estoy de acuerdo en que introducir una herramienta con éxito podría conducir a la aceptación de más herramientas en el futuro. – smencer

1

Creo que se puede argumentar muy bien que, en los últimos dos años, Microsoft ha acogido total y completamente a Agile. Sé con certeza que los equipos Codeplex, MEF y ASP.NET MVC están bastante inmersos en él. También creo que que el estudio visual y las partes del equipo de Windows 7 son ágiles. También considere que Visual Studio 2010 incluye refactorizaciones listas para usar que no tienen mucho sentido fuera del contexto de TDD y que Agile es la plantilla de administración de proyectos predeterminada para TFS y una imagen de una cultura corporativa que es bastante diferente del de años anteriores comienza a surgir.

En cuanto a herramientas específicas. TFS está bien para el control de fuente pero me parece muy pesado y meticuloso. Otros han mencionado a Subversion, pero si te preocupan las bendiciones de MS, tal vez tengas más suerte yendo directamente a Mercurial. Es un SCM más avanzado, pero ahora es compatible de forma nativa con Codeplex y tiene una excelente integración de Windows. Nunca lo he usado, pero estoy en un profundo amor por las herramientas con su primo git.

Desarrollo impulsado por pruebas: Comience con MSTest, no es tan resbaladizo como a nadie le gustaría, pero no es lo peor del mundo. También recomendaría MbUnit, que tiene todas las funciones de NUnit, junto con un buen soporte para las pruebas de integración que probablemente va a escribir por accidente cuando comience con las pruebas. Ah, y si tienes un fanático de la personalización, lo instaría a mirar XUnit.Net.

Burlarse: La elección es básicamente Rhino Mocks o MoQ. Here's a quick intro I wrote for Rhino Mocks que repasa todos los aspectos básicos. Dicho esto, la compensación parece ser más documentación para RM frente a una sintaxis muy levemente propensa a errores para MoQ.

Corredores de prueba: si comienza con MSTest notará que puede obtener un impulso de velocidad significativo en las ejecuciones de prueba utilizando TestDriven.Net, resharper o coderush en lugar del corrector de prueba integrado. Dicho esto, no subestimes a los corredores de prueba independientes. Pueden ser bastante buenos de vez en cuando. Recomiendo encarecidamente el corredor Gallio Icarus que viene con MbUnit.

0

Una herramienta que me metió en TDD es TestDriven.Net que pone los resultados de la prueba en la ventana de resultados. Asigné esto a la tecla F8 y la ganancia de productividad es excelente; escriba una prueba, presione F8 y vea esto resultados en la ventana de salida.

Una sugerencia También tengo que diferenciar entre tener pruebas unitarias y hacer TDD. He descubierto que TDD puede ser difícil de impulsar para un equipo, mientras que; unidades, integración o pruebas funcionales son una venta más fácil. Tener un montón de pruebas que ahorran una hora pasando por una prueba manual día tras día es una gran victoria.

Después de un tiempo, las personas comenzarán a apreciar algunas ideas nuevas si les está ayudando en su vida diaria. Luego, podrá introducir un servidor de compilación y alejarse de SourceSafe.

+0

Mi combinación de teclas es: Ctrl + R, T - Prueba de ejecución (Modo de editor de prueba); Ctrl + R, R - ReRunTestsWithDefault (Global): este es muy útil Ctrl + R, Ctrl + T - ReRunTestsWithDebug (Global) –

1

Quiero hacerme eco de lo que ha dicho George Mauer y sugerir comenzar con MSTest para su unidad de prueba. Está justo en el recuadro para comenzar con Visual Studio, esto ayudará en su causa ya que es "MS blessed".

Empezaría con las pruebas unitarias y lo tomaría desde allí, después de unos meses de "ver qué tan fácil es nuestra vida ahora tenemos estas pruebas automatizadas" Lo tomaría un nivel superior. Considere añadir algo como Selenium o WatiN a la mezcla. Una vez que lo hagas, sube tu servidor de CI. "¿No sería genial si no tuviéramos que comenzar todas estas pruebas manualmente? ..."

Supongo que un SCM decente podría ser un punto de fricción. SourceSafe es mejor que nada. ¿Quizás comiences a usar Mercurial o Git tú mismo? Muestre aquellos que están abiertos para cambiar los beneficios, eventualmente su desarrollador obstinado aparecerá cuando otros a su alrededor quieran cambiar. Con suerte, le resultará más difícil gritar si está en minoría.

Consulte http://www.viget.com/extend/effectively-using-git-with-subversion/ para obtener ideas con la mezcla de diferentes SCM.

También quiero +1 mxmissile para decir que tome las cosas lentamente. Creo que le resultará muy difícil presentar todos estos cambios de una sola vez. Es mucho para asimilar al principio si no estás acostumbrado. Intenta elegir la parte en la que más te sientas débil, o agregará el mayor valor y acumulará desde allí.

¡Buena suerte!

+0

No estoy seguro de cómo funcionaría si estuviera usando un SCM diferente al otro muchachos en el equipo. Aunque tenemos proyectos que "poseemos", todavía hay una buena cantidad de colaboración en proyectos. – NeedAgileNow

+0

@NeedAgileNow Cierto, puede ser un poco difícil, ver mi edición, refiriéndose a esta página: http://www.viget.com/extend/effectively-using-git-with-subversion/ para algunas ideas – Kirschstein

Cuestiones relacionadas