Tutorials



VistaDB 4 DVD cover image

  • Zero config TSQL Engine
  • Less than 1 MB single assembly deployment
  • Easy migration from SQL Server TSQL data types and syntax
  • Serverless database engine
  • T-SQL Procs for ease of migration to SQL Server
  • ASP.NET Medium Trust supported for shared hosting

 

vs JET - Access - MDAC Runtimes

Skip Navigation LinksVistaDB.Net > VistaDB 4 > Compare > Compare to Jet / MDAC / Access

VistaDB vs. Microsoft Access runtimes

The most widely used desktop database in the world is Microsoft Access, which is an end-user application that allows programmers and non-programmers alike to create full featured database applications easily. Microsoft Access uses .MDB data files, which in addition to storing regular data, can contain forms, reports and other objects specific to Access.

Microsoft Access is not a data engine by itself, it is actually an application that uses the relies on the Microsoft Jet engine to perform the actual data storage and retrieval on the .MDB data files. The Jet engine was originally designed as a single-user desktop database engine, which as most developers know, does not work well in multi-user and web server applications.

Deprecated MDAC Components

Jet: Starting with version 2.6, MDAC no longer contains Jet components. In other words, MDAC 2.6, 2.7, 2.8, and all future MDAC releases do not contain Microsoft Jet, Microsoft Jet OLE DB Provider, or the ODBC Desktop Database Drivers. No new feature enhancements will be made to Jet.

Source: Microsoft

A very important point to understand, and one that most developers do not realize, is that Microsoft has deprecated the Jet database engine, which means developers will not see substantial improvements to Jet in the future. From the Microsoft MDAC Roadmap page under "Deprecated MDAC Components"

Access and JET are not 64 bit compatible

There is no 64 bit version of Access, or the runtimes. If you wish to load Access data in your application you MUST make the application 32 bit only.   64 bit operating systems are here today, applications that target 32 bit only machines will be viewed as obsolete by customers. 

You cannot develop a 64 bit application that uses JET

Microsoft has already publicly stated that there will be no 64 bit JET or Access runtimes.  Visit a local electronics store today and see how many non 64 bit Windows machines you can find.  At a recent visit to Best Buy I could only find 3 machines that came with 32 bit Windows Vista.

64 bit servers are also now common place for even shared hosting providers.  If your asp.net application is built to use Access runtimes it will not on a 64 bit IIS installation.  The hosting provider will have to specifically run a 32 bit only version of IIS in order to support your application.

WOW Emulation of 32 bit on 64 bit Windows

Visual Studio users wishing to use the Access / JET runtime must target their applications to x86 CPU only.  This is an option for some applications, but it also places a lot of other limitations on your application when running on a 64 bit machine.  By flagging your application as x86 only in Windows 7 your application will run only through the WOW (Windows on Windows) emulation layer, or through the Virtual XP machine instance.  This means your app is viewed as a legacy application even if you are running .Net 2 or higher!

VistaDB can run 32 and 64 bit from a single .Net assembly!

Jet History

Developed in the early 90's, the Jet engine is over 15 years old. It was never designed to manage today's data storage demands. As many developers have experienced, Jet is generally not a good solution for creating robust database applications because it is notorious for crashing and corrupting data in multi-user environments.

Microsoft Access was designed to be an end-user application and the .MDB Access database files is an inefficient storage format since it is designed to support non-essential data such as end-user forms, reports and modules. In summary, the Jet engine and the .MDB file format is simply not robust enough for today's complex network configurations and demanding data requirements.

The following link provides history on the Jet engine:
http://www.avdf.com/nov96/acc_jet.html

Future of Jet

With the nail in the coffin for the Jet engine, it is clear that developers must look to use an alternative database solution. Microsoft's solution for replacing Jet is to have developers migrate their Access databases to the SQL CE, or SQL Server Express.

Install SQL CE or SQL Server Express as Upgrade to Access runtime?

Microsoft recommends all Access developers migrate to SQL CE or SQL Server Express on the desktop. This sounds great, however, this is generally overkill for most desktop and small network applications. SQL CE, and SQL Server Express are both powerful databases but they are simply too big and too complex for for most Access line of business applications. 

