I've had an insufferable itch for the past 6 months to remotely develop on my windows laptop. I need to run windows because I'm running .NET. The journey started as follows:
Run dropbox and edit files through dropbox. Let them sync.
Result: Not real time enough
Run unison on both and edit locally and have unison sync it. Unison is fast and painless but it's not real time. I had to bolt on an inotify call so that it would trigger the unison sync whenever I saved.
Result: Too much complexity. Unable to remotely execute programs (e.g. to execute SQL)
Run cygwin sshd and ssh into the server and edit locally.
Result: Somewhat complex to set up. Pretty decent solution but it was laggy over my wifi. Also, cygwin is a large setup
Run dropbear sshd. My hope was that I could compile dropbear under mingw and run it without cygwin. Not possible. I've been able to get it to run with a slightly smaller cygwin install but still required cygwin.
Result: Turns out that it requires most of cygwin.
Run emacs w/TRAMP. OK, now I get the benefit of instant feedback.
Result: No real issues. Sometimes tramp gets hiccups but that may be because of a botched cygwin install that occasionally blows up on forks.
Run a vagrant VM box w/mosh and mosh into the server and vim/emacs locally.
Result: Best option so far. No dropped connections and quick keys feel realtime.
I also need the ability to connect to SQL from linux to my windows box.
Run sqlcmd while from ssh connection to host
Result: Works well if I ssh into the box, but won't work if I am sshing into the linux VM
Run winexe from remote connection
Downloaded from: http://eol.ovh.org/winexe/winexe-static-081123.bz2
./winexe -U joebo -W WORKGROUP -n joebo-PC //192.168.2.4 "powershell.exe -file -"
Result: Gives me a shell which I can run sqlcmd from
Run sqsh from remote connection
Installed via apt-get install sqsh
sqsh -S 192.168.2.4 -U sa
Prerequisites: set up tcp listener on SQL and enable mixed mode auth.