Total .NET SourceBook from FMS Software is a code library which works both as a standalone library (accessible from the Start Menu) or as a Visual Studio Add-In (accessed from the VS Tools menu or as a dockable window in the IDE).
Access to the various functions is by means of the usual Windows menu items or via the toolbar, as shown in the screenshot in Fig 1.
Fig 1. Standalone Version
The standalone version has enough panes and splitters to keep even the most demanding configuration junkie satisfied. Not shown in the screen shot, there is also a 'Details' pane for Author, Date Created, etc.
You can hide and show the Notes Pane and the Details Pane. Hiding either or both of them obviously gives you a larger window to display and read the code for the current item.
Functions available include adding, editing, deleting items, configuring the displays, database maintenance and the ability to export to XML, among others.
Fig 2. Visual Studio Add-In (Navigator ToolWindow)
The layout for the Visual Studio Add-In version is different from the Standalone one
All the functionality of the application is still available to you, but the application designer has split the panes in the standalone version into "ToolWindows" in the Add-In.
In effect, ToolWindows are individual popup windows, each serving a different purpose. Once you get the hang of them, using the SourceBook inside the Visual Studio IDE is very easy.
Likes and Dislikes
I thought that the quality of the content is excellent. As is standard practice, in the evaluation version, you only get to see a subset of the code that is included in the full retail version. One feature that I thought was particularly useful is that the content isn't limited to code snippets. In quite a number of cases, the items includes very detailed additional Notes and there are even several complete 'HowTo' packages.
At first, I wasn't too sure whether I liked the ToolWindows, but now I've come to appreciate a key benefit they bring. The SourceBook only takes up the minimum required amount of your precious IDE window real estate for the particular process in hand. You can bring up or dispense with these tools very easily as and when you need them. It makes sense.
The Web Service download works well. This feature is included in the retail package and brings updates with new items for you to add to the existing database if you wish. It lists all items available to you and indicates the progress of the download of each item once you decide to go ahead.
The Help system is superb. Someone has obviously gone to a lot of time and effort to create a very clear and comprehensive Help document that didn't fail me once.
I had a heart stopping moment after adding and editing some items and then exiting the application for the first time. It closed down without giving me the standard comfort zone message of "You have made changes, do you want to save..." prompt. I needn't have worried (although I did!). When I opened it up again, all the changes had been saved back to the database automatically.
When I first ran the standalone version, I spent some time adjusting the layout of the Treeview from it's default configuration to my personal preference - juggling with the Category folders and so on. This is easy to do, and I particularly like the way that, as soon as you drag and drop an item to another node in the Treeview, you have the choice of either moving or copying. Some topics - to my mind, anyway - just don't sit comfortably in a single category, so I really appreciated that feature.
If you type or paste in code items, the SourceBook will automatically format it using the standard color codes. You even get line numbers thrown in for free. See Fig 3 below and note the helpful additional Notes, which is typical of the provided content.
Fig 3. Color Coding and Line Numbers
Moving and copying code snippets around from the Sourcebook to your Visual Studio project and vice versa is, as they say, a breeze. I was very impressed with the way you can highlight a chunk of code in your project and simply drag it onto a node in the sourcebook to create a new sourcebook entry automatically. Very neatly done.
Fig 4. Using Multiple Databases
One of the problems with code libraries, in my experience, is that they soon become a bit unwieldy (OK, so I'm a bit of a Code Junkie, so it may not be a universal problem). Total .NET SourceBook sidesteps this problem by allowing you to access multiple databases concurrently.
If and when you find your collection is becoming hard to handle, you can split it up into databases to keep non-overlapping groups or specialised areas apart (or any other reason that you may have for splitting the material into separate repositories). Of course, there's nothing to stop you copying - rather than moving - items that you want to be available in more than one database.
As you can see, there is little that I find fault with in this application and the more I use it, the more I like it. It is very versatile and overall an excellent piece of work.
Although I tried not to do so, inevitably I often found myself comparing the previously reviewed CodeBox for .NET from VB2TheMax with this competing product from FMS. Each does essentially the same job and there are many similarities in approach. But of course, each of them offers different features beyond the core ones.
So, which did I find better? Well, each does its job well and they both offer some features that I prefer over its rival. I'm not just fence-sitting here - it's just the way it is!
My recommendation is to do what I've been doing for the past few weeks. Try them both until you find which is a better fit for your personal style, (they both offer a limited evaluation download, which is always worth taking advantage of). Then, once you've decided your personal winner, you can pay your money and upgrade to the full version of the one you've chosen. Whatever happens, you won't be disappointed with the FMS Total .NET SourceBook, I'm sure.