VistaDB.Net Logo

VistaDB 4 Engine Intro

by Jason Short 18 November 2008

Customer Sneak Preview

We will start publishing information about our EF provider very soon.  I want to urge some caution that as you are learning, so are we.  The EF provider is Alpha stage right now.  Subscribers will be able to download the sneak peak preview soon, but we are requesting it not be put into production. 

We hope that you will all take the sneak preview for what it is intended; a way for you to gain a little inside knowledge and learn as we are going through the process to get it ready for production.  We fully intend to continue to break interfaces, make changes to functions, etc during the course of the preview.  At the end of this process we will end up with VistaDB 4.0.

VistaDB 4.0? A new engine?
 
Well, yes and no.  We REALLY wanted the 4.0 to include all of the server changes, but it is not going to happen.  We are breaking public interfaces in the engine, and making lots of changes internally to add more strongly typed internals.  It is not a complete engine redesign, but it is a major step forward from 3.4. 
 
The VistaDB Entity Framework provider is a new extension to the database engine.  It sits outside the VistaDB.Core namespace and runs on Dot Net 3.5 SP1.  But we are going to maintain the Dot Net 2 engine as well.  There will be a VistaDB 4.0 (Dot Net 2) and VistaDB (Dot Net 3.5) version of the runtime.   They are functionally the same with the exception of the Entity Framework provider.
 
The VistaDB 4 Dot Net 3.5 engine has the Entity Framework hooks in place and allows the EF Designer from Visual Studio 2008 SP1 to build Entity Models and call our EF provider.   The runtime environment will require 3.5 SP1 installed.  This is not an option for some customer targets, so we will continue to make a Dot Net 2 runtime engine.
 
The VistaDB 4 Dot Net 2.0 engine will not have Entity Framework hooks (it can't).  It will work with Visual Studio 2005 or 2008 (with or without service pack 1).   This will continue to be able to be deployed into current environments.  We are doing this to ensure current customer targets are not forced to upgrade to 3.5 until you make the decision to change your binding.
 
We will ship both of them to current subscribers and you will have the ability to choose which to use in your projects and deploy.  Obviously if you are using VS 2005 and Dot Net 2 only you will have to use the Dot Net 2 version of the runtime engine.
 
Side by side?
 
Can you Side by Side deploy both engines?  Absolutely.  In fact in Visual Studio 2008 both are installed by default and you can choose along with your runtime target (2/3.5) which engine runtime target you desire. 

Data Access Technologies Available

VistaDB 4 will now offer three different technologies for accessing your data.  They may be freely used within the same application (you don't have to limit yourself to a single technology in your app).

If you target the 3.5 Framework you have the following available:

  • VistaDB Direct Data Access (DDA)
  • ADO.NET Provider (SQL)
  • ADO.NET Entity Framework

As an example, let's say you use DDA to create your blank database and populate your initial data at application startup.  You can still use the Entity Framework as your ORM tool within the main portion of your application.  In our online Account Manager we use a mixture of SQL and EF code to manage the systems.  In some cases it was just simpler to perform some tasks using known tactics rather than figure out how to do it purely within EF.  The point here is that you are free to choose within your application.

If you target the 2.0 Framework you have the following available:

  • VistaDB Direct Data Access (DDA)
  • ADO.NET Provider (SQL)

 

Comments

19 December 2008 #

I've waited vistadb server for almost one year. would you please slow down the new version development and provide the vistaDB server?


we want to use B/S and C/S models, if it's too long to wait for vistadb server, we have to look into other choice. very pitty.


19 December 2008 #

I have to agree with mbira. VistaDB 3.x Server was on the roadmap last year when I purchased my first licenses for both the old 2.x and 3.x, and server version for 3.x is still a no show. It's very important to me as I had planned to test using it on a pretty substantial ecommerce site I've developed instead of SQL Server. I appreciate the constant updates to VistaDB but I would like to have VistaDB server be released. Also the frequency of the VistaDB releases, as I've read, is very hard for some of the ORM vendors to keep up with. For instance DevExpress just updated to support (I believe) 3.4 and EntitySpaces only supports 3.3.


Just my two cents worth. I am a VistaDB fan and will continue to be so keep up the great work. In fact at my last user group meeting I did a presentation on how I used VistaDB and EntitySpaces ORM with websites we post on Medium Trust hosting servers.


19 December 2008 #

js_vistadb

That is just it, we can't do a server without going to 4.x. All of these changes were things we started to do a server. The system was never setup for client server internally. We have to split things into layers and prep them for transport. It is requiring a LOT more internal changes than it should.


The roadmap was based upon what the current developers were saying. Let's just say it was off by orders of magnitude from my level of quality and feature for what a server should include.


We will have a VistaDB Agent first (lightweight server like VistaDB 2.x server). It solves the filesharing problem on a LAN, and solves multi user locally on a single box (asp.net hosting too). But we do NOT call that server. It does no query plan caching, no load balancing, etc. When we have a server it will be expected to have a lot more than the engine supports today. We have to get the engine up to that level first. Much more coming in blogs - the why as well.  We will be publishing more of the database design internals as well over the life of the 4.x product.

js_vistadb

19 December 2008 #

Dr. Short,


Thanks for that update. The devil is always in the details. Which is why you have a PHD and own VistaDB. And I get to coast in the background, finding it easy to use and solving my problems for me Wink


If possible could you update the Roadmap or give us a clue when a server version for v4 would be available to alpha or beta test?


19 December 2008 #

js_vistadb

I will say that one of the reasons I love VistaDB so much is because I do get to use all the education I thought I never would. Smile


The real world design decisions of the 3.x internals were made way before I took over.  We have spent a lot of time trying to shoe-horn in design decisions.  Refactoring sometimes mean deleting a lot of code and rebuilding.  Doesn't mean the public interface changes, but the internals can be quite different.


But for us to get a clean layered .NET architecture for the future (and I am thinking 5-10 years out at this point) we need to make some low level changes now.  It hurts to do it.  It is painful for the team, but I feel strongly enough to bite the bullet and do it now rather than later.  Some of these decisions have kept me awake at night for the past 6 months.  


I am working on a series of blog posts to help explain some of these decisions to users as we go along the next few months.  None of them were made lightly.  Exposing the why behind some of them may also help others prevent similar issues in their code (I hope).


js_vistadb

21 December 2008 #

"VistaDB 4 Dot Net 3.5 engine " -- this is very interesting. What 3.5 specific features are you using in the engine, and what's the impact when using the 2.0 engine?


21 December 2008 #

js_vistadb

The 3.5 engine does not use any 3.5 specific features except in the Entity Framework provider.  Right now we are trying to keep everything cross compiling with the same source tree for 2.0 and 3.5.  The EF specific features are in partial classes that are not compiled into the 2.0 Provider.  We are actually still catching up the provider to the .NET 2 level (generics, etc).  The engine was originally built for 1.1 and it compiled on 2.0.  


I do have some specific things I would like to add to the 3.5 DDA provider, but I am resisting the urge.  They don't buy that much other than the gee whiz factor, and it would confuse users quite a bit I think.


The only real reason to target a specific provider level is to match your application, or if you are using the Entity Framework.  We really, REALLY wanted to keep the provider to a single .NET 2 deployment but it is impossible to do with EF.


js_vistadb

Comments are closed

Powered by BlogEngine.NET and VistaDB

Log in