dev395 no touch deployment for windows forms jamie cool program manager.net client microsoft...
TRANSCRIPT
DEV395 No Touch Deployment for Windows FormsJamie Cool
Program Manager
.NET Client
Microsoft Corporation
Introduction
The Why and the How
No-Touch Deployment
No-Touch UpdateCode Download
Auto-Updating Applications
Future Directions
Why Client Installs are Hard
System Impact (app1 breaks app2)
First Time Deployment
Application UpdateRequires full re-install
Goal: Avoid installs altogether
Application Isolation
Built into CLR
Apps are isolated, self-describing
Side-By-SideMultiple 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
<a href=“http://myserver/myapp.exe”></a>
Launching Apps from Launching Apps from URLsURLs
demodemo
Security
Partially Trusted ApplicationsSecurity based on app’s origins
Strong NamesUse 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.exeMyApp.exe
Web ServerWeb Server
Internet Internet ExplorerExplorer
Download Download CacheCache
Client AppClient App
.NET .NET FrameworkFramework
Managed Managed Exe?Exe?
MyApp.dllMyApp.dll
HTTPHTTP
HTTPHTTP
URL Launching – URL Launching – Security and UpdatesSecurity and Updates
demodemo
Additional No-Touch Options
Web Browser ControlsContained in a Web Page
Good migration option
Run from File ShareEnabled 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 installRegisters 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 DownloadCode Download
demodemo
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 updatesDifficult 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
V1V1
AppStart.exeAppStart.exe
MyAppMyApp
V1.1V1.1
AppStart.exeAppStart.exe
AppStart.configAppStart.config
MyApp V1 MyApp V1 DomainDomain
Web ServerWeb Server
Check ForCheck ForUpdatesUpdates
DownloadDownloadUpdateUpdate
HTTPHTTP
MyApp V1.1 MyApp V1.1 DomainDomain
.NET Updater .NET Updater Application BlockApplication Block
demodemo
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 SummaryURL
Launched App
Code Download
UAB
No-Touch Update
Yes Yes Yes
No-Touch Deployment
Yes
Dynamic Modules
Yes
Offline Yes
Full Trust Yes
Win 9x Yes Yes
Future Directions
Continuing GoalsLow TCO standard for client apps
Reduce necessary development work
No-Touch Deployment FrameworkDeployment & Update API
Framework and Tools support
Goal: Trivial to enable
Other Talks
Community ResourcesCommunity ResourcesWindows Form.Net
http://www.windowsforms.net
Windows Forms Forumshttp://www.windowsforms.net/Forums/
MSDN Support Databasehttp://msdn.microsoft.com/support/
Community Resources
Community Resourceshttp://www.microsoft.com/communities/default.mspx
Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/
NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx
User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx
evaluationsevaluations
© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.