SQL CE still has complex deployment scenarios when mixing 32 bit and 64 bit targeted environments (and who wants to maintain 2 editions of their product?). 

SQL Server Express 2008 is over 250 MB worth of download (and comes in 3 different editions depending upon CPU and other options), and requires complex setup scripts to automate the install.  Even with automated install tools most desktops require a minimum of 2 reboots during install and then the service packs still have to be applied!

With VistaDB's less than 1 MB footprint, developers can actually reduce the original size of their Access based applications by over 50MB and use basic XCopy and FTP to deploy their applications. Serverless deployment and zero configuration makes VistaDB the ideal replacement for Jet.

Microsoft Jet is not intended to be used with high-stress, high-concurrency, 24x7 server applications, such as Web, commerce, transactional, and messaging servers. For these type of applications, the best solution is to switch to a true client/server-based database system such as Microsoft Data Engine (MSDE) or Microsoft SQL Server. When you use Microsoft Jet in high-stress applications such as Microsoft Internet Information Server (IIS), customers have reported database corruption, stability issues such as IIS crashing or locking up, and also a sudden and persistent failure of the driver to connect to a valid database that requires re-starting the IIS service.

Microsoft

VistaDB is a replacement for Microsoft Access on the desktop

VistaDB was designed from the ground up as an alternative database engine for developers using the Access runtime components to manage data through managed code.  If you are running .Net applications with Access as your backend database, you should review VistaDB as an alternative.

VistaDB is not a replacement for Microsft Access as an end user desktop forms application and it is not designed for end-users or VBA developers using Microsoft Access to build applications.  If you have forms, linked tables and other Access only objects in your databases you will have to migrate them to .Net applications first.

VistaDB as an alternative to Microsoft Jet

VistaDB makes an excellent alternative to the Microsoft Jet database engine. VistaDB is actually smaller and easier to deploy than Jet, but allows the same level of functionality in the managed application space. If you are developing VB.net or C# applications and need a desktop SQL database engine to replace Jet look no further than VistaDB.

VistaDB provides support for single and multi user environments, and cross platform support with Mono.

Microsoft Jet Database Engine and DAO Licensing

The following explains Microsoft's licensing for distributing solutions that use Microsoft Jet and DAO: (Source)

  1. If the developer builds a solution in an application that includes Jet but does not have a runtime version, for example Microsoft Excel or Microsoft Office, they must purchase and install a copy of the application on each user's desktop for their solution to run correctly.
  2. If the developer builds a solution in an application that includes Jet and provides a runtime license or compilation, for example Microsoft Access (with the Microsoft Access Developers Toolkit), Microsoft Visual Basic, or Microsoft Visual C++, subject to the end user license agreements accompanying each of these products, they can build and distribute their solution to users with a runtime version or as a compiled application (.EXE). 3.
  3. If the developer builds a solution in an application which does NOT include Jet, but relies on Jet, (for example, Microsoft Project or Microsoft Visual FoxPro™) they face two requirements. First, they must adhere to the license agreement for the application they used to develop the solution. Second, they must purchase and install a copy of a Microsoft application or tool which DOES include Jet on the user's desktop.

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.

This error occurs on 64 bit Windows machines because there is no 64 bit edition of Access or the OLEDB driver.  You must change your application to run as an x86 only app in order to run this driver.  But the driver is not included by default.  

We offer the 32 bit Microsoft Access runtime from our public downloads site.  But you still have to modify your application to run x86 only. 

Visual Studio Express cannot set x86 Mode

If you are using Visual Studio Express editions you cannot make this change (Microsoft excluded that ability in the Express versions).  Of course VistaDB Express does not have this limitation, our single managed assembly can run in both 32 and 64 bit editions of Windows without problem.

64 bit servers with IIS most run in 32 bit mode

If you are running a website that needs this driver you cannot load it unless you modify the entire application pool to run in 32 bit compatibility mode.  Obviously if you are running a shared host they will probably not want to make this change as it will impact a lot more sites and degrades the memory IIS can access.

 

VistaDB can run 32 and 64 bit from a single .Net assembly!

 

 Privacy Policy - Legal Nondisclosure - Refund Policy - Terms of Use - Sitemap