230 likes | 558 Views
Session Code: TLS344. Visual Studio Whidbey: Deploying Applications Using ClickOnce. Sean Draine Program Manager Microsoft Corporation. Agenda. ClickOnce Design Goals Demo: ClickOnce end to end Signing and Security Demo: Targeting the sandbox Bootstrapping prerequisite components
E N D
Session Code:TLS344 Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation
Agenda • ClickOnce Design Goals • Demo: ClickOnce end to end • Signing and Security • Demo: Targeting the sandbox • Bootstrapping prerequisite components • Demo: Component Bootstrapper • Summary
ClickOnce Vision Bring the ease & reliability of web application deployment to client applications.
ClickOnce Design Goals • Safety of Web applications • Application isolation • Easy to install • No large infrastructure investment • Apps can be installed by User • Easy to update • App automatically detects and applies updates
Web or Rich Client? • Web client • Portals, search engines, documents, simple forms • Reach desktops without .NET Framework • ClickOnce rich client • Rich user experience • Leverage Windows controls and standards • Drag/drop, right-click, keyboard shortcuts, etc. • Reduce network round trips • Offline support • Windows shell integration
ClickOnce End to End Sean DraineProgram Manager Microsoft Corporation
Code 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
Elevating 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)
Elevating Trust via Prompting • Useful for targeting “PC in the wild” • Internet or unmanaged Intranet • User is the admin • App requests required permissions • User prompted if: • App needs permissions above the sandbox • Internet applications must be Authenticode signed • Admin can disable prompting through policy
Targeting the Sandbox • Debug In Sandbox • Debug applications in partial trust • Exception Assistant • Intellisense In Sandbox • Filtered based on securitycontext • Permission Calculator • Calculates least required permissions
Strong name signing • ClickOnce manifests must be signed • Security: ensures updates came from original author • Ensures unique app identity • Authenticode signing required for elevated trust on Internet
VS Signing SupportLarge ISVs and Enterprise • Private keys worth $$$ • Signing in development environment • Delay signing • Sign with temporary key • Signing production bits • Private key in lockbox • Accessible to build lab only
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 format • Key file lives in project • Shareable through SCC • Enter password once per machine
Security and Signing in VS Sean DraineProgram Manager Microsoft Corporation
.NET Framework Deployment • Managed Networks • Desktops locked down • Push technologies • SMS, Intellimirror, Imaging • Unmanaged PCs • User is the admin • Component Bootstrapper • FX installed as part of app setup
Component Bootstrapper • Lightweight setup.exe • Detects prerequisites • Downloads/installs as needed • Web or disk installations • Manages reboots • Supports any msi or exe installer • Out of the box • .NET FX, MDAC 9, MSDE, J#, & MSI 2.0 • Fully extensible for other components
Client PC Web Bootstrapper in action Web Server Setup.exe Setup.exe Dotnetfx.exe Dotnetfx.exe Mdac_typ.exe Foo.msi Foo.msi a Reboot App.deploy App.deploy MDAC detected! a
Bootstrapping Custom Components Sean DraineProgram Manager Microsoft Corporation
Summary • ClickOnce makes rich client deployment easy and safe • Component Bootstrapper allows easy redistribution of prerequisites • VS makes ClickOnce deployment easy
Additional Resources • Related sessions • Session CLI371: Longhorn MSI enhancements (Room and time) • Session CLI400: Advanced topics in web based deployment (Room and time) • Other resources • Hands on Lab 604
© 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.