2009-09-28 15 views
29

Estoy buscando usar Umbraco para mi sitio y hasta ahora me encanta.Umbraco: ¿trabajando con el control de versiones? prueba/producción?

Una gran pregunta que tengo es ¿cómo puedo controlar una versión de un sitio Umbraco ya que muchos de los datos están en la base de datos?

¿Cómo se configura un entorno de prueba/desarrollo y se despliega a la producción de manera simplificada?

Hoy (sin Umbraco) utilicé SVN. con diferentes copias de la base de datos para prueba y producción.

El sitio que construyo es básicamente un sitio de anuncios personales con un back-end completo. ¿Sería necesario mantener las tablas de umbraco en una base de datos separada y mantener los datos de mi empresa en otra? (accedido por un grupo de controles de usuario)

Respuesta

33

Este es un obstáculo común cuando se comienza a trabajar con Umbraco y la respuesta es usar lo que funcione para usted.

Sin embargo ha habido muchas discusiones en los foros Umbraco sobre esta misma cosa, miren aquí:

http://our.umbraco.org/forum/core/general/3619-Source-control-and-multiple-developers http://our.umbraco.org/forum/getting-started/installing-umbraco/2918-Update-an-Umbraco-website?p=0#comment11311

La clave a considerar es la delineación de contenido y código. La mayoría de los códigos en umbraco se almacenan externamente a la base de datos y, como tales, se pueden almacenar en subversión o en cualquier otra plataforma de control de origen. Por ejemplo, las plantillas, extensiones XSLT, CSS, XSLT, etc. están todas almacenadas en el sistema de archivos.

El contenido de la página y la estructura del sitio se almacenan en la base de datos.

Hay algunas áreas grises, especialmente el diccionario que puede contener todo tipo de cosas, así como el contenido.

La forma en que trabajamos con Umbraco es el siguiente:

Tenemos una separada Visual Studio Web Project que contiene las carpetas de plantillas, XSLT, CSS, controladores de eventos, controles de usuario, etc. Esto se almacena en el SVN. Luego, en la compilación de este proyecto, los archivos se copian o compilan y se copian en nuestra instancia de prueba/servidor de desarrollo del sitio umbraco.

Una vez aprobados los cambios, solo copiamos los archivos.

Si necesita sincronizar el contenido entre instancias de Umbraco, puede usar Umbraco Pro (que incluye un componente llamado Courier, que es precisamente para este propósito) o hacer una copia de seguridad de su Live DB y restaurarlo en su entorno de desarrollo cuando sea necesario (o incluso usar replicación).

Principalmente tratamos de evitar la edición de contenido en el entorno de prueba/desarrollo, ya que aquí es donde fusionar el contenido de nuevo al sitio en vivo puede ser complicado. Sin embargo, a veces esto es inevitable. También tratamos de evitar la edición de plantillas, etc. a través de la interfaz de Umbraco.

La respuesta a su pregunta final, "debería almacenar mis datos comerciales en otro DB", es bastante complicada ya que depende mucho de lo que va a hacer con los datos. Si es el contenido el que mejor se almacena en el CMS, almacénelo en el CMS; sin embargo, si se trata de datos fuertemente relacionales que no encajan realmente en un CMS, guárdelo por separado.

Estamos llevando a cabo un proyecto actualmente donde los datos se almacenan en un DB externo y hemos integrado una aplicación directamente en el backend de Umbraco.Esta fue una tarea no trivial (aunque simplemente capturar algunos datos a través de controles de usuario es fácil) y debes considerar cuidadosamente el nivel de esfuerzo requerido para almacenar tus datos externamente contra la funcionalidad incorporada del CMS y el presupuesto/tiempo que tienes para jugar con.

Si desea utilizar la plantilla visual studio que tenemos entonces la puede descargar desde our website.

+0

Gracias por la excelente respuesta. ¿Te importaría compartir tu script de compilación para desplegar archivos? –

+0

Hola, Niels, agregué un enlace a la plantilla visual studio que usamos. Esto contiene una estructura de carpeta exanple y ejemplos de eventos de creación de publicaciones (que deberá editar). ¡Solo almacénelo en SVN y evite editar el código a través de la interfaz de umbraco! –

+2

Gracias, respuesta muy interesante. Dos cosas de las que no estoy seguro ... Primero, ¿cómo manejas los tipos de documentos? ¿Los recreas manualmente en el servidor de producción cuando migras? En segundo lugar, ¿puede Umbraco manejarlo cuando agrega plantillas simplemente cargando los nuevos archivos * .master sin agregar sus nodos a la base de datos? – efdee

2

Sé que esto ya ha sido respondido, pero solo quería resaltar el hecho de que se han hecho muchos progresos en cuanto a sincronización de contenido y código. Por ejemplo, uSync y uSiteBuilder son dos excelentes paquetes que permiten controlar el contenido de CMS, como los tipos de documentos y los tipos de datos, mediante el uso de código y, por lo tanto, la versión controlada. Son bastante sencillos de usar, aunque, por supuesto, realice copias de seguridad antes de usarlas. Por lo general, se realiza una copia de seguridad de los medios usando algo como Export Media, aunque generalmente no es una buena idea tener su carpeta multimedia en SVN desde su ubicación predeterminada. En su lugar, colóquelo en su propia rama y organícelo en IIS como un directorio virtual. De esta manera, sus medios son independientes del código.

Hay un largo camino por recorrer con la mayoría de los CMS modernos para tener soluciones que funcionen bien con el control de versiones, aunque hay muchas cosas en curso. Umbraco es un gran CMS y tiene una gran comunidad.

Cuestiones relacionadas