VistaDB vs. SQL Server Express, Cache, FairCom, Firebird, MySQL, Pervasive, PostgreSQL, Sybase
This midrange category of database products includes SQL Server Express, Cache, FairCom, Firebird, MySQL, Pervasive, PostgreSQL and Sybase. There are a few other lesser known databases in this category not listed here, but the points made below still apply. The key issues with these products are:
- Not managed solutions
- Not designed natively for .NET, Compact Framework or Mono
- Large footprint and multiple file distribution
- Complex setup, permissions, and often services on the client machine
- Database requires some administration
- No ability to truly embed the database engine
VistaDB is not designed to compete directly with these midrange databases however it may be useful to share our experience in trying to use them in-house. After downloading 40MB to 80MB of files from each vendor and spending hours trying to configure the various database servers, we realized that this midrange category of database products was not a viable solution as a desktop or small business database. The configuration requirements alone were tricky and confusing, let alone the massive download sizes of each product.
All of these products boast that they provide some level of multi-platform and multi-language support and many are excited to make that claim. The problem with this broad range of support is that .NET developers care about the database support for .NET, CF and Mono (and none of them provide that type of cross platform support in a single embedded engine dll). VistaDB is focused on delivering a pure .NET solution. VistaDB runs natively everywhere .NET 2.0 SP1 or higher runs.
Most of our competitors .Net products cannot run under Mono because of the DLL Imports to C++ and native function calls that are not supported under Mono. VistaDB is 100% managed and can run without modification in Mono.
Each time these vendors introduce a new feature into their core database product, it must be propagated to several other editions of their products, then also to each platform they support, then finally they must test all of these implementations before their database product can actually be released to the public. All this effort and multi-platform testing is incredibly time consuming. This type of environment does not foster new technology and ultimately does not benefit developers that are focused on building .NET applications as they must wait for innovations to be present on all editions of a product.
TSQL as a standard
Almost all of these mid range databases have their own vendor specific dialect of SQL. You cannot, for example, take SQL code created for Oracle and run it against mySQL. Their providers may both use the ADO.NET 2 model, but their syntax differences in parameters, datatypes and statements make them almost impossible to use from a single code base.
We chose a different design. Rather than build yet another SQL dialect we decided to standardize on the Transact SQL (T-SQL) from Microsoft. Most .Net developers are already familiar with it and there is a ton of documentation readily available on how to write SQL code for SQL Server.
VistaDB strives to maintain compliance with SQL Server 2005. Our datatypes and syntax are compatible with SQL Server. This means you can take code written against VistaDB's ADO.NET provider and execute it against SQL Server in almost all cases. This allows you to use VistaDB for smaller, lightweight installation locations, and scale your application up to SQL Server when the need arises.