Product Reviews

Native .NET Local Storage with VistaDB

VistaDB is a database engine written entirely in .NET managed code. It's a great solution for distributed applications that need to store data locally.

Distributed applications often need local storage. The requirements for local storage are adequate performance, reliability, integration with your existing tools and ease of deployment. VistaDB scores well on all of these fronts.

While compact, VistaDB doesn't skimp on database technologies you'd expect, providing referential integrity, views and stored procedures, and a transaction monitor. Granted, in the Microsoft .NET Framework, all database engines tend to look alike, but the people at Infinite Codex Inc. have worked hard to make their product compatible with SQL Server. The .NET technologies that VistaDB supports are broad and include ADO.NET, Entity Framework, direct database access and writing stored procedures in a CLR-compatible language.

I found performance to be more than adequate for a local database; I didn't do extensive load testing, however. Running on a slow computer, I could sequentially process more than 160,000 records in about 30 seconds, update 1,000 records in about 20 seconds, and retrieve a single, non-indexed record from the same 160,000 record table in less than a second.

The VistaDB integration with Visual Studio is excellent. To use a VistaDB database, you just need to add a reference to a single DLL, or two references if you want to use Entity Framework. You can add a new VistaDB database to your solution from the Add New Item menu. To manage your database, you can either add a connection to a database to Server Explorer or just double-click on the database in Solution Explorer.

There's nothing wrong with the price, either: $250 for unlimited distribution rights and a runtime that will never expire. That price not only includes the VistaDB engine itself, but a standalone database administration tool (see Figure 1), as well as a data migration wizard (though the migration wizard would rather replace a database than add another table to it). The only licensing requirement is that you add an .LICX file to your application. If you're creating a component that will be used by other developers to create their application, you'll need to get an additional license from the company.


[Click on image for larger view.]
Figure 1. The source code for an unbranded version of the VistaDB standalone database administration tool is included in the VistaDB package, so you can distribute the tool with your application and your branding on it.

I shouldn't suggest that VistaDB is intended to be used for local storage only. The company has also positioned the product to act as a database for ASP.NET applications. For instance, in the Add New Item dialog, you can add a VistaDB to your project with all of the tables to support ASP.NET membership.

The documentation for VistaDB, beyond describing the API, is skimpy. To put together a ClickOnce deployment package that included VistaDB and my application's database, I had to pull information from a number of sources -- including refreshing my knowledge of ILMerge to insert the database into my .EXE. Task-based walkthroughs aren't available, though you can often find what you're looking for in the company's support forums.

I also have to say a word about the VistaDB support policies: There is no phone support. Pre-sales and technical questions are initially handled through the company Web site. Personally, I don't like phone support and would prefer to use e-mail, but you may have different preferences.

VistaDB is impressive and I certainly like the price. Performance is more than adequate and the feature set is surprisingly large. I'll be talking my clients into using VistaDB whenever they need local storage for applications.

VistaDB.NET

Infinite Codex Inc.
Web:
www.VistaDB.com
Phone: None
Price: $250 for the VistaDB Developer bundle, $600 for the Professional Bundler
Quick Facts: A database engine (and supporting tools) written in .NET and designed to simplify deployment and integration
Pros: Quick performance, full featured, support for all .NET technologies from ADO.NET to Entity Framework
Cons: Documentation is sparse



About the Author

Peter Vogel is a principal in PH&V Information Services, specializing in Web development with expertise in SOA, client-side development, and user interface design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His most recent book ("rtfm*") is on writing effective user manuals, and his blog on language and technical writing can be found at rtfmphvis.blogspot.com.

comments powered by Disqus

Reader Comments:

Sun, Feb 12, 2012 Eric

Just use sqlite.

Thu, Jul 22, 2010 Peter Vogel Canada

I was sad to hear about VistaDB wrapping up as a company (though the product may continue). I've got a series on what this says about the Visual Studio/.NET toolspace in my ToolTracker blog: http://visualstudiomagazine.com/blogs/tool-tracker/list/blog-list.aspx

Tue, Jul 20, 2010 Dany Germany

I'm too rather impressed with this Database. Unfortunately "the office will be closing August 1, 2010" (http://infinitecodex.com/post/2010/07/07/Closing-VistaDB-Office.aspx)! Sadly, they do not make the desired profit to be able to keep on developing. One may buy a package including source to be able to maintain a running project.

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above

.NET Insight

Sign up for our newsletter.

I agree to this site's Privacy Policy.