Buscando una buena estrategia de implementación de aplicaciones web (ASP.NET MVC3)

Estoy buscando una buena estrategia de implementación para implementar una aplicación ASP.NET MVC3. Lo que imagino es que cada implementación implicaría algún tipo de compromiso con un Sistema de gestión de origen en el sentido de que una herramienta de deployment podría hacer lo siguiente de forma automática:

1) Al generar un package de implementación (una confirmación), la herramienta recordaría el estado de mi file Web.Config, el estado de una carpeta de scripts generados automáticamente que contienen nueva database modificada, el estado de una carpeta de files por lotes que contienen nuevos las tareas que se ejecutarán en el server, el estado de los files que especifican cambios en las configuraciones de ISS, etc.

2) Cuando construyo un package la próxima vez, la herramienta sabría empaquetar únicamente los nuevos files de script, cambios de web.config, nuevos files de process por lotes, nuevas configuraciones de ISS desde mi último package

3) Aplicar el package a mi aplicación web

Empecé a search en MS Deploy, pero parece que es el número 3. He estado buscando una aplicación que haga lo que imagino o una estrategia para combinar algunos SMS y MS Deploy. Espero que alguien ya haya resuelto el problema que siento que tengo aquí. Mi último recurso, por supuesto, es build la herramienta, pero una vez más, ese sería mi último recurso.

¿Estás usando Team Foundation Server? Si es así, TFS viene con herramientas para automatizar construcciones (incluido el código de labeldo, testings de unidades en ejecución, implementación, etc.). Consulte http://msdn.microsoft.com/en-us/library/ms181710(v=vs .80) .aspx

TFS no es exactamente fácil de configurar y poner en marcha, pero es gratis si ya está usando TFS.

Si no está utilizando TFS, busque herramientas de continuous integration como NAnt o TeamCity.

¿Ha utilizado Web Deploy y la function "Publicar" en Build in Visual Studio?

Puede establecer opciones para cosas como dejar los files anteriores en el server.

Su file web.config, ¿quiere decir el principal o uno que ya existe en otro lugar en el server? Su file web.config debe copyr desde su proyecto al server, o hay configuraciones que son diferentes cuando se ejecuta localmente contra server? Si es así, mira usar transformaciones para modificar web.config.

Esta es solo una respuesta parcial al # 1 para usted, pero buscamos durante mucho time una herramienta de migration que nos haya gustado … Finalmente encontramos Migrator.Net: http://code.google.com/p/migratordotnet/

Al hacer esto, puede convertir las migraciones de db en un command por lotes