-Demo: ClickOnce Publishing Smart Client Windows Applications
§Fine-tuning ClickOnce
§Requirements and updating
§Prerequisites and Manifests
§Security
§ClickOnce API
§Hints & Tips
ClickOnce Vision What is “ClickOnce”?
Bring the easeof
web application deployment to
client applications
Deployment with ClickOnce What is “ClickOnce”?
§Smart Client Deploy meets Web Deploy
-Run an application by clicking on a URL
-Update an application by updating a server
§Robust Downloader & Installer
-File & HTTP server support
-Flexible updates – optional, required, etc..
-Start Menu & Add/Remove Programs integration
-Extensibility via an API
§Deep Visual Studio Integration
§Rich Security Model
-CLR CAS sandboxing
-Permission elevation prompting w/ Authenticode
The Best of the Client and Web What is “ClickOnce”?
Demo: ClickOnce Publishing Smart Client Windows Applications
Fine-tuning ClickOnce Development Experience
§Visual Studio 2005 IDE support
-Integrated with core project types
-Setup is not a post-development task
§Project Designer
-Publish pane
-Security pane
-Singing pane
§Publish Wizard
-Copies application to Web server, FTP or network file share
Fine-tuning ClickOnce Deployment Options
§‘Launched’ application (from Web or UNC)
-Application launches, but doesn’t “install”
-No start menu, no Add/Remove Programs
-There will be support to cleanup ClickOnce Cache
-Always updates on launch
.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, SQLEXPRESS
-Fully extensible for other components
ClickOnce Requirements
§Operating System Support
-“ClickOnce” ships in the .NET Framework redist & supports all of the same operating systems & languages as the core .NET Framework. Specifically Windows 98 & up, except for NT4.
§Special server requirements for hosting a "ClickOnce" application
-No, you can use a regular file share, IIS or any web server.
-If you are using a web server
-You need to configure the MIME type (application/deployment) for the .application extension.
-You need to configure your server to unblock any restricted file extensions used by your app, such as .exe, .dll, .config., manifest, etc.
-If you want to use HTTP compression, you will need IIS6 and HTTP 1.1.
§Client Computers to have .NET FW 2.0
ClickOnce Basics Update options for installed apps
§On application startup
-If found, ask user to update app
§After application startup
-If found, ask user to update on next run
§Required updates
-Specified using minimum required version
§Programmatic updating
§Prerequisites
ClickOnce Basics Update Architecture
Manifests Declarative Installation
§Application manifest (n)
-Authored by the developer
-Describes the application
-*.exe.manifest
-Example: what assemblies constitute the application
§Deployment manifest (1)
-Authored by the administrator
-Describes the application deployment
-*. application
-Example: what version clients should use
Manifests Deployment & Application Manifests
Manifests Deployment Manifest
Manifests Deployment Manifest
Manifests Deployment Manifest
Manifests Deployment Manifest
Manifests Application Manifest
Manifests Application Manifest
Manifests Application Manifest
Manifests Application Manifest
Manifests Application Manifest
ClickOnce Basics Bootstrapper
§Installs app prerequisites
-.NET FX, SQLExpress, DirectX,..
-Requires admin rights
-Extensible architecture
-Manages reboots
§Installs ClickOnce app after prerequisites
-Use ClickOnce for auto-updates
-No auto-updating of prerequisite components
Security Introduction
§ClickOnce applications run in a sandbox by default
Introduction to ClickOnce Agenda§ What is “ClickOnce”?§ ClickOnce Basics - Demo: ClickOnce Publishing Smart Client Windows Applications§ Fine-tuning ClickOnce§ Requirements and updat