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 system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube