¿Entorno de desarrollo "perfecto" .NET?

Me dieron un regalo de Navidad temprano:
Permiso para salir del ciclo de desarrollo para reorganizar y documentar nuestra aplicación.
Tengo completa libertad para reestructurar, refactorizar y configurar cualquier cantidad de infraestructura que considere conveniente.

Si tuviera carta blanca , ¿cuál es su entorno de desarrollo .NET "perfecto"?

Sobre la aplicación:
Aplicación cliente-server VB.NET. (Windows Forms front end, ASPX Webservices back end)
Actualmente usando Visual Studio y SQL Server 2003 y … Visual SourceSafe.

Me gustaría tener una combinación de:
* Mejor versionado. (inclinándose hacia Subversion)
* Wiki u otro sistema para seguimiento y documentation de errores. (inclinándose hacia Trac con Subversion)
* Proceso de compilation simplificado y comstackciones diarias ( Visual Build ? CruiseControl.NET ?)
* Control de versiones para la database de SQL Server
* ¿Actualizar a Visual Studio 2005 (o 2008)?

… para un pequeño equipo de 5 o más desarrolladores

Recomiendo las siguientes herramientas (principalmente porque es lo que estamos usando):

  • Visual Studio 2008
  • SQL Server 2008
  • VisualSVN
  • CruiseControl.NET
  • Tareas de comunidad de MSBuild

Todos trabajamos en nuestras máquinas locales y tenemos un server de compilation independiente que supervisa el repository de Subversion (usando CruiseControl.NET) y crea la última revisión en ese server.

Usamos 'MSBuild Community Tasks' para incrustar el número de revisión de Subversion en el ensamblado para que podamos mostrarlo al usuario.

Los "agujeros" más grandes que tenemos en nuestra configuration en este momento están en la database y en nuestras testings automáticas.

Actualmente todos nos escapamos de un server de database central. Idealmente, debería trabajar para tener un script que vuelva a crear su database bajo el control de código fuente. Por lo que veo, cada vez que el server de compilation reconstruye el sitio, también debería rebuild la database. También debe tener una secuencia de commands que generará los datos de testing que desee en la database.

Con comstackciones de bases de datos como esta, todos pueden trabajar también en una copy local de la database.

Es posible que desee echar un vistazo a la herramienta de SQL Toolbelt (o partes de ella) desde el software de Red Gate : utilizamos las herramientas SQL Compare para implementar esquemas en serveres en vivo y estoy realmente impresionado con ellos.

¡Buena suerte!

Creo que todos se están inclinando en la dirección correcta.

Vaya con Visual Studio 2008. Es muy estable con SP1, y puede orientar tanto a la versión 2 como a la versión 3 de .NET Framework.

No importa cuánto time y pensamiento pongas en esto, probablemente nunca termines con un ambiente "perfecto". Cada herramienta tiene sus propios quarks y problemas. Sin embargo, aquí hay algo de reflexión:

Vaya a la última y mejor versión de Visual Studio, Visual Studio 2008 SP1.

Si es un suscriptor de MSDN y ha comprado la versión del sistema de equipo de Visual Studio, puede instalar Team Foundation Server (TFS). TFS es un producto bastante elegante que está integrado en Visual Studio. Utiliza Windows Sharepoint Services (WSS), que le da la posibilidad de tener wikis, repositorys de documentos, etc. (básicamente una versión simplificada de Microsoft Office Sharepoint Server). TFS también le dará la versión más reciente de Visual SourceSafe, con la que no he tenido problemas, y Microsoft dice que puede escalar a cientos de miles de usuarios. La edición TFS Workgroup le permitirá usar hasta 5 desarrolladores sin tener que comprar una licencia. Más de 5 usuarios, y tendrás que comprar licencias. También estoy bastante seguro de que tendría que usar SQL Server 2005 para ejecutar TFS, pero podría estar equivocado. Tenemos TFS instalado en una sola caja (nuestro cuadro de desarrollador), y no hemos tenido problemas.

SO TFS te daría:

  • Colaboración
  • Control de versiones
  • Informes sobre el estado del proyecto
  • Seguimiento de problemas
  • Integración en Visual Studio
  • Una gran cantidad de otras golosinas

