Despliegue de aplicaciones MVC de ASP.net a etapas y producción con SQL

Hemos sido una tienda ColdFusion durante 10 años, y ahora estamos cambiando a ASP.net MVC. Nuestro objective es .net 4.0 BETA 2 usando VS 2010 BETA 2. Configuramos dos instancias de Windows Server 2008 (puesta en escena y producción) y usaremos nuestro server de database existente (SQL Server 2008).

Ninguno de nosotros tiene mucha experiencia en ASP.net, aunque todos estamos muy cómodos con C # y el patrón MVC. La encoding en sí no es un gran problema; pero el process de implementación es Nuestro objective es poder tener una configuration de CI que automáticamente desplegará y probará nuestras aplicaciones en etapas en la confirmación; luego tendrá la opción de labelr, y luego cambiar, las cajas en nuestros sitios de producción cuando los sitios web aprueben el control de calidad.

Algunas de las cosas con las que estoy teniendo problemas aquí es el concepto de una aplicación ASP.net y cómo se integra en SVN. CF, como PHP o RoR, son todos lenguajes de scripting y, como tales, no requieren ningún process de compilation (ver la fuente en producción es muy sencillo). Pero en este caso, las aplicaciones deben ser comstackdas, que es donde comenzamos a tener problemas. ¿Tendremos que crear otro server (o usar uno existente) que tenga algún tipo de aplicación que detenga el código, lo compile y lo empuje de algún modo a los serveres activos? Si es así, ¿cuál se considera la mejor manera de lograr esto? Me imagino que si terminamos usando una herramienta de compilation como Nant, agregar pasos adicionales para migrar la database sería trivial, pero ¿cuál es la mejor manera de lograr esto también?

Otro problema poco relacionado es cómo nuestros diseñadores trabajarán con nuestro código. La mayoría de ellos están en Mac, y el uso de VS no es una gran opción. ¿Cómo podrán editar fácilmente los files aspx, css e image? Nuestro objective es hacer que esto sea lo más transparente posible para ellos.

Hemos realizado muchas compras, y ASP.net MVC parece ser la mejor opción en cuanto a nuestra familiaridad con el idioma y nuestra plataforma actual. Solo necesitamos descubrir un buen process de compilation para que todo sea lo más transparente posible. Entiendo que hay una tonelada de resources disponibles sobre esto, pero quería get las opiniones de la gente aquí de la experiencia de primera mano.

Microsoft TFS tiene una maravillosa solución de compilation incorporada. Es costoso, pero efectivo. Además, no puedes perder mirando a CruiseControl, que es gratis. TeamCity de JetBrains es también una gran opción. Todas estas soluciones de Integración y Construcción Continua proporcionarían un buen punto de partida para su investigación.

http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx

http://www.cruisecontrol.com/

http://www.jetbrains.com/teamcity/

Incluso Draco.net es una buena consideración:

http://draconet.sourceforge.net/

Usamos http://www.cruisecontrol.com/ (CC) ejecutándose en nuestro server SVN / Build. Puede configurar CC a través de sus propios files de configuration / script para extraer la fuente más reciente de SVN y luego generar uno o más scripts de Nant o MSBuild que pueden realizar su compilation e implementación.

Configuramos todos los cambios de nuestra database en scripts de cambio que también entran en SVN. Luego tenemos una herramienta de command-line personalizada que implementará las secuencias de commands de cambio en SQL Server durante la implementación del website. Todo eso se hace en el guion de Nant.

Por lo tanto, las secuencias de commands Nant de cada proyecto manejan la implementación de la compilation, la implementación del website y el script de cambio SQL.

La parte difícil es manejar las reversiones si / cuando algo sale mal. Sugeriría publicar otra pregunta para ese problema específico.