The upgrade process for DotNetNuke is very similar to the installation procedure. It contains an automated process with fewer steps because the infrastructure is already in place. This section focuses on the differences between the upgrades of v3.x sites and v4.x sites. Here are the steps:
Back up your site. As always, it is recommended that you back up your entire site before upgrading. This includes backing up all site files and your complete database. At a minimum, you must back up your web.config file.
Download the software. As described earlier in this chapter, obtain the latest release of the software from the official DotNetNuke site (www.dotnetnuke.com). Refer to the "Select a Version" section near the beginning of this chapter for information about which package to select.
Unzip the package. If you read the earlier section about installing a v4.x site, you know that the new web project model forced DotNetNuke to change its folder structure for the source version. This adds a level of complication for anyone upgrading from the v3.x source to the v4.x source.
Upgrading v3.x to v4.x install only: If you are not worried about the source projects, you can upgrade your site in the following way by downloading the latest Starter Kit or install package:
For the Starter Kit, create a new project in Visual Studio 2005 or Visual Web Developer Express (as described earlier in the chapter). Specify the location of your existing site. You are prompted with a warning that a site already exists at the location. Select the Create a New Web Site in the Existing Location option and press Enter.
For the install package, extract the contents on to your existing site.
When you are finished upgrading for install only, proceed to the "Configure web.config for Upgrade" section.
Upgrading v3.x to v4.x source only: The situation is a little trickier if you want to upgrade to the Source version of DotNetNuke v4.0. Therefore, it's recommended that you follow the instructions earlier in this chapter on how to install a DotNetNuke v4.x site, rather than overwriting in some way your old site. Then move any custom content — such as Modules, Skins, and Portal content — you have on your old site, as well as your web.config file, to the new site. In IIS, re-point the virtual directory to the website folder of the DotNetNuke v4.x site.
This is the safest and simplest way to move your development from v3.x to v4.x. After you have completed this process, you are ready to configure your web.config file.
Configure web.config for upgrade. As discussed earlier, the installation package no longer includes a copy of web.config. The exact steps for configuring your upgraded site are as follows:
Make a backup copy of your existing web.config file (named web.config.resources, for instance).
Rename release.config to web.config.
Replace the following keys in your new web.config with the values in your backup:
SiteSqlServer MachineValidationKey MachineDecryptionKey
InstallationDate (This may not be present in the new web.config, so add the key that is in web.backup.resources to web.config.)
web.backup.resources is the recommended name for a backup of web.config.
Set <connectionStrings> to the same values as you just copied from your old web.config. This copies your database configuration to the new configuration file. Listing 2-6 shows the <connectionStrings> section.
Listing 2-6: <connectionStrings> Section
<connectionStrings> <add name="SiteSqlServer" connectionString="??????" providerName="System.Data.SqlClient" /> </connectionStrings>
Set the values of the machineKey element to the values that used to be in the appSettings node, as shown in Listing 2-7.
Listing 2-7: Password Hash Keys
<machineKey validationKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" decryptionKey="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" decryption="3DES" validation="SHA1"/>
Make any other changes to web.config that you made to support additional providers, and so on.
Perform the upgrade. First, verify that you have done the following:
Backed up your entire site and database (or at least your web.config file).
Obtained the most suitable package from www.dotnetnuke.com.
Installed the latest Starter Kit or unzipped the install package over the top of your existing installation.
Renamed your web.config file (for example, to web.config.resources).
Renamed release.config to web.config.
Copied the password hash keys (and any other setting you customized) from your old web.config file to your new web.config file.
When you have completed all of those steps, open your web browser and navigate to http://localhost/dotnetnuke/ for a local upgrade or http://www.mydomain.com/ for a remote upgrade. Alternatively, if you are using the Starter Kit, you will need to run your site by pressing Shift + F5.
When you browse to your site, you get a report similar to the one shown in the v3.x upgrade section earlier in this chapter.