How is your Development Environment Set up? - installation

Curious to know how people set up their personal and/or work development environment, in terms of:
Do you just have all of your developer tools (for example Visual Studio, SSMS, etc.) installed on your main operating system;
Do you use Virtual Machines to have a separate "clean" dev environment that consists only of the OS and one compiler you're working with;
Do you have multiple OS's in a multi-boot system;
Do you remote connect to a separate machine with your developer tools installed on there

It all depends on the type of the job i guess. Here is how my setup is:
The main PC. The one on my desk. Has everything on it.
The secondary machine. Runs Vista.
A bunch of "Clean" VMs for testing. Typically 2 machines of each OS we support.
A build machine. VM with no installed product. Just source code and some compilers.
A dedicated "Server" to host the server app and the DB. [Our product is a client-server thingy]
[On top of that, my primary and sec machines have the server and DB running too.]
EDIT: By "clean" i mean that they only have a freshly installed OS on them, nothing else. These are non-persistent and go back to clean state on shutdown.

I am running what I think is a fairly standard Agile C# development environment. Vista SP1, Visual Studio 2008 with Resharper 4.1, SQL Express 2008, Subversion server, command line svn client and Cruise Enterprise (unbelievable product) with 1 server and 1 agent for continuous integration.
I am running on a Dell XPS core 2 duo 2.4Ghz laptop with 4GB of RAM and 1 external 22" widescreen monitor.
I have tried and tried and persisted with VMWare Workstation (mostly but also Virtual PC) but I again and again resort back after tiring with the performance and annoying delays in Visual Studio. And I have tried every performance trick and tweak in the book available to me. It apparently just needs either more hardware than I have or far more patience.
I have also tried running 64bit Ubuntu with VMWare Worstation server running Vista (vlite'ed) and also windows XP (lite), but I found it just as annoying.
If you have similar specs to what I described then I can simply recommend not going down the VM path, unless it is ABSOLUTELY necessary.

I have a VMWare network replication of the main servers in my environment including SQLservers, Web-Servers, a copy of my dev box, and AD Servers. I also use VS on my dev box for simple things that don't need as much testing.

We use Virtual PC's for our development. As well as a VP for our build environment. The reason for this is so that we can switch between different projects without losing time. (for Support)

At our current client, we have an ESX server with virtual machines running on it. We access the virtual machines through Remote Desktop.
For my style in VS 2008, I use VibrantInk by Rob Conery.
We have Reflector and all Sysinternal tools available on all virtual machines.
I'm planning to have ReSharper on every machine also.
Firefox/Firebug combo is installed on every machine.
Web Developer for IE7 is also installed on every machine.
Cheers!

I really enjoyed using a single VM for each IDE I worked with, but that requires a beefy machine. However, my company has taken recently to the idea that the developers can do "just fine" with sub $500 machines. Thus, my current setup is everything on my only machine.

All of my tools are on my local machine. I generally work within the MVC mindset.
VMWare is set up on my machine, but it's only used on rare occasion for things beyond the control of my machine.
My work is primarily done on a windows machine, with Visual Studio.

I have Visual Studio 2005 and 2008 running on my main machine (Vista :p), and everything I can develop here without cluttering the machine, I do. Feels so much more responsive than in a VM. I have a VM for Linux-based development and several VMs for testing purposes. I never tested VMWare's debugging feature (run the debugger on the host and the debuggee on the guest), though I can imagine that that would be a good reason to have Visual Studio on the host, even if you don't care about responsiveness.

I have a number of IDEs and server products running on my main workstation. I also have a remote access laptop that has all the same critical software on it so I can develop locally (and not depend on Citrix and Remote Desktop to work on code fixes outside the office).

My main work system
Linux x64 dual core
Dual monitor
Redhat based OS
Vim, Kdevelop, Eclipse(with Epic, and Subclipse).
My system is similar(arch, and OS) to our servers, which is what I implement code for. Since I work for a small company with many hats, I tend to have a ssh'd mysql connection open in one window, with a vim screen open on the other side. Throughout the day I use SSH, VIM, SVN, firefox, and e-mail daily.

I put all toolchains and other apps needed to build my code into revision control, and write makefiles for all projects such that the version of the tools from the repository is used, not whatever may be in the $PATH. So when I do a label for a release, it includes everything needed to do the build, and depends on build machine setup as little as possible. All I need to do is sync to revision control, and type 'make'. Unfortunately this does require having cygwin installed on Windows, but personally, I consider a Windows machine just about unusable for development without cygwin, regardless of the prerequisites of the build system.
I have simple makefiles to build projects that include platform-specific .mk files. I don't manually create IDE project files. In a couple cases (Rowley Crossworks for embedded ARM development, Visual Studio for self-hosted windows PC development), I auto-generate project files based on my makefiles, as part of the "make debug" target, and then launch the IDE with the generated project. This makes debugging convenient, without requiring parallel maintenance of a IDE-specific project file in addition to my makefile.

I am about to set up a new development environment for a new department.
Build environment (support both Java development and .Net) will be on to separate VMware machines running on the same physical computer. Both images will use 2008 server.
Developer machines will be desktop computers, most likely qith 6 gig ram, big harddrives, 1 or 2 cpu's with dual or quad core, 24" screens * 2, etc., and with 2008 server installed. This to ensure that the developer code is compiled on the OS. Desktops because I want the developers to be able to use VMware to test, etc., without spending to much time complaining about lack of performance with 2 VMwares running at the same time :)
I am trying to figure out the build environment now. Considering Team City, ++. Difficult to find the right one when you want to support multi-platform environment without to much fuss :)

