Deployment and Packaging of ASP.Net Application
 
Introduction
 
You should know before staring about the different steps involved in setting up and deploying an ASP.NET Web application and it is also important to understand the dissimilarity between Setup and Deployment. Setup is an application or process that allows you to package up your application into an easy-to-deploy format, which can then be used to install the application on the target server. Deployment is the process of taking the application and installing it in on another machine, usually by the use of a setup application.
 
At one time or another, most computer users would have experienced the dark side of installing Windows programs. For example, when you install a new version of your application, the installation program copies the new version of your dlls in the system directory and makes all the necessary registry changes. This installation might potentially have an impact on other applications running on the machine, especially if an existing application was using the shared version of the installed component. If the installed component is backward compatible with the previous versions, then it is fine, but in many cases it may not be possible to maintain backward compatibility with the older versions. This is famous problem which is referred to as Dll Hell.
 
In addition, Visual Studio .NET (VS .NET) applications are compiled as assemblies, a deployment unit consisting of one or more files for the assembly to run. The Microsoft .NET Framework introduces several features aimed at simplifying application deployment and solving DLL Hell. The .NET Framework enables this simplification by providing features such as application isolation and side-by-side components. For example, configuration settings can be stored in a configuration file (web.config) which is just a text file based on eXtensible Markup Language (XML) and then deployed to the target server using XCOPY type of mechanisms. Before starting a discussion on the different deployment options, let us understand the structure of an ASP.NET application that enables you to easily deploy the application on the target server.