Pumping Up the IDE
        Get more work out of Visual Studio .NET—and less of a workout—with these IDEs.
        
        
			- By Mike Gunderloy
 - February 01, 2004
 
		
        "I am Hans and he is Frans. And we want to PUMP YOU UP!"
        —Saturday Night Live
      
This month, I'm going to focus on Visual Studio .NET; my apologies to 
        those of you using other development environments, but VS .NET is clearly 
        the product used by the majority of my readers. Visual Studio .NET was 
        designed from the start to be extensible, and many utility vendors have 
        taken advantage of this extensibility. Here's a look at a selection of 
        ways to make your time writing code with Visual Studio .NET more productive 
        (or more fun) and to improve the quality of the code that you write in 
        this environment. 
      Free Stuff!
        Everybody likes a bargain, so let me start with a few freebies.
      First up is Project Line Counter (http://www.wndtabs.com/plc/), 
        which works with Visual Studio 5.0 and 6.0 as well as Visual Studio .NET. 
        As you can guess from the name, it exists to count lines of code in your 
        project. Most of us know by now that LOC is a fairly fuzzy metric; different 
        developers can use vastly different LOC to accomplish the same aims. But 
        if you're just trying to get a sense of the overall size of your projects 
        or trying to compare one with another, PLC will give you the numbers. 
        Everything is broken down by module, and you get separate counts of comments 
        and blank lines.
      Then there's CodeSmith (http://www.ericjsmith.net/codesmith/). 
        CodeSmith has a standalone interface as well as an add-in chunk, but it's 
        so spiffy that I'm going to plug it here anyhow. CodeSmith is a flexible 
        code-generation tool that uses an ASP.NET-like language to define templates. 
        You can then fill in properties for those templates and have it generate 
        any sort of text file. The add-in version allows you to add an XML file 
        containing properties to your Visual Studio .NET projects, and then output 
        the generated file at build time. Among other things, this gives you a 
        way to simulate generics before .NET 1.2 ships. The major drawback to 
        CodeSmith is that the documentation is a bit skimpy, but there's an active 
        support forum to make up for that.
      
         
           
            
               
                 
                  
                     
                      | Developer 
                        Central Newsletter | 
                     
                     
                      |  Want to read more of Mike's work? Sign 
                        up for the monthly Developer Central e-newsletter, 
                        including product reviews, links to web content, and more, 
                        at http://lists.101com.com/nl/main.asp?NL=adt. | 
                     
                   
                 | 
               
                
             
           | 
        
      
      A Maze of Twisty Little Passages
        Depending on how good your memory is, it can be tough to find things 
        in a sizeable project. Sure, Visual Studio .NET has its own searching 
        tools, but searching through every file in a project is tough to do. Fortunately, 
        there are some add-on products to make it easier to move around in you 
        .NET projects.
      Start with QuickJump .NET (http://www.codeproject.com/dotnet/quickjump_net.asp). 
        With this little tool involved, you can click Alt+G and get a window showing 
        all of the members in the current class. Type a few letters to filter 
        the list, and you can jump right to the applicable declaration. This is 
        another freebie, so though it doesn't do a whole lot, it won't cost you 
        a whole lot either.
      For navigating through your entire project, you'll want to turn to commercial 
        add-ins. If you're working in C++, take a look at Browsio (http://www.browsio.com). 
        Browsio adds a browse database to your project, and a single keystroke 
        will open up a window into this database. From there, you can see the 
        definition of and references to every identifier in the program, as well 
        as base classes and subclasses. Of course, you can click in the list to 
        go to any reference. Browsio costs $55, with substantial volume discounts.
      For navigating VB.NET and C# projects, take a look at Total .NET XRef 
        from FMS (http://www.fmsinc.com/dotnet/xref/index.asp). 
        At $199, this tool keeps track of the structure of your projects. Place 
        your cursor in any identifier, hit the XRef button, and you'll get a window 
        listing every place that identifier is used. You can see files, classes, 
        lines, members, and even a preview of the usage. A single click takes 
        you to the definition of the object, or you can double-click to see any 
        usage line. Besides making it easy to navigate to everywhere that a member 
        is used, Total .NET XRef is a good tool for quick-and-dirty impact analysis.
      But is it Good Code?
        Speaking of FMS, check out Total .NET Analyzer (http://www.fmsinc.com/dotnet/Analyzer). 
        This $499 add-in leverages the same parser as Total .NET XRef to look 
        over your code and warn you about deviations from best practices and likely 
        errors. These range from using string concatenation where a StringBuilder 
        would be a better choice to unused code to performance issues, to violations 
        of generally accepted naming standards. All of the recommendations show 
        up in a dockable window, and you can click on any of them to go right 
        to the line of code that the tool doesn't like. You can also customize 
        the rules list to a certain extent, though there's no way to add your 
        own rules to the product.
      Sometimes it helps to have another set of eyes checking over your code. 
        That's where Macadamian's $39 CodeReview (http://www.macadamian.com/products/codereview/) 
        comes in. CodeReview adds a toolbar to let you manage the entire code 
        review process without ever leaving Visual Studio .NET. You can send out 
        a chunk of code for review, add comments and suggestions to code under 
        review, and accept or reject suggestions with a single click. If your 
        entire team uses this add-in you get the benefit of many eyes without 
        needing a separate code review process.
      A New Editor, Please
        Visual Studio .NET add-ins can have much more radical effects than 
        just adding a new toolbar or window. For example, they can completely 
        replace the built-in editors. My next two products do just that.
      CodeWright for Visual Studio .NET (http://www.codewright.com/cwnet/default.asp) 
        merges the CodeWright programmer's editor directly into the Visual Studio 
        .NET IDE. This lets you use CodeWright's keystrokes and color syntax (among 
        other features) in your .NET source files, as well as making all of CodeWright's 
        other high-end features (like the CodeMeeting chat window, which lets 
        you edit documents collaboratively) available within the .NET interface. 
        Especially if you're already a CodeWright user, spending the $149 for 
        this product will likely boost your productivity in VS.NET substantially.
      For XML files, you can get a similar plethora of tools by spending $999 
        for XMLSPY Enterprise Edition and then downloading the free package to 
        integrate it with .NET. No more will you have the basic Microsoft XML-editing 
        user interface for XML files in your .NET solution. Instead, XMLSPY's 
        multiple views, debugging capabilities, and flexible interface will take 
        over XML-editing duties. Given the cost, this probably only makes sense 
        if editing XML is a frequent task for you, but if it is this is a great 
        way to merge two best-of-breed tools.
      The Big Boys
        Some add-ins are so all-encompassing that it almost seems silly to refer 
        to them as add-ins. In this category I'd put Rational XDE and Compuware 
        DevPartner Studio.
      Rational XDE (more formally, IBM Rational XDE Developer .NET Edition 
        v2003.06) adds UML modeling and forward and reverse engineering to Visual 
        Studio .NET. It lets you maintain a repository of software patterns, integrate 
        design documentation on all levels with your projects, and generally architect 
        the largest of .NET projects. You'll find lots of new windows and objects 
        if you add XDE to your tool set, and even your workflow is likely to change. 
        With one year of support, this will set you back just over $3,500.
      While XDE is directed at the architect, DevPartner Studio is aimed squarely 
        at the developer. For $1,495 it adds a number of high-end debugging and 
        tuning capabilities to Visual Studio .NET, including rules-driven code 
        review, runtime error detection, code coverage, memory, and performance 
        analysis. DevPartner Studio excels at tracking lots of information and 
        then presenting it in a sensible way to allow quickly focusing in on the 
        bits that you need to optimize your application.
      Is That All There Is?
        Heck, no. This list is illustrative, not exhaustive. There are dozens 
        of other Visual Studio .NET add-ins that I could have mentioned (I've 
        covered a number of them in my Developer Central newsletter, and 
        undoubtedly will review more in the future). For the definitive list of 
        Visual Studio .NET add-ins (and other .NET utilities), visit the SharpToolbox 
        site at http://sharptoolbox.madgeek.com/, 
        which is approaching 350 listed tools as I write this.
      Finally, if you can't find the add-in that you want, you can write it! 
        Though in the past Microsoft has kept some of the programming interfaces 
        of their development products a secret, licensed only to partners who 
        pay for the privilege, that's no longer the case. If you visit the Visual 
        Studio Industry Partner Program site at http://www.vsipdev.com/, 
        you'll discover that you can download the SDK for free. That means that 
        you, too, can build a VS .NET add-in...and perhaps have it mentioned in 
        a future Developer Central. Happy coding!
      
      Like having everything in the IDE? Or do you think this is a dangerous 
        trend that needs to be stamped out? You can get hold of me at [email protected]. 
        I'll use the most interesting comments in a future issue of Developer 
        Central.