This chapter covers the following Microsoft-specified objective for the "Deploying Windows Services, Serviced Components, .NET Remoting Objects, and XML Web Services" section of Exam 70-310, "Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and Microsoft .NET Framework":
Plan the deployment of and deploy a Windows service, a serviced component, a .NET Remoting object, and an XML Web service.
Create a setup program that installs a Windows service, a serviced component, a .NET Remoting object, and an XML Web service.
Register components and assemblies.
Configure client computers and servers to use a Windows service, a serviced component, a .NET Remoting object, and an XML Web service.
An enterprise solution might involve different types of applications including Windows applications, Web applications, XML Web services, Windows services, serviced components, and .NET Remoting objects. These programs might differ based on their look and feel and functionality, but they all work together to accomplish the goal of the enterprise.
Once you have developed an application and ensured its quality, the next step is to distribute and install the application on the target computers. This process is called deployment. The planning for deployment and the process of deployment can vary depending on the type of a program and its targeted users. This exam objective requires you to know what's involved in the deployment of a Windows service, a serviced component, a .NET Remoting object, and an XML Web service. The deployment of Web applications and Windows applications is covered in more detail on the 70-305 and 70-306 exams, respectively.
Plan, configure and deploy side-by-side deployments and applications.
Applications created using the .NET Framework use two different types of assemblies: private assemblies and shared assemblies. Of the two types of assemblies, shared assemblies have support for versioning and side-by-side deployment for different versions of an assembly. In side-by-side deployments, different applications can use different versions of the same assembly on the same computer. This exam objective requires you to know how to create shared assemblies, implement versioning, and use them for side-by-side deployment.
Deploying Private Assemblies
Binding Policy for Privately Deployed Assemblies
How the CLR Binds to a Privately Deployed Assembly
Using the Assembly Binding Log Viewer Tool to Diagnose the Binding Process
Using the .NET Framework Configuration Tool to Specify Additional Probing Locations
Deploying Shared Assemblies
Assigning a Strong Name to an Assembly
Adding an Assembly to the GAC
Using the Windows Installer to Add an Assembly to the GAC
Using Windows Explorer to Add an Assembly to the GAC
Using the .NET Framework Configuration Tool to Add an Assembly to the GAC
Using the Global Assembly Cache Tool ( gacutil.exe ) to Add an Assembly to the GAC
Referencing an Assembly from the GAC
Binding Policy for Shared Assemblies
How the CLR Binds to a Shared Assembly
Side-by-Side Execution of Shared Assemblies
Side-by-Side Execution in a Feature Upgrade Scenario
Side-by-Side Execution in a Service Pack Update Scenario
Delay Signing an Assembly
Delay Signing Using the Assembly Linker Tool
Packaging a .NET Application for Deployment
Packaging an Application for Deployment by Copying the Files
Packaging an Application for Deployment Using Microsoft Windows Installer
Web Setup Project
Merge Modules Project
Using CAB Files
Customizing Visual Studio .NET Setup and Deployment Projects
Deploying a Web Service
Deploying a Web Service by Manually Copying the Files
Deploying a Web Service by Using the Visual Studio .NET Copy Project Command
Deploying a Web Service by Using a Windows Installer Package
Publishing Web Services
Creating Installation Components
Understanding the Installer Class
Predefined Installation Components
Custom Installation Components
Deploying an Assembly Containing the Installation Components
Deploying Windows Services
Deploying a Serviced Component
Deploying a Serviced Component Using a Visual Studio .NET Setup and Deployment Project
Deploying a Serviced Component Using the Component Services Administrative Tool
Deploying a .NET Remoting Object
Apply Your Knowledge
S TUDY S TRATEGIES
Review the "Deployment Concepts" and "Deploying Applications" sections of the Visual Studio .NET Combined Help Collection.
Understand the various ways to deploy an application and their benefits and shortcomings. Understand when to use XCOPY deployment versus Windows Installer deployment.
Experiment with using setup projects and merge module projects to deploy .NET applications. Understand when you should choose to create a setup project versus a merge module project.
Work with the different editors available in Visual Studio .NET Setup and Merge Module projects and thoroughly understand the purpose of each of these editors.
Experiment with the Strong Name tool ( sn.exe ) to create a public/private key pair and then use the key pair to assign a strong name to an assembly. Work with the delay-signing feature and understand the scenarios in which it can be helpful.
Experiment with placing assemblies in the GAC. Understand the steps performed by the runtime to locate assemblies.