Dot Net : Application Deployment
1. What is deployment?
Deployment refers to the distribution of an application among various end-users. It is a process that makes software available for use by just installing it on the client computer.
2. List different ways of deployment that are supported by .NET Framework 4.0.
- Windows Installer
- Copy Web Site
- Publish Web Site tool
3. What is XCOPY?
XCOPY enables you to deploy an application by copying the application directory and all subdirectories to the target computer and then executing the application on the client. The application starts executing on the target computer by using its assembly file, which is a self-description file that contains all the information about the application. The XCOPY deployment does not make any impact on the target system while configuring the components and registering entries, and is therefore known as zero-impact installation.
4. Does XCOPY copy the hidden and system files?
No. By default, XCOPY excludes the hidden and system files. However, you can include the hidden and system files using the /h switch.
5. Why do you use Windows Installer?
The Windows Installer deployment technique allows you to deploy Windows-based and Web applications by creating a Windows Installer Package. The installer package has an extension of .msi and it contains the application, any dependent files, registry entries, and the rest. The installer package can then be distributed to various end-users by simply copying it on the target computers.
The end-users can then run the installer package to install the application anywhere in their computers. The installation takes place using the installation wizard; therefore, the users can easily install the application on their system. Once your application is installed on the target computer, end-users can open the application from the installed location.
6. Can you deploy an ASP.NET Web application project using the Copy Web Site option?
No. The Copy Web Site option can only be used to deploy the Web sites.
7. How can you determine whether you should deploy the application or publish the application?
If you want to host the application on a shared hosting environment, you should use publishing; whereas, if you want to create a Web application that is downloaded from a Web site, you should deploy the application to create a setup.exe file.
8. How can you deploy an ASP.NET Web application?
You can deploy an ASP.NET Web application using either the Windows Installer deployment or ClickOnce deployment technique.
9. What is Application Cache?
When a ClickOnce application is installed locally or hosted online, it is stored in the ClickOnce application cache of the client computer. The ClickOnce application cache is a set of hidden directories placed under the Local Settings directory of the current user's Documents and Settings folder. The application cache contains all the application files, assemblies, configuration files, application and user settings, and data directory. In case the ClickOnce applications are hosted online, the size of the ClickOnce application cache gets limited to a specified amount; whereas, the installed applications do not restrict to the cache size limitation. The cache storage quota is responsible to determine the size of the application cache.
10. What are the enhancements in ClickOnce deployment in .NET 4.0?
In .NET 4.0, the ClickOnce deployment technology is enhanced with the following features:
- Support for .NET Framework 4.0 version - Creates applications by using Visual Studio 2010 that can target .NET Framework 4.0 and its new features.
- Support for multiple versions of the .NET Framework - Creates applications that are compatible with multiple versions of the .NET Framework. You can specify the target framework for an application as .NET Framework 3.5 or .NET Framework 4 while creating the application.
- Enhanced logging feature - Stores logging information that includes various parameters passed to the ClickOnce runtime, the browser settings, and ClickOnce security options.
- Custom Installer and User Interface - Allows you to create a custom graphical user interface for installing and updating the .exe applications. In addition, the custom installer can have custom dialog boxes for security and maintenance operations.
11. What is the difference between deploying and publishing an application?
In deployment, you can create a new setup and deployment project. In this project, you can add the project output and create a setup.exe file. After creating an executable file, you need to login into the server and execute the setup.exe file to install the application. On the other hand, in publishing, you need to right-click the application in the Solution Explorer and select Publish to publish the application. Then, you specify a location where the application is to be published. The users can then install the application from the location where you have published it and run locally even when the computer is offline.
12. What do you mean by Merge Module projects?
Merge Module projects are used to package the files and components that are shared between multiple applications. The Merge Module project file contains the .msm extension. The .msm file includes files, resources, registry entries, and setup logic. This file is merged with a Windows installer (.msi) file to correctly install the shared files. If a single merge module is used by more than one application, then you need to add that merge module in the package only once.
13. What is the need of Copy Web Site?
Copy Web Site is a tool used to deploy the Web site by copying its content files. The Copy Web Site tool also checks whether or not the latest version of a file is present at the destination. If files of the most recent version are found at the destination, then the Copy Web Site tool does not superimpose the older version of files. The Copy Web Site deployment tool consists of the following main entities:
- Project source - Specifies the source directory, which contains the contents and references of a Web site at development time. In simple words, you can say that the project source specifies the site that you currently have opened in Visual Studio 2010. The Copy Web Site tool picks all the files for deployment from this location.
- Project destination - Specifies the destination folder where you have to deploy the application. This destination directory can be placed on remote computers or servers, which allow you to copy the Web site contents using the Front Page Server Extensions, FTP, or HTTP protocol implementations for content transfer.
- Synchronizing two Web sites - Synchronizes two Web sites by copying each other's files. Synchronization checks the files on the local and remote sites and ensures that all files on both sites are up to date.
14. What is the use of the Copy Project command?
The Copy Project command copies only the files required to run the project and pastes it on the target server. It does not deploy the complete project; therefore, IIS directory settings are not automatically configured.
15. Can Windows applications and the Web applications be deployed using the same template of Setup and Deployment project?
No. the Windows applications use the Setup Project template; whereas, the Web applications use the Web Setup Project template. After the deployment, their installation takes place in the similar way.
16. Explain the .NET Framework deployment features.
In a general context, .NET Framework includes the following deployment features:
- No-impact applications - Provides application isolation and removes DLL conflicts.
- Private components by default - Enables the components to deploy to the application directory and to be visible only to the containing application.
- Side-by-side versioning - Enables you to select one of the multiple versions.
- XCOPY deployment and replication - Refers to the self-descriptive application that is deployed without the need to store registry entries.
- On-the-fly updates - Allows for the updating of the DLLs of the remote computers.
- Integration with the Microsoft Windows Installer - Makes the features, such as advertising, publishing, repairing, and install-on-demand available during deployment of an application.
- Enterprise deployment - Eases the task of software distribution.
- Downloading and caching - Specifies that the downloads are kept smaller and the components are isolated for application use.
- Partially trusted code - Enables code-based identification