VistaDB solved database hosting problems.

I've been invited to test a new product, VistaDB. I found it amazing. It's a tiny database engine with huge benefits.

VistaDB engine is only a dll with 32 Kb foot print and it works with almost all development platforms (.NET, COM, Delphi, C/C++). The best thing about VistaDB that it doesn't need any installation on the production environment. Just copy the dll along with your application and everything will work perfectly :).

Let's examine the architecture of VistaDB, it has two modes of configuration (embedded and server).

Embedded configuration:

            In embedded configuration your application (let's say it's an .NET exe) will connect to the database engine (VistaDB.dll 32KB) through VistaDB data provider (VistaDB.Provider.dll 188 KB) and the database itself is saved in vdb file which can expand as long as you have more data to add. This mode is great when you want to deploy your application using copy& paste without installing any software on the server. I used this mode to create an ASP.Net web page on a free hosting server that doesn't provide SQL Server for the free hosting offer.

Server configuration:

            In server configuration, the engine dll is hosted inside a windows service that listens to a TCP port and it gives you better performance and scalability. Beside it gives you the ability to use dedicated database server if you want. But this mode requires you to run a windows service. For more information see VistaDB architecture

SQL support:

VistaDB is a SQL-92 compliant RDBS. Built-in SQL query processor supports full range of data manipulation and data definition commands including parameterized queries, nested SELECTs, SELECT (TOP, WHERE, JOIN, CASE, UNION, LIKE, CONTAINS, GROUP BY, ORDER BY, IF, AS, INSERT, DELETE, UPDATE, ALTER, CREATE, DROP, and more with 50+ V-SQL support functions such as Count(), Avg(), Max(), LastIdentity(), Lower(), Upper(), Left(), Right() etc. for detailed data manipulation.

Engine Features:

VistaDB supports BLOB, Boolean, Character, Currency, Date, DateTime, Double, GUID, Int32, Int64, Memo, Picture and Varchar. VistaDB supports NULL values for all these data types.

It also supports indexes on the tables. See VistaDB features for more information

Bundled tools:

VistaDB comes with 3 main tools

VistaDB Server Manager: This is a monitoring tool for the server. You will not need it if you want to use embedded mode.

VistaDB Data Builder: It's a tool like enterprise manager for SQL Server. You can create database, tables, indexes, etc.

VistaDB Data Migration Wizard: to migrate from other databases to VistaDB.

My experience with VistaDB:

First I tried to create a windows .NET application that manipulates the TransactionHistory table of Adventureworks database (it has 113,443 record) I run a query to select all records from this table and it took about 16 seconds to be executed on embedded mode which is not bad for 113,443 records(takes 2-3 seconds from SQL Server 2005 Developer edition).

It gave me 77,264 records when I used where clause in 6 seconds :)

I tried another trial which is more interesting. Somee.com is a hosting site which gives you a free hosting for your ASP.NET application but it doesn't give you MS SQL. However it gives MS Access but for any SQL Server developer, writing queries for Access is not a nice work because it's not computable with SQL Server queries (I hope MS unifies the query syntax between them).

I used VistaDB and I wrote SQL-92 queries without any problem and without any installation or special requirements on the server. You can see my testing page here. I also compared between VistaDB and Access and Access was faster but Vista has the advantage of SQL-92 compliance and it would be the only database solution for the hosting sites that don't offer database solutions.

For more information please consider visiting VistaDB site

Peace,

Mohamed

Comments

  • Anonymous
    November 10, 2005
    You can also look at sqlite it has the benefit of a very nice open source community creating additional tools.

  • Anonymous
    November 10, 2005
    SQLite is about 10x faster than VistaDB, is free and extensible.

  • Anonymous
    November 10, 2005
    Well I was going to post about SQLite as well, but ppl beat me to it. I've used SQLite in production client software and it's very robust and speedy, as well as completely royalty and copyright free.

  • Anonymous
    November 11, 2005
    Thanks Aaron, rmsimpson and Ryan,
    SQLite is a good choice but it lackes for a .NET provider of you are thinking dot net. I didn't see it support any thing but C, right?

    //Mohamed

  • Anonymous
    November 17, 2005
    Thanks for this fantastic post about VistaDB Mohamed. If you love vistaDB 2.1 today, just wait until mid 2006 when we get VistaDB 3.0 released!

    Anthony Carrabino
    www.vistadb.net

  • Anonymous
    January 03, 2006
    You can find other open source projects for sqlite and ado.net data providers. check
    ADO.NET Data Provider for SQLite. (.NET Framework 1.1). Supports both SQLite 2 and 3, Full and Compact Framework. ¤http://adodotnetsqlite.sourceforge.net/
    ADO.NET 2.0/VS2005 Data Provider for SQLite. Supports Full and Compact Framework, Visual Studio Design-Time Support. ¤http://sqlite.phxsoftware.com

  • Anonymous
    October 03, 2006
    The comment has been removed

  • Anonymous
    November 22, 2006
    Hmmm, my guys can help you with this. Please come to our VistaDB support forum and post there so we don't clutter this blog with tech issues. http://www.vistadb.net/forums/ Anthony Carrabino www.vistadb.net

  • Anonymous
    December 03, 2006
    Microsoft has recently come out with a security patch for IIS that changes the trust level for ASP.NET from Full Trust to Medium Trust.  VistaDB will need to mark their assemblies to allow partially trusted callers.  See this forum article: http://forums.brinkster.com/forummessage.asp?id=113605&Forum=23

  • Anonymous
    February 25, 2007
    VistaDB 3.0 has been officially released. Read more here: http://www.vistadb.net/vistadb3.asp FYI, Allow Partially Trusted Callers (APTC attribute) is now supported so you can create ASP.NET web applications that run on shared hosts. Also, support for Isolated Storage has also been added.

  • Anonymous
    March 05, 2007
    We have been using VistaDB for about 3 years.  Yes, sqllite is there and works, but it is NOT fully managed.  Say you want to run a fully managed client and database solution, VistaDB lets you do that.