Wise for Windows Installer 6.0
Develop Installation Applications Directly in Visual Studio.NET
If you re anything like me, you hate building installers. The problem with this attitude is that not having an installer means you must do all the deployment tasks by hand. I hate that even more. And, despite the promise of decreased deployment costs for Web apps ( You only install them once, goes the conventional wisdom), the fact is that with test machines, beta installs, pilots, and finally production deployment, you ll install your enterprise Web applications many times. Obviously it pays to automate the task, and the 6.0 release of Wise for Windows Installer adds many features aimed at making it easier to create deployments for ASP.NET Web applications.
What s New
First off, for those of you with experience using previous versions of Wise for Windows Installer, the packaging has changed: Wise for Windows Installer now includes integration with VS.NET. Where you formerly needed to purchase Wise for Visual Studio .NET to get integration with VS.NET, you now get both environments in one bundle. I appreciate that because, although I prefer the standalone IDE, one feature of the integrated IDE saves me lots of time: Only the integrated IDE creates deployment projects that are part of a VS.NET solution. When your deployment project is part of a solution, Wise for Windows Installer builds the list of files to deploy based on the project. And it s smart enough to exclude all your source files and other intermediate files from your development machine. It s a great way to start a deployment project.
After you ve created a project, Wise for Windows Installer gives you two views of the files on the destination machine: Web files and physical files. The physical files view shows you where your files will be copied on the destination machine. The Web files view mirrors that of the IIS admin tool: It shows you the view of all the virtual directories in your Web application. You can add files to the virtual directories or to other locations on the destination machine (such as help files for users, readme docs, etc.).
Of course, copying files to the destination server is the easiest of the tasks necessary to build the installation for your Web application. Wise for Windows Installer does a great job of supporting all the steps that must happen to configure the deployment server.
First of all, Wise for Windows Installer can check for necessary features on the deployment server (see Figure 1). For security reasons, the installer will not modify these settings, but it will check and notify the user if any required IIS feature is not enabled. So, you shouldn t be getting any more support calls because the user did not know that ASP.NET must be turned on for your application to work.
Figure 1: Wise for Windows Installer checks for necessary features on the deployment server.
Next, Wise for Windows Installer provides an easy way to ensure the destination server is configured properly. Wise for Windows Installer has a tabbed dialog box that mirrors the IIS configuration dialog boxes you use everyday to configure IIS on your development machine. The settings you choose for your installer will be applied to the destination server. Using this tabbed dialog box you can pick the application name, destination, authentication settings, default document, and even TCP ports. If it s in the IIS config dialog boxes, in can be set with Wise for Windows Installer.
When you pick the destination you can configure if your application should be a new Web site, an existing Web site, or a new virtual directory. You can even instruct the installer to create a new virtual directory only on those destination systems that do not support multiple Web sites (XP Professional and other workstation installations).
The authentication settings are quite robust. You can configure any or all of anonymous, digest, basic, passport, or integrated windows security for the site. You can even specify the account IIS should use for anonymous access. If you are creating a large site, you can specify different settings for different directories in your application. No longer do you have to force your users to manually configure different access settings to the different directories in your site.
Finally, after creating all these settings, you can tell Wise for Windows Installer which settings can be overridden by the user running your application. Wise for Windows Installer adds dialog boxes for those settings. Maybe the user has a different anonymous access account? No problem, using Wise for Windows Installer.
And Finally ...
I ve saved the two best features of Wise for Windows Installer for last: SQL installations and dynamic XML editing. These two features make installing a data-driven Web application quick and easy. Almost all your Web applications include a database. Wise lets you include SQL server scripts into your installer. These will be executed as part of the installation. Even better, Wise for Windows Installer captures the login, password, and server variables from your user at installation time. You can use these environment variables to update web.config. Using Wise for Windows Installer s Dynamic Content feature you can replace text in your web.config file with environment variables captured at installation time.
The Dynamic Content feature is most often used for storing the connection string for a database, but you can use it to replace any text in a well-formed XML file. You specify the value and the dynamic value for any node in the file (see Figure 2). The installer then substitutes the values of any environment variable for that text in the dynamic value.
Figure 2: Specify the value and the dynamic value for any node in the file.
What s Missing
There are two features I d like to see added in a future version. First, I usually use two different SQL accounts in my Web applications. One, with limited privileges, for run-time access. A second higher-privilege account gets used for installation actions. It would be nice if I could specify both in the installer, instead of updating that by hand later.
Secondly, the dynamic content is great, but there are times when I want to encrypt the connection string in my web.config file for security reasons. Currently this cannot be handled by the dynamic values editor.
Neither of these small issues should discourage you. All in all, Wise for Windows Installer 6.0 is a fantastic way to minimize the headaches that normally accompany deployments. Your users need only run the installer to get a Web application running correctly; there are no more extra hand-processed steps. And just as important, you don t need to write any custom code to handle the typical (and even not so typical) Web application installation requirements.
A commercial software developer and co-founder of SRT Solutions, Inc., Bill Wagner facilitates adoption of .NET in clients product and enterprise development. His principal strengths include the core framework, the C# language, Smart Clients, and service oriented architecture and design. In 2003 Microsoft recognized his .NET expertise by appointing him Regional Director for Michigan. A frequent writer and speaker, Bill is the author of C# Core Language Little Black Book (Coriolis Group Books, 2001) and the forthcoming Effective C# from Addison-Wesley.
Web Site: http://www.wise.com
Price: Standard Edition, US$449; Professional Edition, US$1,199; Enterprise Edition, US$1,999