Windows 64 bit Database

Can your embedded database run 64 bit?

VistaDB is written in 100% managed code, there are no external libraries to load, no unmanaged dlls being used under the hood. Because of this we can take advantage of a unique situation in .Net development. The Just In Time (JIT) compiler can safely promote the VistaDB runtime to match the processor as either 32 or 64 bit from a single assembly.

Access is not 64 bit

An embedded database engine is usually written in native (non managed) code, and as such cannot be promoted to 64 bit by the JIT. In fact a lot of Access developers have been shocked when they found that their is no 64 bit Access driver and they are forced to flag their applications as x86 only.

"CPU Any" does not work with most database engines

Yes, you can set your desktop application to use CPU Any. But does the database engine you are using also support 64 bit Windows? Most third party databases require you to specifically bind against a single version of their engine (32 or 64 bit). That will mean shipping 2 installers, testing them, and validating them with your customers. Or you have to bind against a COM interface that handles finding the correct install on the machine, but that means running regsvr and registering things through COM. That will pretty much destroy you chance at running under Medium Trust, or any other true xcopy deployable scenario.

Do you need to rebind your application and worry about shipping two or more DLLs in order to support 32 and 64 bit Windows? SQL CE, SQLITE, MYSQL all require you to maintain two editions of your database engine for supporting both modes. Not if you use VistaDB.

VistaDB deploys as a single managed assembly that fully supports 32 and 64 bit in a single package!

Why would you need 64 bit support?

Some developers ask why they would need 64 bit support in their application? Why not just tag the app as 32 bit and use an older driver?

Data access is traditionally the largest portion of memory used in an application. The data a 32 bit app can access is limited to 1.2 GB of locked RAM for .Net applications. 64 bit .Net Applications can access 32 GB of locked memory.

32 bit apps are not native in Windows 7/8!

32 bit applications on 64 bit Windows 7/8 run in an emulated machine. This means your application will not have access to all the same features as a 64 bit native application. Some administrators may opt to turn off support for legacy 32 bit applications.

The larger quesiton here is why would you not want to run 64 bit? Go to a local retailer and see how many non 64 bit machines you can still buy (last time I looked at a local Best Buy there were 2, both mini machines). 64 bit is here to stay, if your applications are not taking advantage of 64 bit Windows your users will eventually ask you why.