Work on same umbraco project from several computers - Best Practices
dont know in which forum to ask this, so excuse me if its not xslt related..
i have to computers: desktop and laptop. the desktop is always on and connected to the internet. the laptop always have internet access.
my first goal is to be able to work on the same umbraco project from both computers, whenever i want, i want to take my laptop and work not from home.
my second goal is to be able to deploy the finished project easily from the local development enviroment to shared hosting production enviroment.
what is the best and easy way to do that?
i'm developing usercontrols, so i need vs solution with source control ( i know how to do that), i also know how to install several umbraco instances locally (with different host names) and also knows how to install umbraco on shared hosting enviroment
but i dont get the whole picture yet and dont figure out how to do that easily...
Every development set-up will be different, depending on the size of your team (or if it's just you - a lone dev), and how complex/simple you want it to be.
SVN if fine, but what about the DB that not synced between the machines?
i guess i will need to work against one DB, so all the developers (in my case, only me, but from different computers..) will have all the files locally (synced through source control) and work remotlly with the same DB.
how exactly i can do that in the most easy and "proper" configuration?
Bit of a cop-out... but you could go with VistaDB for dev work? Keeping the changes via SVN, (not that I recommend source-control for ever-changing binary files). For deployment, you can import directly via SQL Server Management Studio (not Express version though).
Otherwise, yes, as you say, it's a single centralised database server (in your case, on your desktop) and then either script out or back-up/restore the database for deployment.
@Hendy thanks, i see that link now, and for now i decided to work with one center DB (on shared server) and a local umbraco instance on each computer. (that connected to source control).
That's how we do it, one central DB and multiple developers sharing everything* else via SVN
Some pain points you will have:
'Media' we do not commit this to SVN, it's a bad idea and it wouldn't help if we did, at the moment we try ensure one server has the correct Media folders and other servers get update the central server media MANUALLY :-(
'Packages' to get this to work with SVN we copy any installed DLLs to our 'lib' folder where we store all 3rd party referenced DLLs, then add a reference to you project. (this means you don't check in anything in the bin folder cos that would be bad)
Republish, if you make content changes on one machine you have to republish (republish entire site) it on others machines to get the changes updated. (you could automate this via the build script, or do it on application start which is not so efficient if it ends up on production server.)
Laptop holds Umbraco installation & database, as well as Visual Studio solution. (connected to SVN)
Desktop computer edits files via share & browses the website via network (hosts binding to laptop ip (192.168.0.xxx)
Visual Studio always opens project from laptop and copies DLL files to the umbraco installation (on the laptop) via post-build actions (\\laptop\share\mywebsite)
All you need to have is the laptop switched on and on the network. Runs really good when on VPN too.
1. each time i install new package, i need to check in (to svn) also the package dll's (that all the machines will have them), the package config and usercontrols if any.
2. each time i insert new media through the gui i need to copy it to all the machines.
3. i didnt understand the republish - if i understand, its because all the umbraco content saved in xml files? (in the data folder)
Work on same umbraco project from several computers - Best Practices
dont know in which forum to ask this, so excuse me if its not xslt related..
i have to computers: desktop and laptop. the desktop is always on and connected to the internet. the laptop always have internet access.
my first goal is to be able to work on the same umbraco project from both computers, whenever i want, i want to take my laptop and work not from home.
my second goal is to be able to deploy the finished project easily from the local development enviroment to shared hosting production enviroment.
what is the best and easy way to do that?
i'm developing usercontrols, so i need vs solution with source control ( i know how to do that), i also know how to install several umbraco instances locally (with different host names) and also knows how to install umbraco on shared hosting enviroment
but i dont get the whole picture yet and dont figure out how to do that easily...
thanks for your help!
Eran.
Hi Eran,
There are many ways to tackle this, and I'm sure most other developers/teams have their way to do it, (which I hope they will contribute here too).
One solution would be this...
1. Use Subversion (SVN) to handle the source-code between your different development-environments (obvious, I know).
2. For the build/deployment use TeamCity, (possibly from your desktop?) - to hook into the SVN commits (or tags/releases).
http://www.jetbrains.com/teamcity/
Every development set-up will be different, depending on the size of your team (or if it's just you - a lone dev), and how complex/simple you want it to be.
Good luck, Lee.
thanks lee,
SVN if fine, but what about the DB that not synced between the machines?
i guess i will need to work against one DB, so all the developers (in my case, only me, but from different computers..) will have all the files locally (synced through source control) and work remotlly with the same DB.
how exactly i can do that in the most easy and "proper" configuration?
Bit of a cop-out... but you could go with VistaDB for dev work? Keeping the changes via SVN, (not that I recommend source-control for ever-changing binary files). For deployment, you can import directly via SQL Server Management Studio (not Express version though).
http://stackoverflow.com/questions/572833/how-to-move-data-from-vistadb-to-ms-sql-server
Otherwise, yes, as you say, it's a single centralised database server (in your case, on your desktop) and then either script out or back-up/restore the database for deployment.
Cheers, Lee.
thanks, lee thats help.
anyone else want to share with us how his configuration on multipyle development enviroments?
Hi Eran, have you read this thread : http://our.umbraco.org/forum/core/general/3619-Source-control-and-multiple-developers ?
@Hendy thanks, i see that link now, and for now i decided to work with one center DB (on shared server) and a local umbraco instance on each computer. (that connected to source control).
hopes thats will be good for know.
thanks,
Eran.
Hi Eran
That's how we do it, one central DB and multiple developers sharing everything* else via SVN
Some pain points you will have:
I keep things nice and simple.
@Murray Roke:
so as i undersrand:
1. each time i install new package, i need to check in (to svn) also the package dll's (that all the machines will have them), the package config and usercontrols if any.
2. each time i insert new media through the gui i need to copy it to all the machines.
3. i didnt understand the republish - if i understand, its because all the umbraco content saved in xml files? (in the data folder)
thanks
i forgot the question marks, but the above post is questions to see if i understand correctly..
@eran yep, sounds like you have the right idea
is working on a reply...