Introduction
If you're providing software that helps customers get a jump-start on building web sites, it makes sense to place it in a package that is simple to install and set up. For .NET developers at Exia, that meant using a combination of Red Gate Software's SQL Packager and MacroVision's InstallShield to package their web site authoring software.
Exia launched the Exia Web Solution Framework in late 2004. The product gives users a foundation from which to build web sites instead of starting each project from scratch.
Exia developers base that foundation on SQL and .NET programming. They build SQL databases and schemas to house web site data such as menu items, content modules, and site hierarchy. Exia developed an in-house interface to manage the web site, calling up the SQL data as needed.
"The main focus of our business," says Nigel Shaw, Exia president, "is providing a mechanism so that the framework can manage itself and the content will be drawn up from the SQL Server database."
Packaging the application
When a release point is reached, Exia uses SQL Packager to create an executable file of the final SQL database that will be installed on the customer's system. SQL Packager preserves the structure of the database as well as all of the dependencies within the tables. Some of the dependencies are if/then scenarios Exia establishes for user type definitions.
"One of our biggest challenges with the product was finding the lowest common denominator," Shaw says. "We wanted to provide as much functionality as possible for the broadest audience without making it difficult to customize the web site."
SQL Packager first guides users through selecting schema and data for the new database, then generates scripts to preserve dependencies. In the final step, the tool automatically packages an executable or .NET project, creating a utility for easy installation.
Screenshot 1: Choosing the database objects to be packaged
"We like the .NET project option because that allows us to tweak the code to further customize the application," Shaw says.
Customizations include adding the Exia logo to the file and linking the new database with the web site project. This is done upon installation by launching a dialog box that asks the customer for the name of the database. That name is written into the web site project code, so each time the project is opened, the database opens automatically.
Screenshot 2: Customizing the project
After SQL Packager creates the .NET project and Exia's developers make the needed changes, the entire Exia web framework is compiled with InstallShield. The final executable file for customers bundles the .NET project from SQL Packager and the files from Exia's program interface.
Once Exia delivers the framework to a customer, the InstallShield executable extracts files, tools, code and the SQL Packager .NET project and saves them in the appropriate folders on the local system. SQL Packager detects local SQL server instances and prompts the user to select the appropriate location for the new database.
Screenshot 3: Installing the database from the SQL Packager package
A unique combination
Bringing easy installation to the Exia Solution Framework requires the unique combination of SQL Packager and InstallShield. Without SQL Packager, Exia would have to create a script that launches SQL Server, a task that would add five or more days to a typical project. It would also have made it difficult to detect problems and incorporate functionality such as the automatic dialog box asking for the database name.
"We really like the professional interface SQL Packager generates," says Shaw. "Using a script to package the SQL database would open a DOS box where the scripts just run, giving the user no choice about where to save the database nor any indication of how the installation is progressing."
InstallShield nicely packages and then installs all of the components of the Exia Web Framework. Using SQL Packager alone wouldn't enable Exia to deliver the framework to customers within a neat, easy-to-install graphical interface.
"The pairing of SQL Packager and InstallShield is ideal for our web framework solution," Shaw says. "We needed a process that could package the final database and install the other tools and code needed to run our program."
To try out SQL Packager, download a fully functional, fully supported free trial from Red Gate's website.