The names of Marco Bellinaso and Francesco Balena will of course be very familiar to most of us. They both have a long and successful track record in the world of Visual Basic .
With this in mind, I fully expected to find that with CodeBox for .NET they would have created a neat, intuitive and comprehensive package. I'm pleased to report that I wasn't disappointed.
So, what exactly is CodeBox for .NET? Well, in its simplest form it's a utility that you can use to store Visual Basic .NET and C# code into a database (or databases). These can be any of a number of flavours - Access, MSDE or SQL Server 7/2000 databases.
As you would expect, you can browse the code, search, create bookmarks and print out the data. You can also export code items to HTML, organize them in categories, include examples, notes, details of related files and dependent routines.
In fact, as I'll come on to later, you're not really limited to the storage of code in CodeBox, but of course that is it's main role.
My first impression was that it reminded me of the API Guide from the KPD Team at allapi.com. It didn't take many minutes to realise though that this was a more sophisticated piece of work than that, with many useful additional features.
It boasts 23 menu buttons, covering most tasks you could think of for an application of this kind - open, save, create new categories, new code items, etc. Less obvious, but just as useful in their own way, are the Download Updates, Merge Libraries and Create Bookmark facilities.
Likes and Dislikes
To my way of thinking, an application like this must not only meet a need, but it has to be intuitive, almost second nature to use it, otherwise you find you tend not to bother. And usually it's the little things that please or annoy you, isn't it?
I really like the color coding options which can be applied to the code snippets. Sensibly, the default ones are those that Visual Studio uses, but you can, if you wish, change them.
And I also liked that you can choose whether to save the current configuration - windows size, etc - on exit.
You have to get used to the idea that you need to select EDIT before making changes to code snippets, comments etc. Although I see that it makes sense to include this safety feature, I did sometimes find it a bit hard to remember. Whenever I see code that needs tweaking I tend to pile in and start belting keys right away - and then wonder why nothing has appeared on the screen! But that's probably just me.
Dragging and dropping code items soon becomes a habit. You know how it is, you set up a category and then some time later find that you need to create sub-categories or new categories that encompass previous code snippets. The Drag and Drop facility of the Treeview display is a really useful and time-saving feature in this situation.
As soon as you create a new category it's added to the bottom of the list. This may not be where you want it, but that's no problem - just choose View|Refresh from the menu and the list will be sorted alphabetically for you with your new item in its proper place.
The search routines are flexible and fast, with a wide range of search parameters that become more important as your database grows.
Expanding Its Uses
Of course what you use this application for is limited only by your needs and own imagination. For example, I now use it to keep track of FAQs posted on DevCity and vbCity. As the number of FAQs increases it gets harder to remember where they are and (more importantly) which category they come under on the vbCity FAQs list.
With CodeBox being tailor made for a tidy (but forgetful!) mind, I use it to copy and paste FAQs into the database on my system - and of course I also copy and paste the URL of the FAQ too, so that I can instantly search, find and if asked, point out the location of a relevant FAQ to a questioner in seconds.
This week, I've also started using it as my own Quickcode application. By that I mean that I've begun to create outlines for code blocks - Try, Catch, Finally, End Try, for example. I include my favourite ways of dealing with exceptions via a messagebox in the snippet. Then when I want to insert a Try/Catch block in my project, I simply select this code item from CodeBox, Right Click and select Copy from the dropdown menu, then paste it straight into the project. The collection is growing and it saves a lot of retyping of common routines.
I also use CodeBox to keep pointers (without the code) to long articles and projects that I may want to download at some time in the future. These are sorted by my favourite sites and sub-categorised by major .NET Framework areas. I paste in the URL, a few keywords that I'll be almost certain to search on and, hey presto, I have my own resource catalogue.
Out of the box you get a small number of code snippets and although you can add your own, there is a limit on how many you can add yourself. Registering immediately brings you another 100 good quality ready-written code items, plus the promise of a regularly updated supply of dozens of additional code snippets that can be downloaded from the CodeArchitects site.
Obviously, it's well worth the relatively small investment to get yourself the full-featured unlimited version of this handy and user-friendly application. Currently, there is a launch period discount.
You can download it from the web site at http://www.vb2themax.com/codebox/
These days I never surf my favourite VB sites now without having the CodeBox open and ready to receive; and of course it's automatically been installed as an Add-In for me whenever I use Visual Studio.
All in all, this is a very useful, well-presented utility that is easy to use.
Comments from Serge Baranovsky, vbCity Developer Community founder:
This is an excellent application from Marco and Francesco. Don't forget that there is an opportunity for discount if you have the previous version of CodeBox.
The download version will get you started, but at some extent you will soon need to register and there are many gains for doing so - unlimited storage of snippets, free downloads of many, many new code items on a regular basis from their site plus additional features like database merging.
Good job, guys!