Reputation: 10052
I've been developing a web application (written in Python/Django) for a while. All my development work is done on a Windows machine, but I eventually deploy to an Ubuntu 10.10 server (VPS).
I've started having a lot of trouble with the fact that my dev environment and production environment are different. I'm constantly trying new libraries that are supported on Linux, but have terrible Windows support, etc. I do have a staging server, but obviously I can't do most of my development by deploying to a staging server every time.
My Question: I want to keep working with Windows as my development environment, but to not have all these issues. What's the best way to go about it? I've started considering running a local Linux Server on a virtual machine, giving me the speed of a local server but removing the Windows obstacle. Is that the best way to go about this?
Upvotes: 3
Views: 5077
Reputation: 121
I would recommended a preconfigured TurnKey Django virtual machine for your development. A huge bonus in doing so is that you can leverage TurnKey Backup and Migration (TKLBAM) to migrate your app (and any server customizations) to the cloud when you're ready...
Upvotes: 0
Reputation: 9357
I guess there are as many solutions as freelance developpers.
Maybe not the best, but here what I'm doing and it works well :
What does it allow ?
You will loose some of the speed of a local server because of the VM required resources - hosted on the same machine than your windows stuffs, but the "how much" will depend on your hardware. In any case, this shall not become a bottle neck for such a layout.
It's a bit heavy to setup at the beginning but very convenient once on track.
Hope it gives you ideas at least.
PS: setting up a VM is quite straight forward, even a noob like me has done it :-)
Upvotes: 4
Reputation: 990
I've had a similar problem not a while ago. I've been developing a Linux mobile app and didn't want to abandon the convenience of Visual Studio editor. I've set up VirtualBox with Ubuntu and a shared folder between guest and host OS's. Thus I was able to edit code in VS and compile/run it under Ubuntu without much overhead. That worked well for me for quite a long time. I suggest to try that out.
Upvotes: 2
Reputation: 9764
Either use a virtual machine. Or you can use Cygwin. Which is a kind-of pseudo VM.
Upvotes: 0
Reputation: 612934
Use of virtual machines is the normal way to solve this problem. They work fantastically well on modern hardware. A VM will give you, by far, the most convenience of available options.
Upvotes: 4