The Demise of Xcopy Deployment

28
The Demise of Xcopy Deployment David Truxall, Ph.D.

description

One of the great features of .Net when it first released was Xcopy deployment. No more .dll registrations, just copy the files to the web server. While this was a great feature for Microsoft developers, new problems emerged, specifically around managing web.config. Sections like connection strings and custom errors need to be managed between environments, which meant many copies of the files or scripts to change them. Other necessary steps, like managing permissions and IIS configuration were still outside the Xcopy process. A recent tool, MSDeploy, is now integrated into Visual Studio 2010 and makes managing these issues easier. Besides web.config, MSDeploy also manages file deployments and synchronization, ACLs, and IIS settings. If your deployments have multiple steps, need ReadMe files, or can’t be done by someone outside your team, you need to learn MSDeploy!

Transcript of The Demise of Xcopy Deployment

Page 1: The Demise of Xcopy Deployment

The Demise of Xcopy Deployment

David Truxall, Ph.D.

Page 2: The Demise of Xcopy Deployment

MSDeploy

One-Click Publish

Page 3: The Demise of Xcopy Deployment

Who Am I?

www.davidtruxall.com/

Developer – Troubleshooter – Trainer - Consultant

@davetrux

Page 4: The Demise of Xcopy Deployment

Agenda

• About MSDeploy• IIS Console• Visual Studio 2010• Command-Line

Page 5: The Demise of Xcopy Deployment

MSDeploy

One-Click Publish

Page 6: The Demise of Xcopy Deployment

Why MSDeploy?

IIS 6 IIS 7

Page 7: The Demise of Xcopy Deployment

Where do I get it?

• Web Platform Installer• Separate download• Visual Studio 2010

Page 8: The Demise of Xcopy Deployment

Architecture

• Provider Based

• Package• Deploy• Synchronize

Page 9: The Demise of Xcopy Deployment

Verbs• dump• sync• delete• getDependencies• getParameters• getSystemInfo

Page 10: The Demise of Xcopy Deployment

MSDeploy Process

IIS

PackageFile

MSDeploy Create thePackage

MSDeploy

IIS

VS 2010

Command-line

PowerShell

Page 11: The Demise of Xcopy Deployment

Deployment• Using IIS Manager UI • Using command file created by Visual Studio 10 • Using command line using MSDeploy.exe • Using Power Shell support provided by MS Deploy • Using managed APIs provided by MS Deploy

Page 12: The Demise of Xcopy Deployment

Create the Package

Page 13: The Demise of Xcopy Deployment

Deploy the Package

Page 14: The Demise of Xcopy Deployment

Providers

CertificatesCOM objects

File System GAC

Machine Config

App PoolsACLs

IIS

SQL Server

MySQL

Registry

Custom

Page 15: The Demise of Xcopy Deployment

Integrates with IIS Console

• UI• Import/Export– Synchronization– Migration

Remember Today’s Password: Elastic Syntax

Page 16: The Demise of Xcopy Deployment

Agent Service

Page 17: The Demise of Xcopy Deployment

IIS Demo

Page 18: The Demise of Xcopy Deployment

Visual Studio 2010

Page 19: The Demise of Xcopy Deployment

Managing Web.config

• Transformation– Connection strings– Custom errors

• At Publish, not at Build

Page 20: The Demise of Xcopy Deployment

Publishing

• Offline• Online

Page 21: The Demise of Xcopy Deployment

Package

• Manifest• Contents

Page 22: The Demise of Xcopy Deployment

VS 2010 Demo

Page 23: The Demise of Xcopy Deployment

Command-Line

msdeploy.exe -verb:<verbName> -source:<provider>[=<pathToProviderObject> [,<providerSetting>=<providerSettingValue>]] [-dest:<provider>[=<pathToProviderObject> [,<providerSetting>=<providerSettingValue>]] ] [-<MSDeployOperationSetting> ...]

Page 24: The Demise of Xcopy Deployment

Command-Line Demo

Page 25: The Demise of Xcopy Deployment

Continuous Integration

<Exec Command='"C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"

-verb:sync -source:contentpath="$(DropLocation)\$(BuildNumber)\Release\Site" -dest:contentpath=\\TESTSERVER\Site' ContinueOnError="false" />

Page 26: The Demise of Xcopy Deployment

Building A Dev Server

• Configure IIS Management Service• Open firewall port (8172)• Install MSDeploy

Page 27: The Demise of Xcopy Deployment

PowerShell in Action

Page 28: The Demise of Xcopy Deployment

Thanks!

[email protected]

www.davidtruxall.com

@davetrux

www.linkedin.com/in/davetrux

Slideshare.net/davetrux