If I could do it over again, I would probably do something similar to what you suggest with extending the data provider (for example: adding a method ConfigureDatabase). But I don't think the current setup is that bad. Notice this function in the installer:
Code:private void ExecuteInstallation()
{
if (rbDataProviderSQLite.Checked)
{
ExecuteSQLiteInstallation();
}
else
{
ExecuteSqlServerInstallation();
}
SetFlagForMembershipConfiguration();
}
It would be trivial to extend this to handle a third option. Sure, you have to write the functions to set up the database, but you'd have to do that anyway. You will also have to modify some functions that have knowledge of both data providers (such as UpdateWebConfigFile).
If you have the time and want to refactor the installation to be the ultimate in extensible, you have my blessing and I would definitely be interested in incorporating it into the GSP code base.
Roger Martin
Creator and Lead Developer of Gallery Server Pro