In particular,
- what functionality is not available?
- what restrictions are there on its use?
In particular,
Visual Studio 2008 Product Comparison
As far as I know there are no restrictions on it's use, but I'm not a lawyer.
AviewAnew pointed out you can use Express Editions for commercial use: there are no licensing restrictions for applications built using Visual Studio Express Editions. See FAQ #7.
Here's comparison chart of editions
Edit: didn't realize this was for 2005, not 2008
I think in 2008 the express editions do not have the built in Testing features for one.
The major areas where VS Express lacks features compared to VS Pro:
NOTE: it is often said that the Express EULA does not permit commercial development - that is not true (Visual Studio Express FAQ Item 7)
You can build MFC apps if you download the libraires in the platform SDK. But there is no built in support for designing dialogs
There's a handy set of comparison charts on microsoft.com.
It depends on the particular express edition, of course (since there are several and they have different features). The limitations you're most likely to run into are source control integration (and TFS client license), debugging limitations, limited refactorings, no unit testing support, and limited designer support.
For completeness sake, here's a list of features that are in Visual Studio 2008 Standard Edition but are in none of the express editions:
Other people have posted huge lists, but as a practical matter, speaking as someone who does mostly systems programming, the features I miss most when using the express edition are
the thread-aware parts of the debugger,and
the ability to open files with the built-in binary viewer.
If I did MFC programming more often I would probably miss the dialog designer as well.
Add-ins are allowed in VS express. The most notable one is straight from Microsft: XNA Game Studio works as a VS express add-in.
There's even a project type (maybe only available in full VS) that lets you build your own VS express add-ins!
One that is missing (which is nice to have) is:
Source Control Integration enables two options: source control solution based on the Source Control Plug-in API (formerly known as the MSSCCI API), or a source control VSPackage
This is particularly important especially if you're working with systems like Perforce where you must check out files before changing with them, particularly changing project settings for all team members.
These are the most significant for me :
"You can't create windows services for one" -- you CAN, you just don't have a template for it. Services are just normal applications with an extra twist.
See:
Note that currently, you can't get F# in an Express edition, though I imagine that this is likely to change at some point in time.
There is a workaround - you install the Visual Studio Shell and F# CTP separately and they work together.
I had trouble with Visual Studio Express (C++) 2008 (with service pack 1) on Windows Vista, with debugging. Any time I did anything such as (a) break the program, (b) set focus from the app back to the IDE, (c) resume execution, the program hung for about 30 seconds. Task Manager showed "VSExpress.exe" consuming an entire CPU for the duration. Vista showed "Not responding" in the IDE's title bar during this time.
This was driving me bonkers so I bought a commercial copy of Visual Studio Professional 2008 ($150 from SoftwareSurplus) and this solved the problem.