Developer Product Briefs
Understand What Your App Does
Peter takes a look at Compuware's DevPartner Studio.
If you're building a complex application or working as part of a team, Compuware's DevPartner Studio gives you the ability to understand just how good -- or bad -- your application is. DevPartner Studio integrates with Visual Studio to give you tools for analyzing application performance, determining memory usage (down to the memory used by individual objects), scanning for security problems, and reviewing source code. DevPartner also integrates well with Visual Studio 2008 (Visual Studio 2005 is also supported), giving you access to all of its functionality through a single toolbar.
If you're working in a team environment, a source code analyzer provides the most effective way to ensure that you (and the rest of the team) are following organization standards and best practices. Studio will do a static analysis of your source code, comparing it against a database of more than 600 rules. If you don't like the rules that come with Studio, you can customize the rules database, though you will need some knowledge of regular expressions if you want to add new rules. Source code analysis can be time consuming: Analyzing a solution containing several thousand lines of code spread across an ASP.NET application, a Windows Service, and several class libraries took more than an hour on my computer.
When runtime performance is critical, you need the ability to identify the bottlenecks in an application and determine the impact of any enhancements you make. Studio's Performance Analyzer and Performance Expert lets you monitor your applications as they run in Visual Studio and report on which methods are called, how often they're executed, and where your application is spending its time. In addition to a detailed set of post-performance reports (which you can save to review later), Studio also include a live runtime graph that tracks key performance metrics as your application executes.
[Click on image for larger view.]
|Drill Down on Apps with Performance Analysis. DevPartner's live graph is generated by the Studio's Performance Analyzer tool; it tracks CPU usage, disk transfers, and network access.
You can use Performance Analyzer to analyze ASP.NET applications both when testing your application on a local copy of IIS and on a copy of IIS running on another computer. You will need to configure your Website in IIS and turn off script debugging in Internet Explorer. If you're debugging an application on a remote computer, you must also install and configure DevPartner studio on the remote computer (you'll need a DevPartner Remote Server license for this computer).
None of this comes cheap. In addition to the purchase price (obviously aimed at larger shops), you'll need a computer with sufficient resources to run the tools. When I tried using Performance Analyzer in a virtual machine with only one gigabyte of memory instead of the two specified by the package's prerequisites, DevPartner failed with memory a memory corruption problem.
That said, I found DevPartner to be a well-behaved addition to Visual Studio. When working on projects where I didn't want to use DevPartner, it stayed out of my way. Even when DevPartner crashed due to memory restrictions, it left Visual Studio running and allowed me to continue working.
If you're building an application that's too big to hold in your head at once or working in a team environment where adhering to standards is important, you need DevPartner.
The original version of this article contained an error about the capabilities of using performance analyzer in conjunction with ASP.NET. That error is corrected here. VSM apologizes for the error.
DevPartner Studio Professional Edition 9.0
Quick Facts: Suite of tools for static and runtime analysis of applications for both Visual Studio 2005 and 2008.
Pros: Highly functional; well integrated into Visual Studio; good product support.
Cons: Expensive; Two gig of memory required
About the Author
Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.