Visual Studio 2005 Add-Ins and Tools That I Use

I am right now in the middle (about 20% and 18K lines of code through) a pretty substantial Windows Forms project using Visual Studio 2005 (C#). Here are some of the add-ins that I have been using (ranked in order of essential to useful):

  1. CodeSmith – Number one in Code Generation. I have spent less than a week of total time setting up my templates, and over the last three months alone have generated 386,403 lines of C# and TSQL code using this tool. I cannot see how I could work without it. Well-worth the investment.
  2. Visual Assist X ($149) – (My review here). I have been using this for about 2 years now. It works very well with both VS 2003 and 2005. The main features that really save me time are the much improved intellisense over the standard offering from MS, which includes basically any variable name that I could use based on the context that I am in (including private variables that were just created, properties available from inherited objects, etc). It also acts “intelligently” – if I type in something like myObject.Controls.Add(…); and then go to another line, when I start typing it will offer me this sequence as an option to autopopulate through intellisense. Very useful. Also allows you to use acronyms or type in the leading capital letters from Pascal/Camel case to find a function or property name. Additionally, VAssist X offers handy features for finding functions, and more (including a small but useful one which works as follows – when you type “functionName(“, the closing “)” will automatically appear. If you type “)” now, as I often do just out of habit, it will not insert an additional “)” character – rather, it will advance beyond the closing parentheses that was automatically added
  3. Krypton Toolkit (free) and Navigator ($50) from Component Factory – Although I had been reading Phil’s blog for some time before I started getting into Windows Forms, now that I am doing some WF work, I am finding this collection of components to be indispensible in extending the controls that are provided by MS in VS 2005 (and in the Navigator control providing several pieces of functionality in my current app that we would have had to invest weeks or months in to produce form scratch or come up with some alternative), and allowing me to give a universal, comprehensive look-and-feel to my application that would have been very difficult or impossible otherwise.
  4. VG Dot Net – Have a need for Vector Graphics in your Windows Forms or ASP.net application? Want to be able to manipulate the different components of the VG objects and images directly in your code (no COM please!)? Look no further.
  5. Free SlickEdit Gadgets – Some useful add-ins, including an easy-to-use Line of Code counter, Data Object analyzer (tells you what data items are inserted into the clipboard when different data object are copied in – an essential tool if you want to do anything more complicated than straight text copy/pasting from the clipboard, and a File Explorer add-in that basically gives you a Windows Explorer window in your code-view (Found via vidmar)
  6. MS Visual Studio 2005 IDE Enhancements (free) – This package with the uninspired name offered by Microsoft includes a useful code outliner (very useful in complement with some of the Visual Assist X offerings, IDE event viewer, Diff Utility and improvements to the Find engine.
  7. Code Rush with Rafactor! PRO ($249) – I tried it for a month and found that it was interfering with my workflow more than helping it (though this is almost certainly because I am used to the way that Visual Assist X works). However, some people find it to be very helpful. To each his own.
  8. Although I do not have anything installed from here right now, I would be remiss if I did not mention the ever-growing collection of Visual Studio Add-ins at the Code Project. As always with items from CP, use at your own risk…though you may find some gems here as well

Am I missing anything?

Tagged , , , , , , , , , , , , . Bookmark the permalink.

9 Responses to Visual Studio 2005 Add-Ins and Tools That I Use

  1. Pingback: Community Server Daily News : Community Server Daily News for Tuesday, December 19, 2006

  2. Pingback: Daily News List Blog : Visual Studio 2005 Add-Ins and Tools That I Use

  3. You may try my add-in SonicFileFinder (http://sonicfilefinder.jens-schaller.de) for quickly finding files inside Visual Studio 2005 ;)

  4. Hi Yaakov,

    The 300K lines of code you have generated is a very large number. My career has been largely involved with supporting, refactoring, and extending existing applications. I don’t know you or your code, so you well may be a superstar, but that number strikes me as odd, especially since it was autogenerated from templates. To me, autogeneration + templates = needless redundancy.

    Is this a turnkey solution that you will not have to support after completion? If so, kudos on getting so much work done so quickly, it will become someone else’s problem soon enough. Otherwise, I can’t help but think you are creating a huge support burden on yourself in the future by creating so much repetitive code. In my experience, ceteris paribus, more code equals more complexity. Was there really no possibility of applying polymorphism and useful specialization design paterns such as the template pattern to reduce redundancy?

    If I am wrong, please tell me more about how you used this tool to leverage your talents so effectively. In that case I would love to see how I could take advantage of tools like CodeSmith in the future.

    Thanks,

    Dave

  5. Yaakov Ellis says:

    Dave – Thanks for calling me on that one. Let me explain.

    I am using code generation for the custom business objects and data access layer in the code, as well as matching stored procedures in my Sql Server database. Each BO closely matches the structure of a table (and sometimes a corresponding view as well) inside the database. I have templates set up (partly based on the samples provided with CodeSmith, and partly custom-built) that will read the columns in a table/view, and based on other parameters that I feed in (read-only columns, columns to exclude, types of Get/Insert/Update/Delete procedures to generate), will completely generate 3 .cs files as well as the corresponding stored procedures (and put these into the DB).

    Although I have generated 300,000+ lines of code, my current code-base is around 18K. This includes lots of UI code that is generated by Visual Studio, as well as other functionality code. Currently, I have 44 files making up the DAL and BO layers in the code, as well as around 150 stored procedures. This is all less than 10,000 lines of code. The bulk of the code-generated line sum comes from regerating these files and sprocs whenever I change the DB structure from its initial format. Adding a column, changing a column name, removing a column, adding a foreign key relationship – all of these things affect the DAL, BO and Sproc layers. The code-generation allows me to standardize these files (eliminating errors that would come from copying and pasting) as well as save the time of changing individual lines of code in VS and the DB whenever I make a change to the DB. Instead of fishing around in 2 files and 5 stored procedures if I add a column to a table, I just run my CodeSmith template again for that table and reimport the files into my project.

    As far as upkeep (and I will be the one supporting it after conclusion), if new tables are addded or the db structure changes, it is as simple as rerunning the template (with parameters saved locally in an xml file) and reimporting the files.

    I try very hard not to use tools like this as a crutch. I avoid the humongous templates that will generate many times more code you may ever use just because you can. However, in the way in which I am using it, I have saved myself lots of boredom and tedious code manipulation, as well as at least 100 hours of programming time that I can better use on more creative tasks.

  6. Pingback: mhinze.com » Blog Archive » links for 2006-12-20

  7. Dissidence says:

    Nice article. And just to add to the topic.

    I find the tools listed in Visual Studio Add-Ins Every Developer Should Download Now also very helpful

  8. Pingback: Community Server Bits : Community Server Daily News for Tuesday, December 19, 2006

  9. Pingback: Community Server Bits : Visual Studio 2005 Add-Ins and Tools That I Use

Leave a Reply

Your email address will not be published. Required fields are marked *