DevCity.NET - http://devcity.net
CodeSMART G2 for Visual Studio: A product Review
http://devcity.net/Articles/224/1/article.aspx
Phil Eakins
Having followed a successful career in the legal profession for over 20 years, Phil saw the light when he bought his first home computer (an Oric) in 1982. Since then he has attained a Batchelors Degree in Computing and Maths from The Open University (and met his Wife at the same time)as well as attaining a CNE qualification. Phil has worked extensively in the fields of Network Engineering and in the teaching and training of IT subects to adults.  
by Phil Eakins
Published on 5/6/2006
 

Always being interested in products which promise to take some of the the drudgery out of software production, Phil Eakins investigated the features of Axtool's CodeSMART version G2 for Visual Studio, which promised nine sets of tools and commands to make life easier.

 


Introduction
What is CodeSMART?

CodeSmart from AxTools is to the .NET programmer as the Swiss Army Knife is to a Boy Scout. There are more tools available in there than you can shake a stick at (although I haven't found the one to remove a stone from a horse's hoof yet!).

Installation

Having downloaded the 8.2MB installation file from www.axtools.com, I selected my Visual Studio (VS) version (2003, although 2002 and 2005 are also supported. (NB this product is not available for Standard or Express Editions)) and followed the simple instructions. CodeSMART installed very quickly, smoothly and error free.

A copy of the licence and the activation key were supplied separately. Activation took a fraction of a second by running an executable file prepared (by the look of it) especially for my personal license. Evaluation software can be obtained from the AxTools site upon application.

An entry was made in my XP Pro Start Menu under the heading AxTools/CodeSMART G2, which contained two Icons for Internet access to the AxTools site, Home plus Technical Support pages, and a Startup Manager used to enable/disable CodeSMART from loading automatically whilst starting VS. Lastly there is access to online documentation and to a very useful diagnostics tool.

Installation does not make an entry in the Control Panel Add/Remove Programs list and no Uninstall option is provided elsewhere. I have not tried to uninstall the software and cannot comment upon how easy this is.

Personal and Team database (MDB) files enabling software control, amongst other things, were placed in my own 'My Documents' folder by default, although these can be moved to another folder, drive or server if required. As this review is of a single user licensed copy I cannot comment on the use of the Team facilities where they differ. 'Offline' MDBs come into use when there is no access to the others for whatever reason, there being a configurable auto-update function. Again, this was not tried.

All of the screenshots which follow were captured from my IDE as I worked and were not supplied by AxTools.
 

Appearance
On first opening, CodeSmart appeared as a series of toolbars and a main menu option.

The default position of the toolbars was a little strange, but took only a moment to rearrange.

The CodeSMART main menu allows comprehensive access to its functionality and configuration:

Program configuration is effected through a Control Panel accessed from the main CodeSMART menu:

 

Functionality

Whilst Developing

When typing code there are two helpers  both configurable - an AutoText Manager which completes a command sequence from a  short cut entry (ie mb will provide a MessageBox.Show skeleton) and a SmartComplete function which will attempt to complete a keyword/code block whilst typing.

This is the AutoText Manager:



Standard comments are not ignored and an editor is supplied along with a selection to start with, ie type headers and 'embrace' comments (Created by ...., Modified by ...., etc). Microsoft naming standards are supported and applied although they are fully editable through the Naming Standards Manager.


Copying and retention of code snippets on a personal (and, apparently, a team wide) basis is supported, code copying is via the clipboard but code can be created and edited directly into the Snippet Manager and is easily saved in and retrieved from a user modifiable filing system. Specimen code snippets are provided for VB, C# and C++. The filing system is also defined for, but not confined to, HTML, SQL and XML.



So, now a gripe!

I prefer to code with liberal sprinklings of the 'Me' keyword. SmartComplete assumes that I want a MessageBox and hitting the full stop (period) key completes the insertion. The SmartComplete Manager does not help, I could disable the 'MessageBox' insertion as a whole but not control what inserts it. I eventually found the answer in the AutoText section of the CodeSmart Control Panel where there is an impressive list of AutoText triggers, including a period. So, uncheck the period trigger. No difference! I had to disable the whole MessageBox insertion through the SmartComplete Manager to cure the problem. Having said that, SmartComplete is a very useful tool in that it will insert block templates as well as completing individual keywords, and is fully configurable/editable so that new entries can be added and redundant (ie VB.OLD) ones disabled or altered.

