¿Cuál es el flujo de trabajo típico para poner mi proyecto MVC3 local en un "server en vivo"?

Desarrollo en mi máquina local con VS2010 y SQL Server. Naturalmente, mi web.config apunta a mi SQL Server local y puedo depurar / desarrollar y todo está bien. Lamentablemente, no estoy del todo seguro sobre cómo implementar mi código en un server en vivo.

Actualmente, mi server en vivo consiste en una máquina virtual (mi sitio es accesible desde Internet). Cuando estoy listo para poner mis cambios en el server en vivo, publico mi aplicación (haga clic derecho en el explorador de soluciones -> publicar). Luego voy al directory donde publica y vuelco todos los files en un recurso compartido de networking que va a mi sitio en el server activo. En la copy inicial, tengo que editar manualmente el file web.config para que la cadena de connection apunte al server SQL en el server activo en lugar de a mi máquina local. Así que este es mi primer obstáculo. ¿Cómo puedo administrar fácilmente la configuration de desarrollo y la configuration "en vivo" en el file web.config?

Ahora, también uso control de versiones (horno). ¿Puedo posiblemente labelr un set de cambios y tenerlo implementado automáticamente en mi server en vivo de alguna manera? Digamos que alguien envía un error y lo soluciono. Presioné mi set de cambios y ahora Kiln tiene la última versión de mi código con la corrección de errores. ¿Cuál es la mejor manera de llevar estos cambios a un server en vivo?

No puedo encontrar ninguna documentation que cubra todo el flujo de trabajo, pero creo que va a haber una mejor manera. Seguramente, algo como esto se puede lograr sin tener que editar manualmente la web.config cada vez que publico y rezo a la computadora Dioses que no me perdí de algo en la cadena de connection.

Soy solo yo, así que tengo control total sobre todos mis entornos, incluido el server y lo que es accesible a través de Internet, y todo es posible si solo supiera qué hacer.

¿Cómo puedo administrar fácilmente la configuration de desarrollo y la configuration "en vivo" en el file web.config?

Re: Con las transformaciones de VS. 2010 web.config, es bastante fácil. Por favor, eche un vistazo a este blog: http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx

Para VS 2008 o anterior, solíamos tener varios files de configuration basados ​​en el entorno y solíamos crear la configuration de versión de Debug / Release / DevTest / UAT / PROD y luego en el evento post build que usamos para replace el web.config con el lanzamiento configuration basada en la configuration Por ejemplo, si construye el proyecto con la configuration de lanzamiento "Prod", copymos PROD web.config en la carpeta de publicación.

Ahora, también uso control de versiones (horno). ¿Puedo posiblemente labelr un set de cambios y tenerlo implementado automáticamente en mi server en vivo de alguna manera? Digamos que alguien envía un error y lo soluciono. Presioné mi set de cambios y ahora Kiln tiene la última versión de mi código con la corrección de errores. ¿Cuál es la mejor manera de llevar estos cambios a un server en vivo?

Re: El control de fuente y la publicación al server vivo son dos cosas diferentes. La primera pregunta que hace aquí se relaciona con la forma en que administra varias versiones y tiene control sobre las correcciones de errores para cada versión. La forma en que lo haría es tener una twig PROD en mi control de fuente que será la primera versión y para cada versión principal la ramificaré para tener más control sobre las e-fixes.

Para la otra pregunta sobre cómo llevarlo al server en vivo, depende de su entorno. Lo hacemos de forma diferente en function de cómo esté configurado el entorno del cliente. Si nos han dado el FTP, lo usamos o, de lo contrario, empaquetamos la aplicación en una MSI y luego la implementamos en UAT. Hasta que se complete el cierre de UAT, seguimos actualizando la MSI. Una vez que se recibe la firma, el MSI va a PROD.

Espero que esto ayude.