2009-09-28 7 views
29

Je cherche à utiliser Umbraco pour mon site et jusqu'ici je l'aime.Umbraco: travailler avec le contrôle de version? test/production?

Une grande question que j'ai est de savoir comment puis-je contrôler la version d'un site Umbraco, car beaucoup de données sont dans la base de données?

Comment configurez-vous un environnement de test/dev et déployez-vous en production de manière simplifiée?

Aujourd'hui (sans Umbraco) j'ai utilisé SVN. avec différentes copies de la base de données pour le test et la production.

Le site que je construis est essentiellement un site d'annonces personnelles avec un backend complet. Serait-il utile de conserver les tables umbraco dans une base de données séparée et de conserver les données de mon entreprise dans un autre? (accédé par un groupe de commandes utilisateur)

Répondre

33

Il s'agit d'un obstacle commun lorsque vous commencez à travailler avec Umbraco et la réponse est d'utiliser ce qui fonctionne pour vous.

Cependant, il y a eu beaucoup de discussions sur les forums Umbraco sur cette chose, jetez un oeil ici:

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 chose clé à considérer est la délimitation du contenu et de code. La plupart du code de umbraco est stocké en externe à la base de données et peut donc être stocké dans Subversion ou toute autre plate-forme de contrôle de source. Par exemple, les modèles, les extensions XSLT, CSS, XSLT, etc. sont tous stockés sur le système de fichiers.

Le contenu de la page et la structure du site sont stockés dans le DB.

Il existe des zones grises, notamment le dictionnaire qui peut contenir toutes sortes de choses ainsi que du contenu.

La façon dont nous travaillons avec Umbraco est la suivante:

Nous avons un Visual Studio Web Project séparé qui contient des dossiers pour les modèles, XSLT, CSS, gestionnaires d'événements, les contrôles utilisateur, etc. Ceci est stocké dans SVN. Ensuite, lors de la construction de ce projet, les fichiers sont copiés ou compilés et copiés sur notre instance test/dev du site umbraco. Une fois les modifications approuvées, il suffit de copier les fichiers. Si vous avez besoin de synchroniser le contenu entre les instances Umbraco, vous pouvez soit utiliser Umbraco Pro (qui comprend un composant appelé Courier, qui est précisément à cet effet) ou sauvegarder votre DB et restaurer dans votre environnement de développement si nécessaire (ou même utiliser la réplication).

Nous essayons surtout d'éviter d'éditer du contenu dans l'environnement de test/dev car c'est là que la fusion du contenu sur le site en ligne peut être difficile. Cependant, parfois c'est inévitable. Nous essayons également d'éviter d'éditer des modèles, etc. via l'interface Umbraco. La réponse à votre dernière question, «devrais-je conserver mes données professionnelles dans une autre base de données», est plutôt délicate car cela dépend beaucoup de ce que vous allez faire avec les données. Si c'est le contenu qui serait le mieux stocké dans le magasin de CMS dans le CMS, cependant si c'est des données fortement relationnelles qui ne tiennent pas vraiment dans un CMS, stockez-le séparément.

Nous travaillons actuellement sur un projet dans lequel les données sont stockées dans une base de données externe et nous avons intégré une application directement dans le backend d'Umbraco.C'était une tâche non triviale (bien que saisir simplement des données via les contrôles utilisateur soit facile) et vous devriez considérer soigneusement le niveau d'effort requis pour stocker vos données en externe par rapport aux fonctionnalités intégrées du CMS et le budget/temps que vous devez jouer avec.

Si vous souhaitez utiliser le modèle Visual Studio, nous pouvons le télécharger à partir du our website.

+0

Merci pour votre réponse. Pourriez-vous partager votre script de construction pour le déploiement de fichiers? –

+0

Salut Niels, j'ai ajouté un lien vers le template de studio visuel que nous utilisons. Cela contient une structure de dossier exanple et des exemples d'événements post-construction (que vous devrez modifier). Il suffit de stocker cela dans SVN et éviter d'éditer le code via l'interface umbraco! –

+2

Merci, réponse très intéressante. Deux choses dont je ne suis pas sûr ... D'abord, comment gérez-vous les types de documents? Les recréer manuellement sur le serveur de production lors de la migration? Deuxièmement, Umbraco peut-il le gérer lorsque vous ajoutez des modèles simplement en téléchargeant les nouveaux fichiers * .master sans ajouter leurs nœuds à la base de données? – efdee

2

Je sais que cela a déjà été répondu, mais je voulais juste souligner le fait que beaucoup de progrès ont été réalisés en ce qui concerne la synchronisation du contenu et du code. Par exemple - uSync et uSiteBuilder sont tous les deux des paquets attrayants qui permettent de contrôler le contenu CMS tel que les types de document et les types de données à l'aide de code, et donc la version contrôlée. Ils sont assez simples à utiliser, bien sûr s'il vous plaît prendre des sauvegardes avant de les utiliser. Les médias sont généralement sauvegardés en utilisant quelque chose comme Export Media bien que ce ne soit généralement pas une bonne idée d'avoir votre dossier multimédia dans SVN à partir de son emplacement par défaut. Au lieu de le mettre dans sa propre branche et l'héberger dans IIS comme un répertoire virtuel. De cette façon, votre média est indépendant du code.

Il y a un long chemin à parcourir avec la plupart des CMS modernes pour avoir des solutions qui fonctionnent bien avec le contrôle de version, bien qu'il y ait beaucoup de choses en cours. Umbraco est un excellent CMS et a une énorme communauté.

Questions connexes