The transition to Microsoft’s brave new world of managed code will probably take a decade, during which time Windows programmers will struggle with the complexities of a hybrid managed/unmanaged environment -- both in the Windows OS itself and in the componentized applications and services layered on top of it. Instrumenting these very different programming environments -- so that developers can analyze, profile, and more effectively debug programs straddling the unmanaged and managed worlds -- is a big challenge that Compuware's latest offering, DevPartner Studio 7.1, tackles fearlessly.
The DevPartner suite, which integrates deeply and gracefully with Visual Studio .Net 2002 or 2003 (I tested with both versions of the integrated development environment), supports the following activities in addition to run-time error detection: source-code review, code coverage analysis, memory analysis, profiling, and analysis of distributed applications. To perform one of these activities, select it on the VS .Net toolbar, optionally adjust the instrumentation that DevPartner will insert (in the case of unmanaged code), then debug (or in some cases just run) the application, and analyze results in the VS .Net document pane. Resulting data files accumulate, by activity type, in DevPartner’s Solution Explorer.
To exercise the suite, I worked with open source indexing and search engine NLucene, which is a C# port of the popular Java-based engine, Lucene. I used DevPartner Studio to analyze the NLucene library, to analyze a program that indexes a batch of HTML files, and finally to analyze an ASP .Net application that searches that index.
Reviewing the Source
The source-code review feature, available for C#, VB .Net, and VB6, scanned the C# files and produced a report that was sometimes pedantic, and sometimes cogent and educational. Warnings about recursion, hard-coded strings, or member-variable names fall into the pedantic category. I assume developers are grown-ups who understand the consequences of these choices. Much more interesting are warnings that teach developers about platform subtleties. The warning ("Type not excluded from use by untrusted code") falls into this latter category. When an assembly is unsigned, as my build of NLucene was, you can still enforce trusted access by adding appropriate attributes to the source code. DevPartner identified the problem and illustrated the fix -- a nice example of how an intelligent automated assistant can work with a developer to improve code quality.
Some of the rules that drive code review are hard-coded into DevPartner, but others are available for inspection and modification in a rules editor. A shop that wants to enforce its own naming conventions, or classify new coding idioms, can do so. Compuware could, and arguably should, host a service for developers who would like to collaboratively define and share such patterns. The .Net CodeDOM, which, as the name implies, is a document object model for parsed code, suggests another intriguing possibility. Currently DevPartner's rules editor relies on regular expressions to define the patterns that trigger warnings. In theory, CodeDOM will enable higher-order pattern recognition that's also independent of the source language. I'll be interested to see if a future DevPartner release exploits that opportunity.
Analysis From All Sides
| Test Center Scorecard | |||||
|---|---|---|---|---|---|
| 30% | 30% | 30% | 10% | ||
| DevPartner Studio Professional Edition 7.1 | 7 | 9 | 9 | 8 |
8.3
Very Good
|
This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.
Download now »Server virtualization is a popular option for dealing with mounting datacenter costs. Another equally promising approach is the use of an Application Delivery Controller. Citrix NetScaler provides a low-cost way for organizations to reduce their server count and accrue cost savings from a reduction in space, cooling, power and personnel.
Download now »
The emergence of WLANs has created a new breed of security threats to enterprise networks.
Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation
Effectively address data protection challenges, implementing solutions that help store and protect businesscritical data while cutting costs and improving efficiency and reliability.
Download now »
Sign up to receive InfoWorld Resource Alerts
