Windows 7, A Good Platform for Developers? - windows-7

I know of a similar question that got closed. But this one is from a developer's point of view.
I must say my experience in terms of software development (not including testing) has been more painful on Vista than on XP. I'm wondering if you guys have had similar experience; and if so, does Windows 7 eases the pain?
I'm using Vista on my lappy and XP at work, both for development purpose, .NET (all sorts), some php, MSSQL and MySQL.
Am setting this as a wiki.

I can honestly say that Windows 7 is what Vista always should have been, and then some. If you're mainly a Linux platform developer, then run that. If you're mainly a Windows platform developer, Windows 7 is the place to be.
In either case you can run the other OS in a VM.

Windows 7 is no better or worse than XP or Vista for development, at least as far I can tell. And yes, Windows 7 is like gas # 2.85/gal, not the 3.65/gal Vista charged -- that is, it seems better because it, well, is -- even if it still isn't great.
However, I find it still "lacking" by default I end up installing cygwin/mingw/rxvt and other tools to make (windows in general) more accommodating to my needs and expectations.
(Of course any particular dev. experience will be tied with what is -- or isn't -- supported across with windows versions and any small changes which have been introduced.)

Here's one data point: most of my fellow developers in MS seem to be running 7 these days (every now and then, you get a question on the team mailing list, "anyone got a Vista box to repro this?" ~). A large number of people ran it as a main development desktop in RC and even beta timeframe, too.
Most of Vista development hurdles, as I understand, are with UAC. 7 throws a few less prompts at you, but for particular usage scenarios when doing development, it probably won't be any different. Of course, you can always turn it off, too, but you could in Vista just as well.
Some nice parts are there if you work with RDP regularly - which you probably do if you have several boxes and don't like KVMs, and/or run VMs on Hyper-V or Virtual PC. When doing RDP 7 to 7, you can get full Aero Glass experience, with all the effects enabled. Apart from the eyecandy, it can be helpful when testing related functionality.
What else... PowerShell 2.0 final out of the box. I find it a very handy development tool, just as shell is on Unix. You can get PSh 2.0 RC for XP or Vista now, but not final (yet).

I think Vista and Win7 are great development environments. After all, it's what a large proportion of your end-users will be using, so you'll be able to see how your app interacts with the newer features of the platform, whilst almost everything else about your app will look and feel the same way as it did on XP.
Take UAC for example. Yes, it can be annoying (much improved in Win7 though), but used properly it works well. It separates administrative privileges from regular user operations. If you don't actively develop in Vista or Win7 then the temptation is to make the problem go away by telling people to turn off UAC or run as administrator all the time. If you develop on that platform then it forces you to come to a better solution.

Used Vista for 3 years, full-time C++ development with predominantly XP customers. No problems.
Have been running W7 RC 64bit for 2 months, same machine, same customers. No problems.
Way better than XP, but that's mainly because I assimilate to new features very quickly and don't resist change.

I find the following things noteworthy to Windows 7 being a lot better to develop on than XP:
A lot more drivers - So you happily plug your headset for meetings, that new video board with 4 monitor support, etc. Such things can be a pain in XP at times.
A lot more support to virtualization - Both of applications (Terminal Services) and of the OS. (Hyper-V)
Improved support for with multiple monitors and new UI to help at that - Aerosnap, gestures, etc.
A log of dev stuff out of the box,
.net runtime, powershell. This all
stuff that you can download and
install on XP, but it is always a
hassle when you have to reinstall
the machine.
Win 7 is a no brainer over XP, definitely something to have if you have the money and the hardware to upgrade, or if you a getting a new computer.

I don't think the question can be answered with "Yes" or "No". The best answer is "It depends".
If Windows 7 solves some problems you had with other operating systems while developing (or at least does not introduce new ones) then it is a good platform for you. On the other side, if you have problems with it then stick to what you know is working.
From my experience: Win 7 is good for me. There are ~3 months since installed it and is working well - is not interfering in any bad way with my development activities. Actually is not the final version of W7, is the RTM one.

It's pretty much same as Vista. The only problem I've ran into is the annoying UAC control which renders shell extensions (like TortoiseSVN) useless, unless you change the ownership of the folder. But I guess it's the same in Vista.
I'm running MySQL, IIS, apache, TortoiseSVN and Visual Studio on Windows 7 and so far everything is working perfectly.

I've personally switched to Windows Server 2008 R2 Standard as a development machine and I find it much faster than Windows 7 Ultimate x64. Try it and you will see the difference. It can be tweaked to be extremely lightweight and is blazingly fast.
But because the question was about Windows 7, I've used the RTM Ultimate x64 as a development machine since August and didn't find much of a difference compared to Vista Ultimate x32 I've used before. Surely it looks more polished but as I'm primarily looking for speed it didn't made much of a difference.

I have two development machines - one a laptop and one a desktop - both running Windows 7. The desktop is considerable faster, not just in launching VS 2008, but the lag I was seeing with ReSharper on some projects is completely gone.
On my laptop, Vista came installed and I have been running Windows 7 since the last beta. With Vista, VS felt sluggish. With W7, not only does it feel faster, I am running SQL Server Standard, a local SMTP Server (SmarterMail), hosting a Lucene.NET index, and running Velocity; all for a project that I am currently working on. And it is just as usable as it was when I just has VS on Vista on the same machine. I never expected I would be able to have all of that running on a laptop and still be usable, so my productivity on the train for my commute has skyrocketed.
One of my favorite features of W7 is the preview pane in Windows Explorer. With it on, I can select a C# file and look at the source without having to open it in VS or a text editor. Really handy for when I need to look at something in another project. I seriously do not have a single complaint about this OS - something I have not been able to say in a long, long time.

How does Visual Studio 2008 run on Windows 7? When I ran the Windows 7 Upgrade Advisor it was (ironically) the only software that was flagged as being potentially problematic.

My box:
Windows 7 Professional, VS2008, VS2010, Netbeans with PHP addon, MSSQl, MySQL, PHP, Apache, IIS
Everything works fine

A good platform for developers is Linux, but it depends of your language, .Net the best is Windows, Objective-C is Mac and C is Linux...

Related

Are there any development issues with regards to a specific version of Windows 7?

With the three different versions of Windows 7 (Home, Professional, Ultimate), are there any limitations/ease of use issues that are known of/might become an issue?
The WinXP virtualization can most likely improve invaluable on Pro and Ultimate for testing differnet builds (although it's easily circumvented with something like VirtualPC or VirtualBox). Is there anything other than the "BitLocker" and multilang with regards to differences between Pro and Ultimate?
Clearly, developing on .Net 4.0 won't be an issue, but what's actually available that's a bonus/detriment in each version from a developer's standpoint that makes our job easier/more enjoyable?
Edit: I know the new stuff that will be coming to Windows 7, but is there any difference between the different versions of Windows 7 is my question with regards to dev. In other words, what's the selling point of developers buying the Pro/Ultimate edition?
You'll find the UAC is fairly unobtrusive - so you can leave it on. This then gives you the 'Ouch' moment on the odd occasion you need to consider it :-)

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.

Has anyone ran into any issues developing on Windows 7?

I want to trial Windows 7 but wondered if anyone who has done so already ran into any issues specifically related to development?
i.e. problems with VS2008, SQL Management Studio and SQL Server, MySQL, PHP etc. etc.
Examples from XP -> Vista: in Vista there was a sudden loss of an SMTP server. And there were initially (if I remember correctly) issues with VS2005 with I seem to remember a patch coming out later to remedy.
EDIT: or on the contrary any big advantages or benefits to developing on Windows 7!
I been using windows 7 for a while now.
I been using VS2008, netbeans, tomcat, sql manager studio, mysql etc...
And i actually find it more stable and faster then windows vista.
There aren't many advantages to developing on Windows 7 before it's released. Most development features are a function of the IDE, not the OS. So, you might want to consider instead if you should be developing on Visual Studio 2010 instead of VS2008. Instead, you're more likely to have compatibility issues, although for the most part, Windows 7 is much more compatible with existing software than Vista was when it was in beta.
There could be one advantage to developing for Windows 7 before it's released -- you have a head start in taking advantage of features that competitors haven't yet, giving you an advantage in the market. That's the theory at least. That assumes you're going to develop something that uses a feature only available in Windows 7. That assumes you wouldn't be better off with the larger number of sales you'd get by developing something that works on existing platforms.
The only issue I've encountered so far involves compiling older vanilla C programs with Visual C++. You're usually presented with an error like so:
mt.exe : general error c101008d:
Failed to write the updated manifest
to the resource of file
".\Release\SomeProgram.exe". The
binary is not a valid Windows image.
You have to add an empty resource file to the solution.
More on the issue here.
I've never gotten any of the new audio stack examples working; thus this question. API works, documentation is... a bit lacking at the moment; sure to be fixed by RTM.
Other than that, Windows 7 has been faster than and just as stable as Vista (2 crashes from RTM, 0 crashes after SP1) was for me. Truly, you should be developing on Vista and testing on Windows 7 RC as a general practice with respect to pre-release operating systems; but I think we'll get away with it just fine in this particular case.
My advice would be to not develop on Windows 7. Note that I don't mean you shouldn't target it as a platform, just that you should be doing your development on a stable platform.
I personally won't trust a new release of Windows (or Linux for that matter) until it's been in the wild as a proper product (not release candidate) for many months. For Windows, I tend to wait until the first real service pack plus a month for all the nigglies to be fixed.
For Linux, I'm still using Ubuntu 8.04 LTS, not 8.1, and certainly not the 9 alphas.
Test machines are another matter, you should always have one at the "latest and greatest" level for testing, but I consider the development machine of prime importance, needing a stable platform.
No problems from my end yet, been working on a c# app with visual studio 2008 x64, and php web apps with dreamweaver cs3 and netbeans.
Windows7 seems to be just vista with more bells and wistles and a bit more responsive, not to sure if to much really change "under the hood" so to speak. But I have nothing to back that statement up with...
I've been using Win7 for a couple of months now and never had a problem. I went straight from XP to 7 and the only problems I faced were related to configuring SourceGear Vault to work with IIS7...other than that,it's been all good.
I use VS 2005, VS 2008, SQL Server 2005, Infragistics NetAdvantage, and a couple of third party components.
Although I haven't seen any advantages for the development side of the applications, I'd recommend you to upgrade to Win7 only for the better feel of a complete OS. I mean XP was good, but I really dig Win7.

Does anybody have experience with Visual Studio 2008 on Windows 7?

Has anyone already tried this, anything particulair that I need to be aware of?
Yep, been running it for a while and I haven't hit any problems yet. Can't say I've use it all day every day, but I've built WPF, WinForms, Web and Console apps with it for testing various things and haven't had any hitches.
I have it on my Dell X1, which is effectively my "NetBook", and it's really pretty rapid. The only glitch I have had at all is some problems with graphics acceleration, but that's down to the Intel driver I'm using being an old XP driver, and it was easily worked around.
I've been running it inside a VM in Parallels Desktop 4 on a MacBook Pro. Absolutely no problems to speak of.
(There's no sound in Windows 7 as virtualized through Parallels, which is a known issue — but not very pertinent to the operation of Visual Studio.)
Jeroen,
I've been unable to install the 2008 Team Developer edition - keep getting a permission error. I was, however, able to insall the 2008 Team Database edition. I normally install both editions, so am kind of bummed about not getting the Developer edition to install. Screenshot of the error is here if you're curious.
No Problem with team edition, but only using it for web projects.
I've been using it at work since RC1 and have not run into any issues. Have developed a WinForms app, a WebForms site and now working on a MVC project.
I have had zero problems running Visual Studio 2008 Pro on 32 bit and 64 bit editions of Windows 7 for full-time C++ development.
If the application you are developing doesn't behave correctly under UAC you may will need to run the IDE as admin otherwise it won't run correctly under debug (this is the applications problem, not Windows 7 or Visual Studios).
Others seem to have problems with access rights/permissions, this should also be fixable by running the IDE as admin (via right click) or more permanently via the compatibility tab in the shortcut properties.
I don't know why this happens, is probably related to their particular user account settings.

Is Vista Ultimate 64 w/SP1 okay for a development machine?

I am updating my rig and I need to make a decision between staying with XP x64 or going to Vista x64. I do very little development, really just building products from my developers. The other 90% of my work is done with Google Apps, Skype, Office, etc...
I want to upgrade to Vista not only because I will have 3x monitors running on DirectX10, but mostly because iTunes isnt' supported on XP x64!
So, my question...
With all the horror stories about Vista, will Vista Ultimate x64 with 8GB RAM be good for my development machine?
If I can't develop on Vista, I can always fire open a VPC to do the development in. No?
EDIT
I am using all Microsoft development tools...
VS.NET 2005
VS.NET 2008
VB6
SQL Server 2005/2008
ASP.NET
(.NET 2.0 & .NET 3.0)
I'm sure the software will run, I suppose I am not so sure that the OS will be speedy enough, or stable enough.
I am fine with Vista 64 bits for .net and php.
A lot of conversation about it are already on SO. Here is some important point your might take in consideration for .Net:
Unit Testing with NUnit
UAC with developpement
VS and Vista
A lot more...
You can develop for X86 on your new X64 machine without problem.
For PHP XAMPP work fine, Eclipse work fine too.
I run Vista x64 with 4GB of memory and haven't run into any major problems. Before this I was using Vista x86 and I definitely like x64 better as it seems more stable.
In case you're curious, with only (hehe, only!? amazing to say) 4GB of memory I can easily run:
3 instances of Visual Studio 2008 with Resharper
a couple Sql Management Studio instances
Outlook with 3 mail stores totaling # 2GB
Firefox with # 20 tabs
a bunch of Windows Explorer windows
Windows Media Player
iTunes (which is slow as a dog)
# 5 Excel and Word documents
plus some assorted services (eg, Sql Service 2005 and 2008) and status-area apps
Even with all this I still have roughly 750 MB free and no performance issues when using the applications.
I run Vista Business x64 SP 1 (8 GB RAM) for one month now. No problems so far. I'm using following software:
Visual Studio 2005 SP 1
Visual Studio 2008 SP 1
TortoiseSVN / VisualSVN
Visual SourceSafe (older projects)
SQL Server Client Tools
Firefox 3.01 + Firebug
IE 7 + Fiddler
Chrome
Red Gate SQL Compare / Data Compare
Virtual PC 2007 SP 1
Notepad ++
SyncBack
RoyalTS (RemoteDesktop Manager)
Skype
Office 2007
I used it for a long time before switching to Windows Server 2008 (x64) - was very good though,
Personally, I found Server 2008 to be a much better dev OS though. Check out this article on converting Windows Server 2008 to smell a little more like Vista.
I personally use Vista Ultimate x64 with 8GB RAM for my development machine. I don't quite have 3 monitors, but my machine is pretty well set up for development.
Vista x64 is great for .NET and Java. Started with 4GB RAM and that wasn't enough (hit 100% sometimes and the machine would slow to a crawl). 6GB is just barely enough. Hitting 95% memory usage sometimes and it slows down a little, but the machine doesn't go into a paging frenzy anymore.
I run Vista x64 Ultimate as my primary dev machine and it's just fine. Support for x64 has come a long way and for the most part you won't notice a difference except for program files location and much, much more RAM.
Vista will be plenty fast and stable. I'm using Vista x64 Ultimate for development #work right now, and have been for some time. I have nothing but good to say about it.
I'd say it depends on what you're developing. The first priority should be to make sure that all of your development and testing tools work properly under Vista x64. If they don't, there's no reason to suffer the pain of doing all your actual work in a virtual machine.
So I'd say the best thing to do is to take the plunge, see how it works, and keep the XP discs around. And should everything work as expected, it would still be prudent to have a copy of XP running in a VPC just for compatibility testing.
You will have to go XP-based Virtual Machine for any development in IE6. It is near-impossible to run that browser in Vista, let alone Ultimate.
Since a lot of government and legacy code base is against IE6, this happens a lot.
I've used Vista x64 as a development machine and have had only a few minor issues mostly related to using third party APIs in Visual Studio 2008. Just remember that if your getting a really unexplainable error within your Visual Studio project while utilizing a third party API - try compiling your app using the x86 CPU flag in your project settings. This has solved a few headaches for me here and there.

Resources