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!
32 bit applications on 64 bit Windows 7 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.