Para sus versiones diarias y continuas, me inclinaría hacia CruiseControl.NET (CC.NET). Intentamos utilizar el sistema de compilation integrado en TFS, pero nos topamos con muchos, muchos problemas (sobre todo debido a la estructura de nuestros proyectos). CruiseControl.NET fue muy fácil de instalar y configurar, y funciona como un campeón. Puede configurarlo para la construcción continua (cada check-in desencadena una compilation) y comstackciones diarias. Es posible que tenga que encontrar algunas forms inteligentes de hacer que CruiseControl.NET haga algunas de las tareas más difíciles (como detener un service, etc.), pero no ha podido hacer nada de lo que he necesitado. También es bastante extensible, por lo que puedes escribir un código para que haga lo que quieras, lo cual es una buena característica.

No estoy seguro sobre el control de versiones de la database, pero supongo que puede usar TFS Source Safe para lograr esto.

¡Buena suerte!

Cualquier entorno de desarrollo .NET perfecto tendría una copy de ReSharper instalada. Soy un converso reciente, y me encanta .

Yo emitiría un voto para Team Foundation Server. Luego tiene control de fuente, comstackciones automatizadas y (tipo de) seguimiento de errores, todo en un solo package, que se integra muy bien con VS 2008. Sin embargo, tiene un precio bastante elevado.

Mi preference es para la configuration de Visual Studio 2008 / Subversion / Trac / Anck y Tortoise / CruiseControl.NET (TeamCity / Bitten ).

No digo que TFS no sea un gran producto, pero creo que es "voluminoso". Cambié recientemente de una solución Trac / Subversion a TFS y prefiero la primera configuration. Hay detalles, pero hacen que sea agradable trabajar con ellos.

Ejemplo:

  • TFS envía correos para loggings y construcciones, en Trac hay un feed de línea de time fácil. (Hay soluciones para TFS).
  • cuando hay un nuevo checkin, click el enlace (del feed) y se encontrará en el entorno de Trac. Ves una buena diferencia con el chancgeset anterior. (donde en TFS?)
  • La wiki integrada es un entorno muy agradable para la documentation interna.
  • IntelliSense en el cliente de Tortoise para sus comentarios
  • buena interfaz web para navegar por la fuente, actualizar la documentation (fue fácil cuando estaba en casa)

Los pequeños detalles lo convierten en una herramienta mucho más agradable para mí.

También digo que el equipo era pequeño (también 5 desarrolladores) y necesitas algo de time para configurarlo. Estoy de acuerdo en que cuando trabajas con equipos más grandes, TFS es quizás preferible.

En el cuadro de desarrollo

  • Visual Studio 2008
  • SQL Server 2008
  • Red Gate SQL Compare
  • Red Gate ANTS Performance Profiler

En el server

  • SourceGear Vault
  • FogBugz (Wiki, lanzamientos, estimaciones, seguimiento de errores)
  • CruiseControl.NET

Mi recomendación para IDE y control de fuente:

  • VS2008 con SP1
  • SubVersion, con TortoiseSVN (para Windows Explorer) y AnkhSVN (para VS2008)

Soy un converso reciente a SourceGear Fortress. Es barato, rápido y confiable.

Me encanta TFS para equipos más grandes (> 20 desarrolladores). Estoy empezando a mojarme los pies con Subversion, por lo que aún no tengo nada que compartir, excepto que fue muy fácil de configurar.

Trac, sin embargo, fue muy difícil de ejecutar. Sin embargo, esa es una cuestión de documentation, no del producto en sí.

Mis elecciones serían:

Mejor versionado.

Escogería SourceGear Vault : sólido como una roca, funciona como un amuleto, su fuente está almacenada en bases de datos de SQL Server, puede respaldarse fácilmente y no es escamosa como Visual SourceSafe.

Wiki u otro sistema para seguimiento y documentation de errores.

Desde mi experiencia personal: FogBugz es su mejor apuesta: simple, fácil, rápida de comprender, hace el trabajo bien, solo funciona y todo el mundo simplemente "lo consigue" sin una adaptación / personalización larga y costosa y sin mucho entrenamiento, solo funciona: )

Proceso de compilation simplificado y comstackciones diarias (Visual Build? CruiseControl.NET?)

