visual studio whidbey: deploying applications using clickonce sean draine program manager microsoft...

23
Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Session Code: TLS344

Upload: leonard-miller

Post on 23-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Visual Studio Whidbey: Deploying Applications Using ClickOnce

Sean DraineProgram ManagerMicrosoft Corporation

Session Code: TLS344

Page 2: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

AgendaAgenda

ClickOnce Design GoalsDemo: ClickOnce end to endSigning and SecurityDemo: Targeting the sandboxBootstrapping prerequisite componentsDemo: Component BootstrapperSummary

ClickOnce Design GoalsDemo: ClickOnce end to endSigning and SecurityDemo: Targeting the sandboxBootstrapping prerequisite componentsDemo: Component BootstrapperSummary

Page 3: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

ClickOnce VisionClickOnce Vision

Bring the ease & reliability of web application deployment to client applications.

Bring the ease & reliability of web application deployment to client applications.

Page 4: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

ClickOnce Design GoalsClickOnce Design Goals

Safety of Web applicationsApplication isolation

Easy to installNo large infrastructure investment Apps can be installed by User

Easy to updateApp automatically detects and applies updates

Safety of Web applicationsApplication isolation

Easy to installNo large infrastructure investment Apps can be installed by User

Easy to updateApp automatically detects and applies updates

Page 5: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Web or Rich Client?Web or Rich Client?

Web clientPortals, search engines, documents, simple formsReach desktops without .NET Framework

ClickOnce rich clientRich user experience

Leverage Windows controls and standardsDrag/drop, right-click, keyboard shortcuts, etc.Reduce network round trips

Offline supportWindows shell integration

Web clientPortals, search engines, documents, simple formsReach desktops without .NET Framework

ClickOnce rich clientRich user experience

Leverage Windows controls and standardsDrag/drop, right-click, keyboard shortcuts, etc.Reduce network round trips

Offline supportWindows shell integration

Page 6: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

The Best of the Client & WebThe Best of the Client & Web

Web ClickOnce

MSI Client

Reach Y

No Touch Deployment Y Y

Low System Impact Y Y

Install/Run Per-User Y Y

Rich / Interactive Y Y

Offline Y Y

Windows Shell Integration Y Y

Per-Machine/Shared Components

Y

Unrestricted Install Y

Page 7: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

ClickOnce End to End

Sean DraineProgram ManagerMicrosoft Corporation

Page 8: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Code Access SecurityCode Access Security

ClickOnce apps default to partial trust

Permissions based on origin

Internet, Intranet, or full trust (local)

Apps may need more permission

Call unmanaged code (e.g., export to Excel)

Access file system

Connect to database or Web server

ClickOnce apps default to partial trust

Permissions based on origin

Internet, Intranet, or full trust (local)

Apps may need more permission

Call unmanaged code (e.g., export to Excel)

Access file system

Connect to database or Web server

Page 9: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Elevating Trust via PolicyImproved Policy ModelElevating Trust via PolicyImproved Policy Model

Establish deployment authority

Requires one time ever client deployment

Trust licenses

Issued by authority, deployed with app

Included in deployment manifest

Trust can be scoped

Application

Author (public key token)

Establish deployment authority

Requires one time ever client deployment

Trust licenses

Issued by authority, deployed with app

Included in deployment manifest

Trust can be scoped

Application

Author (public key token)

Page 10: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Elevating Trust via PromptingElevating Trust via Prompting

Useful for targeting “PC in the wild” Internet or unmanaged Intranet User is the admin

App requests required permissionsUser prompted if:

App needs permissions above the sandboxInternet applications must be Authenticode signed

Admin can disable prompting through policy

Useful for targeting “PC in the wild” Internet or unmanaged Intranet User is the admin

App requests required permissionsUser prompted if:

App needs permissions above the sandboxInternet applications must be Authenticode signed

Admin can disable prompting through policy

Page 11: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Targeting the SandboxTargeting the Sandbox

Debug In SandboxDebug applications in partial trustException Assistant

Intellisense In SandboxFiltered based on securitycontext

Permission CalculatorCalculates least required permissions

