Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at

  • Carlos Mosqueda 158 posts 247 karma points
    Oct 28, 2014 @ 21:50
    Carlos Mosqueda

    Best practices with multiple developers for Umbraco?

    We set up an Umbraco website which is now Live using Umbraco 7.1.6.

    We are going to start having multiple developers work on the website building controls, models, etc. 

    So what I did was set up a Visual Studio project using NuGet, Umbraco and the current files from our website.
    I tossed it up on Beanstalk Subversion.  

    Now... What is the best practice for developing using Umbraco.  Since the nodes, media, package info, and doctypes are tied to the DB, what would be the best approach.

    Our plan is to have a local dev (per developer tied to SVN), a Test Website and a Live (Production) website.

    What is the best approach for the DB?
    Should every developer have their own copy of the Live DB?
    Should all local dev site point to the Test Website DB?
    How should we port Doctypes, Media and Content nodes to from local Dev, to Test to Production? (Courier is an option we are exploring).

    But we want to eventually have all DB's in sync. What would be the best approach to have all DB's in sync as well as all the dev/Test/Live website.

    Thoughts?  I would be interested to hear how the Umbraco crew does their development.

  • Sunshine Lewis 31 posts 139 karma points c-trib
    Oct 29, 2014 @ 22:31
    Sunshine Lewis

    Hi Carlos, We are currently using a shared DB for all local developers and separate ones for stage and production. We use USync to keep the development objects in sync but we have not found it critical that content remain synchronized.

    We are still in active development (our site has 6 major parts, 4 of which are live) so this may change as we move more towards maintenance but here's what we're doing now.

    Environment: Visual Studio project using NuGet. Source control with Team Foundation Server.

    Content Development

    • All final content development happens in production. Production is the master database from which all else is copied. Ideas may be attempted on stage or dev but once, finalized we repeat it in production instead of moving it. End users/content managers all do their work directly on production.
    • We synchronize content from production to stage only when a major review (new section or something) needs to happen and synchronize from production to dev only as needed to recreate bugs, or test new functionality against existing content.
    • To synchronize database content we use SQL script creation tools: Toad for SQL Server to generate updates (for simple updates) or, when Toad scripts fail because of conflicts, SQLAzureMW (SQL Azure Migration Wizard) to drop, recreate, and reload everything.
    • To synchronize media content we use FTP. Having the media folder in source control proved to slow down the project significantly. Right now the media root is a part of the project but all of the sub-folders are excluded.

    Other Development

    • Views (templates, partial view macros, and partial views), scripts, and stylesheets and are edited in visual studio and published to the appropriate spots.
    • Document types, Datatypes, Macros, and RTE stylesheets are created/edited in the backoffice on dev and promoted/deployed via USync. (also sometimes by manually recreating although we try to avoid that). This takes care of keeping the database synchronized for development objects.
    • Packages are manually installed via the backoffice at all stages. After installation, config files and related things are published from dev as needed.
    • custom code, supporting template files (fonts, non-content images, etc.) and other non-umbraco specific things are developed and published as normal.
Please Sign in or register to post replies

Write your reply to: