The release of Visual Studio 2005 has caused quite a shift in the Windows development market. The whole MSDN system is being re-aligned around the new Visual Studio Team System products, which build on top of the base Visual Studio package.
If you're an MSDN Universal subscriber, chances are you've been asked to transition your account over to the new MSDN Premium and choose from three new products: Team Edition for Software Developers, Team Edition for Software Architects or Team Edition for Software Testers.
This move is set to change the landscape for programmers, because Team Edition for Software Developers is Microsoft's entry into the tools market. Yes, it's made Visual Studio all this time, but it has always left such feaures as profiling and code analysis to other people - until now.
Compuware's DevPartner Studio is right in the firing line for this latest assault, so this latest upgrade must justify itself as an extra purchase.
Longtime Visual Studio developers will remember BoundsChecker, simply the finest tool for spotting memory leaks in your code. DevPartner Studio (DPS) has a heavily modifi ed BoundsChecker-like system at its core, but adds in code coverage analysis and static source analysis.
Each of these tools integrates neatly into Visual Studio as a menu bar, keeping itself close to hand, and DPS is designed to work out of the box with the last three versions of Visual Studio. With a few minor tweaks - .NET performance analysis is disabled by default, for example - you can import a project and get started in just a few minutes.
We don't put much stock in static source code analysis, particularly as Microsoft already offers FXCop, a .NET code scanner that points out potential code issues, free of charge. DPS integrates the same .NET design guidelines as FXCop, plus many more of its own.
Running the same code through FXCop and DPS, we found DPS gave us almost three times more warnings and errors. What's more, DPS gave us comprehensive C# and Visual Basic .NET code for each error types, plus links to more information.
Some of the error reports can be annoying: we got several hundred "Literal, hard-coded string found in code" errors in some code that was trying to parse XML, where hardcoded strings are a requirement. Still, the system does enable you to mark error types as suppressed, or mark individual instances as 'fixed' so you can clear the list.
The DPS code coverage analysis system is the best we've seen. When your program finishes, DPS displays each line of code in a different colour: black means 'can't be executed', green means 'executed' and purple means 'unexecuted'. It also provides you with method-by-method usage percentages, plus smart grouping options such as "Methods less than 30 per cent covered."
Actually checking your code's performance has never been easier, mainly thanks to DPS's helpful readouts. Some of these, particularly the Performance Expert, look similar to the new Visual Studio Team Edition features, but only on the surface: the DPS versions include extras such as network bandwidth usage and wait time, plus smart call graphs that show you everything you need to know on one screen.
Crash test dummy
The real highlight of this new release is the inclusion of Fault Simulator SE, a cut-down version of Compuware's Fault Simulator product. This essentially runs the .NET framework in a debugging sandbox on your machine, which gives Fault Simulator the opportunity to selectively break the system at runtime. You may think you've programmed a disaster-proof database system, but how can you be sure?
With Fault Simulator SE, you can see what happens if your disk is full, when the network cable gets yanked out unexpectedly, when the server crashes - and dozens of other issues, all through the integrated Visual Studio interface. With Source Highlighting enabled, DPS even underlines in grey all the code that it can generate a fault for, which almost makes your tests write themselves.
Far from seeing DPS threatened by the latest Visual Studio, this release shows how far ahead of the competition Compuware is. The vast array of analysis tools and helpful hints makes DevPartner Studio a must-have purchase for at least one person in every programming house. Without it, you're really doing your users a disservice. Paul Hudson