The Microsoft SQL Server Desktop Engine (MSDE) is actually a database server, very much like SQL Server. In fact, it's actually a scaled-down SQL Server installation aimed at desktop environments. If you have a desktop application that needs the features of SQL Server, you can use MSDE in place of a full SQL Server installation. Designing your application against MSDE is also a good idea if you think eventually your application will grow large enough to need the full features of SQL Server. If you're designing a desktop application that needs a database and have the MSDE package that's included with Visual
Studio, you can freely distribute MSDE. The redistribution license is included with Visual Studio. You can also redistribute MSDE with the Access Runtime included with Access 2003. There are some distinct advantages to MSDE. It's more robust, accommodating databases up to 2GB in size. Jet databases are limited to 2GB in size; however, databases larger than 1GB often suffer performance issues. It is possible for a Jet database to grow to 2GB; however, if you're designing a Jet database that large, you'll need to be very careful with building proper indexes and building in a regular compact and repair cycle. So, why not use MSDE for everything? Well, for one thing, you have more administrative and security concerns with MSDE than with Access. MSDE is a database server. Thus it can often behave in ways the users won't understand. For example, if disk space becomes an issue, MSDE will often take a table offline. A typical computer user won't know how to remedy that situation.
Along with administrative issues, you also need to worry about security. As a slightly scaled-down version of SQL Server, MSDE suffers the same security vulnerabilities as SQL Server. MSDE was recently vulnerable to the SQL Slammer worm. If you're writing an application that installs MSDE, you'll need to keep on top of security issues that affect SQL Server and MSDE.
Was this article helpful?