2009-09-28 16 views
29

Sto cercando di usare Umbraco per il mio sito e finora mi piace.Umbraco: funziona con il controllo della versione? test/produzione?

Una grande domanda che ho è come posso controllare la versione di un sito Umbraco in quanto molti dati sono nel database?

Come impostare un ambiente di test/dev e distribuire in produzione in modo semplificato?

Oggi (senza Umbraco) ho usato SVN. con diverse copie del database per test e produzione.

Il sito che sto costruendo è fondamentalmente un sito di annunci personali con un back-end completo. Avrebbe senso tenere le tabelle di umbraco in un database separarate e mantenere i miei dati aziendali in un altro? (accessibile da un gruppo di controlli utente)

risposta

33

Questo è un ostacolo comune quando si inizia a lavorare con Umbraco e la risposta è quella di utilizzare ciò che funziona per voi.

Tuttavia ci sono state molte discussioni su forum Umbraco su questa cosa, date un'occhiata qui:

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 cosa fondamentale da considerare è la delineazione dei contenuti e il codice. La maggior parte del codice in umbraco è memorizzato esternamente al DB e come tale può essere memorizzato in subversion o in qualsiasi altra piattaforma di controllo del codice sorgente. Ad esempio, i modelli, le estensioni XSLT, CSS, XSLT ecc. Sono tutti memorizzati nel file system.

Il contenuto della pagina e la struttura del sito sono memorizzati nel DB.

Ci sono alcune aree grigie, in particolare il dizionario che può contenere tutti i tipi di cose e contenuti.

Il nostro modo di lavorare con Umbraco è la seguente:

Abbiamo un separato Visual Studio Web Project che contiene le cartelle per i modelli, XSLT, CSS, gestori di eventi, controlli utente, ecc Questo è memorizzato in SVN. Quindi, su questo progetto, i file vengono copiati o compilati e copiati nella nostra istanza test/dev server del sito di Umbraco.

Una volta approvate le modifiche, basta copiare i file.

Se è necessario sincronizzare il contenuto tra le istanze di Umbraco, è possibile utilizzare Umbraco Pro (che include un componente chiamato Courier, che è proprio per questo scopo) o eseguire il backup del DB attivo e ripristinarlo nell'ambiente dev quando necessario (o persino usare la replica).

Proviamo per lo più a evitare la modifica del contenuto nell'ambiente test/dev poiché questo è il punto in cui unire il contenuto di nuovo al sito live può diventare complicato. Tuttavia a volte questo è inevitabile. Cerchiamo inoltre di evitare la modifica di modelli ecc. Tramite l'interfaccia di Umbraco.

La risposta alla tua domanda finale, "dovrei memorizzare i miei dati aziendali in un altro DB", è piuttosto complicata in quanto dipende molto da ciò che hai intenzione di fare con i dati. Se è contenuto che sarebbe meglio archiviare nel CMS memorizzarlo nel CMS, tuttavia se si tratta di dati fortemente relazionali che non si adattano veramente a un CMS, memorizzarlo separatamente.

Attualmente stiamo eseguendo un progetto in cui i dati sono archiviati in un DB esterno e abbiamo integrato un'applicazione direttamente nel back-end di Umbraco.Questo è stato un compito non banale (anche se è sufficiente catturare alcuni dati tramite i controlli utente) e dovresti considerare attentamente il livello di sforzo richiesto per archiviare i tuoi dati esternamente rispetto alla funzionalità integrata del CMS e al budget/tempo che devi giocare con.

Se si desidera utilizzare il modello di Visual Studio, è possibile scaricarlo da our website.

+0

Grazie per l'ottima risposta. Ti dispiacerebbe condividere lo script di build per la distribuzione dei file? –

+0

Ciao Niels, ho aggiunto un collegamento al modello di studio visivo che usiamo. Questo contiene una struttura di cartelle esadecimale ed esempi di eventi post build (che dovrai modificare). Basta archiviarlo in SVN ed evitare di modificare il codice tramite l'interfaccia di umbraco! –

+2

Grazie, risposta molto interessante. Due cose di cui non sono del tutto sicuro ... In primo luogo, come gestisci i tipi di documenti? Ricreali manualmente sul server di produzione durante la migrazione? In secondo luogo, Umbraco può gestirlo quando aggiungi i modelli semplicemente caricando i nuovi file * .master senza aggiungere i loro nodi al DB? – efdee

2

So che è già stata data una risposta, ma volevo solo sottolineare il fatto che sono stati fatti molti progressi per quanto riguarda il contenuto e la sincronizzazione del codice. Ad esempio: uSync e uSiteBuilder sono entrambi pacchetti di grande impatto che consentono di controllare il contenuto CMS come tipi di documenti e tipi di dati utilizzando il codice e quindi la versione controllata. Sono abbastanza semplici da usare, anche se, naturalmente, si prega di prendere i backup prima di usarli. Di solito il backup viene eseguito utilizzando qualcosa come Export Media sebbene in genere non sia una buona idea avere la cartella media in SVN dalla sua posizione predefinita. Piuttosto, inseriscilo nel proprio ramo e ospitalo in IIS come directory virtuale. In questo modo i tuoi file multimediali sono indipendenti dal codice.

C'è ancora molta strada da fare con la maggior parte dei CMS moderni per avere soluzioni che funzionano bene con il controllo della versione, anche se ci sono molte cose in corso. Umbraco è un ottimo CMS e ha una grande comunità.

Problemi correlati