Debug In SandboxDebug applications in partial trustException Assistant

Intellisense In SandboxFiltered based on securitycontext

Permission CalculatorCalculates least required permissions

Page 12: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Strong name signingStrong name signingClickOnce manifests must be signed

Security: ensures updates came from original authorEnsures unique app identity

Authenticode signing required for elevated trust on Internet

ClickOnce manifests must be signedSecurity: ensures updates came from original authorEnsures unique app identity

Authenticode signing required for elevated trust on Internet

Page 13: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

VS Signing SupportLarge ISVs and EnterpriseVS Signing SupportLarge ISVs and Enterprise

Private keys worth $$$Signing in development environment

Delay signingSign with temporary key

Signing production bitsPrivate key in lockboxAccessible to build lab only

Private keys worth $$$Signing in development environment

Delay signingSign with temporary key

Signing production bitsPrivate key in lockboxAccessible to build lab only

Page 14: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

VS Signing SupportDepartmental, small business, hobbyist

VS Signing SupportDepartmental, small business, hobbyist

Need easy, inexpensive, secure process

Lockbox is overkill

Keys must be portable and shareable

Hard-drive crashes, computer upgrade, small teams

Solution: Password-encrypted key files

Uses PKCS-12 standard formatKey file lives in projectShareable through SCCEnter password once per machine

Need easy, inexpensive, secure process

Lockbox is overkill

Keys must be portable and shareable

Hard-drive crashes, computer upgrade, small teams

Solution: Password-encrypted key files

Uses PKCS-12 standard formatKey file lives in projectShareable through SCCEnter password once per machine

Page 15: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Security and Signing in VS

Sean DraineProgram ManagerMicrosoft Corporation

Page 16: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

.NET Framework Deployment.NET Framework Deployment

Managed NetworksDesktops locked down Push technologies

SMS, Intellimirror, Imaging

Unmanaged PCsUser is the admin Component Bootstrapper

FX installed as part of app setup

Managed NetworksDesktops locked down Push technologies

SMS, Intellimirror, Imaging

Unmanaged PCsUser is the admin Component Bootstrapper

FX installed as part of app setup

Page 17: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Component BootstrapperComponent Bootstrapper

Lightweight setup.exe Detects prerequisitesDownloads/installs as needed

Web or disk installationsManages rebootsSupports any msi or exe installer

Out of the box.NET FX, MDAC 9, MSDE, J#, & MSI 2.0

Fully extensible for other components

Lightweight setup.exe Detects prerequisitesDownloads/installs as needed

Web or disk installationsManages rebootsSupports any msi or exe installer

Out of the box.NET FX, MDAC 9, MSDE, J#, & MSI 2.0

Fully extensible for other components

Page 18: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Bootstrapper in actionBootstrapper in action

Setup.exeSetup.exe

Dotnetfx.exeDotnetfx.exe

Web ServerWeb Server

Mdac_typ.exeMdac_typ.exe

Foo.msiFoo.msi

App.deployApp.deploy

WebWeb

RebootReboot

Client PCClient PCDotnetfx.exeDotnetfx.exe

Foo.msiFoo.msi

App.deployApp.deploy MDAC detected!MDAC detected!

Setup.exeSetup.exe

Page 19: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Bootstrapping Custom Components

Sean DraineProgram ManagerMicrosoft Corporation

Page 20: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

SummarySummary

ClickOnce makes rich client deployment easy and safeComponent Bootstrapper allows easy redistribution of prerequisitesVS makes ClickOnce deployment easy

ClickOnce makes rich client deployment easy and safeComponent Bootstrapper allows easy redistribution of prerequisitesVS makes ClickOnce deployment easy

Page 21: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

Additional ResourcesAdditional Resources

Related sessionsSession CLI371: Longhorn MSI enhancements (Room and time)Session CLI400: Advanced topics in web based deployment (Room and time)

Other resourcesHands on Lab 604

Related sessionsSession CLI371: Longhorn MSI enhancements (Room and time)Session CLI400: Advanced topics in web based deployment (Room and time)

Other resourcesHands on Lab 604

Page 22: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation

© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Page 23: Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation