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.