Setting the main properties of WinForm controls is made a lot easier with the NewControl manager, just fill in the details and the job's done. The manager can use the correct naming conventions, and, as can be seen, will take the name from text input, or vice versa, or even not. A very useful Designer Explorer with which to drill down into controls already on a form and to change their properties compliments this.



Having created forms and controls, their 'vital statistics' , ie type, name, text and tab index are available as a tooltip style popup when hovering the cursor over the form/control, so no forgetting what you called it! A bit of a bugbear is that this tooltip will pop over menus and system windows (ie Task List or ToolBox) where they expand into the design pane, and thus (and very annoyingly) obscuring them. This cannot be corrected so far as I can see, although the 'feature' can be turned off.


There is a Word style spell checker, US English by default, a further dictionary pack can be downloaded as a self installing .exe file which contains UK English and a further 9 European languages. Once checked, double clicking on an offered misspelling will go directly to the offending line.

There are templates for properties (with member variables) subs, functions, classes and methods (ie constructors and destructors) and a 'Common Object Operations' option that will insert a number of methods, including the ultimate deep clone method to which I referred in my Copying and Cloning article.


Management of code is taken care of with two tools, the Code Flow Explorer and the Code Explorer (which expands the VS Solution Explorer), both of which dockable and will go directly to a code block or line when double clicked.

I could go on (and on) as there is so much to explore and I keep finding new things, but I really must bring this to a close. So now to the…

 

Conclusion

I have now used the application in anger for a couple of months. Am I impressed? Do bears use the facilities behind the bushes in the woods?

This isn’t a ‘Wow’ experience and a flashy bit of kit you’d use once, twice and forget – it’s software that integrates into the background, always there and always available. However, it will change the way you work, if, like me, you’re not a touch typist. You really do need to keep an eye, or preferably two, on the screen.

Several of the functions are ‘added value’ versions of Visual Studio’s (ie extended find and replace, outline manager functions and block commenting) and most of its functions simply automate what can be done with two fingers and a keyboard. There’s more to it though and there needs to be to justify the price tag (see below).

There is a comprehensive help system and, although I haven’t used it, there is on-line support promised to registered users.

It must be said that, in view of the fairly hefty price tag of 249 USD (142 GBP) for a single user licence, going up to 2599 USD (1485 GBP) for an unlimited world-wide site licence, this software is not primarily aimed at the casual programmer or cash strapped student. However, coding shops of whatever size really should take a close look at it.

An evaluation copy can be obtained from AxTools on request through their web site, but in view of the take-up VB/C# 2005, could they be persuaded toward a single user ‘Visual Studio Community Edition’ though?

If I can add a couple of personal wish list items, there are places (ie the Insert New Class Manager) where the ability to browse for existing classes or functions would have been very useful. Secondly, it would be nice to have the methods, properties or whatever inserted through the relevant manager, at the cursor position rather than at the end of the class even though I can 'Sort' these afterwards into a more correct position.

There are problems, I’ve mentioned those I’ve come across and there may well be more I haven’t yet found, but do I recommend it? Yes!

I must add here that I have no connection directly or indirectly with AxTools nor have they sought to influence what I have written. I am not being rewarded in any way for writing this (other than with a copy of the software kindly supplied for these purposes).

 

Product Features Summary
Here are the main features of CodeSMART as presented by AxTools:

1. Integration

* General Integration Notes

2. Explorer Tools

* The Code Explorer
* The Code Flow Explorer
* The Designer Explorer

3. Locate Code Easier than Ever

* Extended Find and Replace
* Find References

4. Check and Refine Your Code

* Spelling Checker
* Strings Review
* Code Commenting Conformity Checker

5. Write Code with Exceptional Efficiency

* AutoText
* SmartComplete
* AutoBrackets
* The Extended Clipboard

6. Code Building and Generating Tools

* Simple Code Builders
* Advanced Code Builders
* Generate Exception Handling Code

7. Code Formatting and Documenting Tools

* Code Formatter
* Sort Procedures
* XML Comments
* XML Analyzer
* XML Preview
* Standard Comments


8. Designer Helper Tools

* Designer Assistant
* Tab Order Designer
* Hotkey Designer
* Change Name and Text Properties
* Property Tips
* Bulk Controls Renamer

9. Other Tools

* AutoSave and AutoBackup
* Code Statistics
* Show File Differences
* Team-Enabled Code Snippets Manager
* Iterative Code