DEV395 No Touch Deployment for Windows Forms Jamie Cool Program Manager.NET Client Microsoft Corporation
Introduction The Why and the How No-Touch Deployment No-Touch Update Code Download Auto-Updating Applications Future Directions
Why Client Installs are Hard System Impact (app1 breaks app2) First Time Deployment Application Update Requires full re-install Goal: Avoid installs altogether
Application Isolation Built into CLR Apps are isolated, self-describing Side-By-Side Multiple versions co-exist Apps default to original build assembly
URL Launched Apps Run managed apps from URL No-Touch Update for Free On-Demand Download
Launching Apps from URLs demo demo
Security Partially Trusted Applications Security based on app’s origins Strong Names Use to grant extended permissions Security based on who signed assembly
Downloaded Code Caching Stored in Download cache Separate from IE cache Maintains URL for security Configurable cache size Per user install
Launching from Internet Explorer MyApp.exe Web Server InternetExplorer DownloadCache Client App.NETFramework ManagedExe? MyApp.dll HTTP HTTP
URL Launching – Security and Updates demo demo
Additional No-Touch Options Web Browser Controls Contained in a Web Page Good migration option Run from File Share Enabled by zero-impact (no registry)
No-Touch Considerations PRO: Low TCO PRO: Automatic updates PRO: Inherently safe (Partial Trust) CON: Online Only CON: Cannot install in GAC CON: No registration possible (e.g., file handlers)
No-Touch Update App needs local install Registers file handler Performs GAC installs Needs desktop integration How to update w/o client touch?
Code Download Load assemblies from Web server Use Assembly.LoadFrom(url) Downloads and caches assembly Automatically checks for new versions Permissions based on assembly origin
Code Download demo demo
Code Download Considerations Pro: Small initial install Pro : Incremental download Pro : Auto-update Con: No offline support Con: Updates only once per execution Con: Must factor apps appropriately
Auto-Updating Applications Poll for available updates Download updates reliably in background Apply updates Difficult when app is running
.NET Updater Application Block (UAB) Patterns & Practices architecture block Enables auto-updating of installed apps Provides offline support, Full Trust Uses BITS for downloads Highly extensible
Architecture V1 AppStart.exe MyApp V1.1 AppStart.exe AppStart.config MyApp V1 Domain Web Server Check For Updates DownloadUpdate HTTP MyApp V1.1 Domain
.NET Updater Application Block demo demo
UAB Considerations Pro : Auto-update Pro : Updates running application Pro : Background download Pro : Offline support Con: Requires install Con: No Win9x support by default
Deployment Summary URL Launched App Code Download UAB No-Touch Update Yes No-Touch Deployment Yes Dynamic Modules Yes Offline Yes Full Trust Yes Win 9x Yes
Future Directions Continuing Goals Low TCO standard for client apps Reduce necessary development work No-Touch Deployment Framework Deployment & Update API Framework and Tools support Goal: Trivial to enable
Other Talks
Community Resources Windows Form.Net Windows Forms Forums MSDN Support Database
Community Resources Most Valuable Professional (MVP) Newsgroups Converse online with Microsoft Newsgroups, including Worldwide User Groups Meet and learn with your peers
evaluations evaluations
© 2003 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.