Larkware banner
border

Review: {smartassembly} 1.1

{smartassembly} 1.1 Professional, $599
Cachupa
Sal Island, Cabo Verde
http://www.smartassembly.com/index.aspx

{smartassembly} is an "assembly improvement and protection tool" that is designed to help you move painlessly through a whole bunch of release-time tasks for your .NET code. It works on .NET 1.0, 1.1, and 2.0 applications, and depending on what process you're already using, it's simple step-by-step interface could replace or augment several tools. I looked at version 1.0 when it was released; now they're out with a small update in version 1.1, so I've updated this review to match. Here's an overview of what {smartassembly} can do for you:

  • Merge dependencies with the main assembly, which cuts your deployment file list down, speeds up load time, and avoids any future versioning issues.
  • Scan your code to prune out dead and unused code. You can override this to preserve methods that you know are being called by reflection.
  • Obfuscate the code (you can override this on a method-by-method basis). The obfuscation uses nonprintable characters to rename types and lacks the customizability of high-end obfuscators but it's certainly a good start.
  • Encode embedded strings to protect them from simple hex-dumping of the resulting assembly.
  • Add code to intercept unhandled exceptions and transmit them back via a hosted Web Service with summary reports. You get a one year subscription to the service as part of the purchase price.
  • Seal all possible classes in the assembly.
  • Strong name the assembly, generating a new key if necessary.

The whole process is as easy as filling out a single dialog box and then clicking "Build." I ran a couple of assemblies through a test copy, and didn't have any problems with the stuff that came out the other end; the resulting assemblies appear to have all the functionality of the originals, and have shrunk considerably in size (though frankly I don't worry all that much about compiled code size in these days of gazillion byte hard drives). {smartassembly} lives up to the promise of offering a simple way to clean up your assemblies, though if you prefer to be able to tweak the process it isn't the utility for you; there aren't a lot of options to set or detailed help files to read. Rather, the developers here have tried to decide what's best, provided simple explanations on the user interface, and left it at that.

Version 1.1 fixes several bugs and offers some additional functionality in the exception reporting area. You can now display the exception reporting UI in French or German, or have exception reports shipped up to the server automatically without any user interaction. Exception reports also contain much richer information including the name and value of every field of every object in the stack trace, plus information on the operating system and service pack level.

You can download a 20-day evaluation version from the company's Web site. In addition to the Professional Edition, there's a $399 Standard Edition that does not include the exception reporting and stack trace decryption features of the Professional Edition. With Version 1.1, the company has also added a $799 Enterprise Edition that lets you customize the exception reporting process through an included SDK. With the SDK, you can change the exception reporting UI to match your own corporate or application-specific look, as well as customize the information that gets collected and reported.

{smartassembly} screenshot  Click for larger screenshot

{smartassembly} movie   Click for animated movie (779 KB GIF made with DemoCharge 2005)
Click here to find out how to get your own free copy of DemoCharge 2005

Mike GunderloyLarkware is the editor of Larkware, the daily .NET newspaper of record.

Published June 13, 2006