I’m not normally a fan of third-party plug-ins and add-ons—especially when it comes to Microsoft’s Visual Studio. The IDE is already so darned feature-rich that “enhancements” tend to add a level of complexity that results in increased Total Cost of Ownership (TCO) without any real increase in value. I was pleasantly surprised to find the Total .NET Developer Suite is an exception to that rule.
FMS, Inc. is a Microsoft Gold Certified Partner, which means it worked very closely with Microsoft’s development teams to present the suite as a seamless add-in for Visual Studio .NET—enhancing some functions, and non-competing with others. The result is that the Developer Suite looks and feels very much like it is OEM and not a third-party add-in.
FMS is a company that “eats its own food”. It is, to a large degree, a consultancy. However, from its consulting work have emerged a number of product suites that enhance Microsoft’s Office and Visual Studio product suites. Once someone creates the same solution over and over again as a consultant, it’s only natural that they would want to shrink-wrap the service and call it a product.
The utilities are written, for the most part, in Managed C#. When plugged into VS.NET, they work in the background, much like Intellisense. Because it was designed this way, the performance of the product is outstanding; working in real time.
The Total .NET SourceBook is a tool for managing code libraries. Prior to Microsoft’s introduction of .NET, FMS created Total Visual SourceBook for Visual Studio 6. It has been updated to integrate fully with Visual Studio .NET, and also includes a stand-alone code browser.
Because of the lame variety of other code management and reuse solutions, we developers tend to rely on personalized directory structures, piles of CD-R/Ws, and other storage methods. Rarely are any of these developer-specific backup and archival solutions adequate for publishing “gold code”, or for maintaining code over an entire lifecycle of a product. The SourceBook fills this niche by creating a common, well indexed repository into which users can deposit. Furthermore, a manager can determine what, if any, of those contributions make it into the permanent library.
This product has tremendous potential value with small development shops—especially those that enjoy high turnover, or long-distance outsourcing. Those are the situations where a little extra investment in code-reuse can result in exponentially higher ROI. As developers leave, they leave something behind.
IBM recently patented a proprietary process for paying dispersed, diverse teams. This is accomplished by maintaining, not only the code, but a powerful database of metadata about that code, such as who developed it, when, why, etc. By ensuring that your developers check their code in and out of a central SourceBook database, or by importing it yourself, you make their product available throughout your project. You should also have the information you need to pay your developers based on what they’ve contributed to your project.
Multiple code types
SourceBook helps to manage a variety of types of developer files including documentation, articles, how-tos, and miscellaneous “other” files. The main source-code formats it supports are listed in Table A.
If you are confident that your development machines are secure, you can be confident that your source code libraries are, too. By maintaining a central Gold Code repository, and exporting it out to the development clients, your developers still control what goes into a solution, but you maintain control over what comes out of it—the packaged redistributables, executables, documentation, etc.
Total .NET SourceBook allows the check-in and check-out of source code, and makes the functions developed throughout a product’s lifecycle available throughout the product. For instance, let’s say a function that calculates projected widget weight is created early on in a project. The function is deprecated in a following version, and then re-enabled in an even later version. There’s no need to reinvent that particular wheel. You used Analyzer (described below) to remove the unnecessary function from the mid-version, but you kept it in the SourceBook
Once a piece of code makes it into your library, it is pooled with all of the others, and is indexed in ways that enable a variety of searching, editing, categorizing, exporting, importing, and all the other reporting functions. The interface for doing this is the Code Explorer. When you launch the Code Explorer, you’ll see a tree view of the various code databases—one Microsoft Access .MDB for each database. A sample database with a staggering number of royalty-free functions, modules, classes, and other code snippets comes with the application.
Much more code is available via FMS’s own hosted Web Service. Being a .NET tool, the Web Service offers significant features. In fact, it even allows you to make your own code library available to your development teams, local and remote, via the Web Service. Using the various security mechanisms available on the Internet, Sourcebook is one way that you can build your own implementation of Microsoft’s Shared Source Initiative.
The Total .NET Analyzer is the second utility in the Developer Suite, but I consider it the most valuable one. It analyzes your code for over 100 different “issues” and allows you to customize them with its Rules Editor.
This tool scans your code for no-brainer issues like unused code, a variety of common bugs, and other inefficiencies. It’s like a spelling/grammar checker that speaks .NET instead of a human language. Granted, it won’t catch every thing, but who hasn’t been saved from an embarrassing mistake by Word’s F7 keystroke?
Another thing the Analyzer checks, one that development managers in particular may find handy, is Best Practices. It comes with several best practices already built-in, and you can add your own as well by using the Rules Editor. Visual Basic programmers will also find this handy for identifying places within their code where they’ve referenced the old, deprecated VB runtime library.
The XRef tool is one that I’m surprised Microsoft didn’t already include in VS.NET. It’s a simple little tool, delivering exactly what it promises—a cross-reference. You highlight an item within your code and XRef builds a list of places in which that item occurs. It only works with C# and VB.NET so far.
One area where this can be quite valuable to managers is in calculating the impact of code modifications. For example, if you have a function that accepts a string parameter, and you want to change it to an integer parameter, you can quickly identify all of the occurrences of that function and evaluate the impact your change will have.
Installation, evaluation, and support
As with any well-managed software package, you can download an evaluation copy of each of the three components from FMS’s Web site. If you like it, you can pay anywhere from $600 for a single license, all the way up to $3000 for a 5-license pack.
After accepting the license agreement, you can install the demo version. For the SourceBook you will have a little .MDB file that has a very limited subset of sample code. From that you can see how the data and metadata is stored and indexed. From there you should be able to decide if the way SourceBook manages your code is the way you want to manage your code. You won’t have access to the Web Service; there is no trial version of that. You also won’t be able to import/export XML.
If you don’t pay for the product within 60 days, preferably online, the trial version will stop working completely. If you do pay for it, FMS provides 24×7 support for this product, via its Web Service, e-mail, and a BBS on the Web site.