Every developper setup includes a MacBookPro 17" with a 22" lcd screen.
Eclipse is our IDE, and we use VMWare to host our developpement database (oracle) under winXP.

Obviously a lot of your answers are going to depend heavily on what kind of development each person does. Maybe we should be categorizing these? :)
Web Development
I use a VM to run a Linux guest with a development webserver. I use Notepad++ on my host for editing (recent convert from jEdit), and with drive mapping in the VM software (Sun's VirtualBox), my dev webserver guest machine has no problem serving up the ever-changing source files. I also use the Windows XP IE6 VPC image in another VM to test the page in IE6. I use this setup even if I'm not developing a complicated web-app and am simply working on a static HTML page; there are still some quirky differences in behavior between a locally opened file and a served webpage in a number of browsers that make this worthwhile.

Related

Visual Studio 2008 Hangs

Visual Studio 2008 hangs a lot on my machine. I work in an team environment using Team Foundation Server and when the server has issues VS hangs forever, sometimes if I have two instances open one of them will hang even if TFS is working. I try to disconnect from TFS and work offline but even that hangs my VS. Is there any way to make VS more responsive in case TFS is down?
I have a quad core i5 CPU, 8gb ram, and am running locally (not in a VM).
This might help you set VS to work offline and should help with the server timeouts. Also kick the sys admin of your TFS server, it shouldn't be that unreliable.
Sometimes this is caused simply because the TFS dialogs appear off-screen and it appears to hang. If pressing Esc "unfreezes" Visual Studio, then this is likely the problem.
I found the solution at: http://www.imiscommunity.com/visual_studio_2008_hangs_tfs_compare_dialog_not_visible
TFS can be a serious nuisance when developing a solution that is used by many team members. Without knowing more specifics about your setup, I would ask a few more questions:
What is your machine spec?
Are all other developer machines the same spec? Do they experience the same kind of issues?
Have you tried watching the CPU and Memory usage in Windows Task Manager to determine the amount of resources being used?
In summary, I have found that this can often be down to a number of reasons. As a contract developer, I have to use many different systems from the latest desktop with 12GB of RAM and an i7 processor, through to Virtual Machines on a server (my preferred choice because it is scalable and easier to snapshot), down to using older machines that are insufficient for the task (one of the distasteful parts of the jobs is having to request an upgraded machine).
I suggest reinstalling you development environment from scratch, including operating system and everything. Make sure the hardware is the best you can get, and install on a virtual machine instance on that development machine. That way you can take incremental (albeit slightly large at a fair few GB) backups that will prove handy should you come across an issue.
BTW the most common problem I had was with Visual Studio plug-ins on a system that lacked sufficient RAM. ReSharper was my biggest offender as it compiles regularly in the background in order to highlight bugs - but personally I would not code without it now.

How to development in Visual Studio and then deploy apps to Linux machine

How to develop app in Visual Studio and then deploy apps to Linux machine (OS - Ubuntu, web server - Nginx). Can any explain the steps, it will be a great help
I would say that there are three ways how you can develop apps for Linux using mono.
First is using only Visual Studio for development and from time to time deploy your app to Linux to see potential issues. I personally use this scenario because it's simple and when you are not messing with MS specific stuff or yet fully unsupported things then you shouldn't have problems (at least I didn't so far). Disadvantage is that you will discover mono specific problems only during runtime on Linux machine.
Second approach is using Visual Studio with Mono Tools. I tested it when it was in beta and it was sometimes quite handy (you will move the phase of discovering mono specific problems to your dev environment, however you can still have some certain issues on Linux machine), but since this tool doesn't support debugging for now I don't use it personally.
Third approach is to use only MonoDevelop on Linux (since debugging is now supported only in Linux). With 2.2 release this IDE becomes really good and suitable for development however I have tested only console and basic ASP.NET MVC apps so I can't tell you if it's ready for bigger projects.
Deployment to Linux is quite easy - I just installed proftpd on Linux machine, configured it and copied project there from Windows machine.
If you are developing an application for Linux in C (as Nginx is) or C++, you need to develop on Linux.
There are many IDEs for Linux that you can use for this.
You can also try to run Visual Studio in Linux using Wine.
Use Mono on Windows and compile your apps with it , I guess Apache is only supported ... Disclaimer - I do not have personally experience with it ...

How to set up a SharePoint 2010 developer machine?

As the release date for the public beta of SharePoint 2010 is coming closer and closer, I'm wondering how to set up a developer machine for it. I've heard that for developing on SharePoint a 64 bit system is needed and that Microsoft advises to use Windows 7 64 bit and install SharePoint 2010 on it.
I think that won't be an option for me as I only have one computer here at work and I don't like to install SharePoint on the same machine that I use for my normal office work (email stuff, writing concept papers, ...).
Am I right that I only have two other options? Using Server 2008 as a desktop operating system and install SharePoint 2010 on a virtual machine or using Windows 7 64 and use VMWare to host the SharePoitn 2010.
So I'm wondering if there are any other options and which one you chose? What experiences have you already made?
If you decide to install 2010 on your Vista/Windows 7 machine, make sure you have at least 4GB of RAM (I'd personally want at least 6, if not 8), and follow the instructions from MSDN: "Setting Up the Development Environment for SharePoint Server"
Yes, you are right there are only three options:
Install SharePoint onto the OS natively (new for 2010 and aimed at developers)
Install SharePoint into a VM you run on your machine
Get a second machine and install SharePoint on it.
In addition you will need Visual Studio 2010 for the developer experience to be complete.
I would highly recommend trying the install native route as it will provide a great development experience and will run fairly light. Also at worst you can have two batch files, one of which starts and the other stops the services so there will be zero impact except disk.
I am doing some SP2010 development at the moment. I have:
Windows Server 2008 R2 Standard with Sharepoint 2010 and Visual Studio 2010 installed, running on Hyper-V. I just connect to it via Remote Desktop. Works a treat. I do all my dev in the VS2010 instance running on the VM, leaving my physical work computer free for everything else. I back up my work using TFS, so if I mess up the Sharepoint install (somehow), I can just roll back to a previous snapshot.
hope that helps. :D
Sharepoint 2010 development takes a lot of hardware resources. You can't use Hyper-V on Windows 7 but if you have the Enterprise version of the OS, you can build and boot directly from VHD, taking normal advantage of hardware resources. To learn how, you can visit this post: http://rambletech.wordpress.com/2011/09/19/boot-windows-7-directly-from-virtual-hard-disk-image/
HTH.

How to transform Win2K3 into a Workstation Developement OS?

Here is a question not directly related to programming.
Being fed up with Microsoft Windows XP Professional, and the lots of eye-candy, I want to try Microsoft Windows Server 2003 as the main OS on my development PC. (The other reason is a better version of IIS than 5.1). And knowing that Win2K3 was originally designed as a Server OS, I think that I should make it somehow more "workstation friendly".
My question is: How do I transform Win2K3 (Standard Edition most probably) into a Workstation OS? Any articles or links are highly appreciated.
PS: My development PC must run mainly MS Visual Studio 2008, MS SQL Server 2008, MS Expression Studio 2, different Oracle software (10gR2, ExpressEdition, 11g) and other little utilities (a testing framework, a subversion tool - TFS, a web browser, a bittorrent client, etc). All of this are compatible with Win2K3, as I previously checked.
Tnks
I only server OS as my workstation, I had Server 2003 before I switched to Server 2008. There's a guide you can find here http://www.msfn.org/win2k3/.
You shouldn't run into any problems. Most of windows xp drivers will work on server 2003, however, some apps won't. Especially those that check for the OS version before installing. But you shouldn't have any problems with VS2008, Expression and anything you posted.
For me the only thing that was troublesome was running iTunes on server 2003, it doesn't look as good.
And if you like the eye candy you can turn it on by starting the Theme service and changing a few settings.
You shouldn't run into any issues running those applications on Server 2003.
The last time I personally ran 2003 on a workstation the only real big change was changing the security settings of internet explorer.
If you run one of the free anti-virus software packages you may find that they will not install on a Server OS.
edit: As another poster has suggested I would also go straight to server 2008 if it is an options. Server 2008 runs very well as a workstation OS and if you're hardware supports it the virtual server works very well.
Here's links for turning 2003 into workstation:
http://www.google.com/search?hl=en&q=windows+server+2003+workstation+converter
If you'd like use Windows Server 2008 as a workstation, runs much better (faster) than a regular Vista install:
http://www.google.com/search?hl=en&q=windows+server+2008+workstation+converter&aq=1&oq=windows+server+2008+work
or try getting your hands on Windows 7 RC1 which runs quite well.
None of the software types you've listed has any workstation-biased dependencies that I'm aware of. Expression Blend may suffer a bit depending on your hardware and drivers, as WPF is a little more demanding of visual goo than most other development tools for Windows forms.

How clean is uninstalling the Service Packs from Visual Studio 2005?

This is a total dah question but I hope somebody can help me out.
I have VS2005 SP2, nonetheless, I really need to use VS2005 No-SP to compile the release version of our product. Is it "safe" to uninstall the service packs?
What I mean by this is:
What implications should I take into consideration?
Will be things left from either Service Pack that might invalidate my requirement?
Would it be better to uninstall VS2005 and everything and then reinstalling it?
Should I rather format my computer and install VS2005?
Sorry for not directly answering your question, but might I suggest using virtual machines for your 'special' development scenarios?
In our office, people who get new machines, or for whatever reason find themselves doing a clean install are installing Windows 7. As such, they really don't want to pollute their clean 7 installation with our legacy development tools because of the occasional need to update one of our legacy applications.
Instead, they use a Windows XP virtual machine into which they install our legacy development tools. Having these special-situation development VMs saves so much time. (Testing in general is so much easier with VMs, too!)
A nice plus that makes working with these VMs is the "Unity" feature of the latest version of VMWare Workstation (6.5.) If you're not familiar with Unity, watch http://www.youtube.com/watch?v=B4PYg9WkSLc It's very handy being able to have your virtualized apps appear to be a part of your host OS.
Since it seems that your actual problem is the dependency on the CRT DLLs, you should look at the _USE_RTM_VERSION macro. There are corresponding macros for ATL and MFC.

Resources