DevPartner Studio 7.0
A Must-have Suite
By Michael Riley
You usually can get by without additional performance tuning and analysis tools when writing simple, standalone desktop applications. But when tasked with a serious, mission-critical enterprise intended to support thousands of simultaneous users, such profiling tools should be a default requirement. Unless you're a developer who is fortunate enough to write applications in a legacy-free environment, it is highly probable that you will have Visual Studio 5.0 or 6.0 and Visual Studio .NET coexist on your development platform for some time to come. Consequently, Compuware has bundled compatible versions of its toolset for Visual Basic 5/6, Visual C++ 5/C, and .NET in its DevPartner Studio package. Let's take a look at what you get.
Performance Analysis. Formerly known as TrueTime, the Performance Analysis tool (see Figure 1) profiles managed C#, C++, ADO.NET, ASP.NET, and Web Services project performance bottlenecks. It also supports analysis of legacy Windows objects being called by .NET applications. I found this utility to be especially helpful with identifying large application bottlenecks that otherwise would have required extensive inclusion of numerous debug statements to be instrumented into the code. Although I would prefer the report interface be a bit more intelligent in sorting and filtering the calls of obvious priority and that it resize the column widths automatically, it nevertheless is a great time saver when determining what areas of an application's performance matter most.
Figure 1. The Coverage Analysis and Performance Analysis functions detail the utilization and efficiency of a project's code and related application dependencies.
Coverage Analysis. Known in previous DevPartner versions as TrueCoverage, Coverage Analysis tests all lines of an application's code. This includes components, images, methods, functions, and modules of a project solution. Coverage Analysis also complements Distributed Analysis when testing multitier applications by capturing session data for multiple processes. It reports the client-server data into a consolidated view of the entire process, thereby presenting a much more real-life picture of the application's efficiency.
Distributed Analysis. Although this capability was available in previous versions, the new 7.0 upgrade of the Distributed Analysis tool finally helps realize the full potential of this utility. It now supports ASP.NET monitoring and, more importantly, Web Services performance analysis. This is the only tool that runs outside the Visual Studio .NET IDE. Note, however, that to monitor machines other than the system with DevPartner Studio installed on it requires the purchase and installation of a Distributed Analyzer Remote Agent per each system monitored.
Static Code Analysis. The Static Code Analysis tool can be considerably verbose and requires some tweaking to filter out the most meaningful and relevant code recommendations. Besides rules analysis, the tool can provide metrics analysis to measure the McCabe Cyclomatic Complexity - a standard measurement that determines the level of code complexity based on the number of decision points in a module - and the Bad Fix Probability, which is the likelihood of creating a bug while fixing a known bug. It's interesting to see how many of DevPartner Studio's canned rules were overlooked by Microsoft's own .NET assembly engineers.
Error Detection. Error detection is embodied by the ActiveCheck and FinalCheck technologies. ActiveCheck helps detect program errors without the need to recompile or relink, and it detects a number of API/COM, memory, and pointer errors. FinalCheck instruments additional logic code into a project to help determine memory and pointer errors that might be difficult to identify using an external monitoring program. FinalCheck, as the name indicates, is intended for milestone builds where quality testing can be absolutely assured. Although the .NET Framework helps eliminate these legacy problems, .NET will interoperate with legacy objects for some time to come.
Overall, I am highly satisfied with both the depth and quality that DevPartner Studio provides. Besides a few minor interface quibbles and its costly - yet justifiable - price tag, the product has few faults. As such, DevPartner Studio is a must-have suite for any serious .NET enterprise application developer.
Mike Riley is a chief scientist with RR Donnelley, one of North America's largest printers. He participates in the company's emerging technology strategies using a wide variety of distributed network technologies, including Delphi 6. Readers may reach him at mailto:[email protected].
Price: Starts at US$1,495
Tell us what you think! Please send any comments about this article to [email protected]. Please include the article title and author.