CruiseControl.NET es una gran opción gratuita, si no te importa gastar un poco de dinero, también miraría a FinalBuilder, ya sea como una aplicación de escritorio o de server.

Control de versiones para la database de SQL Server

-> ¡usa Vault! Funciona de la misma manera. Utilice una gran herramienta como Apex SQL Scripter o algo similar para crear y mantener su SQL para crear y actualizar el esquema de la database, y poner esos scripts SQL en Vault.

¿Actualizar a Visual Studio 2005 (o 2008)?

Vaya con Visual Studio 2008 SP1 en .NET 3.5 SP1: sólido y lleno de excelentes características de productividad nuevas.

Solo mi $ 0.02

Utilizamos SourceGear's Vault para el control de versiones y funciona bien para nosotros como un equipo pequeño.

Para el seguimiento de proyectos / errores / soporte usamos OnTime 2008 de AxoSoft.

También usamos ScrewTurn Wiki para documentar procedimientos y códigos de muestra / mejores prácticas.

Para nuestro process de compilation, no hemos automatizado completamente en un process diario porque generalmente no trabajamos de esa manera. Sin embargo, para las comstackciones beta y de lanzamiento, solo uso NAnt para hacer una compilation completa después de actualizar los numbers de versión manualmente (esto lo hago para get mejores numbers de versión para nuestro equipo de soporte).

Y definitivamente use Visual Studio 2008. La versión de 2005 realmente tenía muchos problemas en grandes proyectos de VB (al less para nosotros).

Estoy de acuerdo con VS2008 con SP1, SVN (con Ankh y Tortoise)

Busque en sandcastle / docproject para generar documentation.

CruiseControl funciona bien.

En cuanto al control de fuente para las bases de datos, puede usar el tipo de proyecto de database en VS2008 y usar SVN (u otra solución de control de origen de su elección) para mantenerlo bajo control de fuente.

Muy sí en VS 2008 con SP1. También recomendaría encarecidamente:

  • ReSharper
  • SourceGear Vault (curva de aprendizaje absolutamente nula proveniente de VSS, con todos los beneficios de SVN)

He escuchado varias cosas buenas sobre TFS; sin embargo, también existe el factor de costo. Las herramientas que enumeró funcionan muy bien entre sí y son gratuitas.

Una adición que haría es TortoiseSVN para el cliente de Subversion. A los puristas no les gusta, pero el hecho de que se integre con los menus de context del shell de Windows (clic derecho) lo hace muy fácil de usar.

Para las versiones de SVN, vaya con la versión 1.6 que salió recientemente. La ramificación y la fusión se han mejorado con esta versión.

Trac es una gran herramienta. Asegúrese de leer las reglas de formatting de TracWiki y TracLinks para sus posts de confirmación de SVN. Trac analiza estos posts, por lo que si está comprometiendo una solución para el Ticket 123, agregar '# 123' al post SVN le permite a Trac vincular esa confirmación (y todos los files asociados con ella) con los tickets de Trac correspondientes. Esto se vuelve especialmente útil si decides cambiar a las versiones delta y cuando decides hacerlo.

Estamos utilizando Subversion con Jira para el seguimiento de fallas , administración de proyectos, FishEye y Crucible para la exploración de fonts y revisión de código, y funciona muy bien.

Somos un equipo de 12 desarrolladores repartidos por todos lados. Somos usuarios de FinalBuilder desde hace mucho time, que utilizamos para hacer todas las construcciones y la implementación automatizada, una combinación de proyectos de VB.NET y Visual Studio 2008, y nos está resultando excepcionalmente bien. Nos dirigimos a las bases de datos de SQL Server 2005/2008 y mantenemos los objects de la database en el repository de control de origen. La mayoría de las veces utilizamos Visual Studio 2008 Database Edition combinada con herramientas de Redgate y funciona muy bien para nosotros, especialmente la gestión de los scripts de cambio y otras cosas. Para nosotros, TFS simplemente no funcionó, aunque su kilometraje puede variar. Descubrimos que era demasiado engorroso, difícil de personalizar el flujo de trabajo y, en lugar de ayudar con el flujo de trabajo, tenía una mala tendencia a interponerse en el path.