Session Code CLI 370 Introducing Click Once The

  • Slides: 31
Download presentation
Session Code: CLI 370 Introducing Click. Once: The New Application Deployment Model for Windows

Session Code: CLI 370 Introducing Click. Once: The New Application Deployment Model for Windows Forms and “Avalon” Jamie Cool (jamiec@microsoft. com) Program Manager Microsoft Corporation 1

Agenda Client Deployment Re-visited Click. Once Walkthrough & Demos Reliable & easy web based

Agenda Client Deployment Re-visited Click. Once Walkthrough & Demos Reliable & easy web based installs Deployment & update options Security model Questions 2

Tools Client Application Model Avalon Windows Forms System. Windows. Forms Web & Service Application

Tools Client Application Model Avalon Windows Forms System. Windows. Forms Web & Service Application Model Data Systems Application Model Win FS ASP. NET / Indigo Yukon System. Data. Sql. Server System. Storage System. Web Mobile PC & Devices Application Model Compact Framework Command Line System. Console Mobile PC Optimized System. Windows. Forms NT Service System. Windows System. Service. Process System. Search System. Windows UI Element Explorer Documents Media Controls Text Element Controls Side. Bar Shape Navigation Relevance Panel Design Data. Set Sql. Types Mapping Sql. XML Object. Spaces Web. Controls Control Adaptors Printing Html. Controls Design Mobile. Controls Recognition Synthesis System. Natural. Language. Services System. Remoting System. Runtime. Remoting Query Activities Oracle. Client Schema System. Web. Services Description Discovery Contact Media Location Audio Message Video Document Images Event Protocols Transport Queue Port Pub. Sub Channel Router Service Policy System. Net System. Web Personalization Query System. Message. Bus Peer Group System. Xml Serialization Uddi Ole. Db. Client Relationship Xpath Transient. Data. Session Signaling. Session Media Core Schema Active Directory Object. Space System. Speech System. Drawing Real. Time. Endpoint System. Directory. Services Web. Service Item System. Collaboration System. Discovery Odbc. Client System. Storage System. Web. UI Page System. Help System. Messaging Sql. Client Logging Forms Design Monitoring Control Notification System. Windows. Forms System. Data Annotations Animation Dialogs Shapes Ink Communication Data Presentation Caching Session. State Http. Web. Request Network. Information Ftp. Web. Listener Sockets Ssl. Client. Stream Cache Web. Client Fundamentals Security Base & Application Services System. Timers System. Globalization System. Serialization System. Threading System. Text System. Design System. IO Ports System. Collections Serialization Compiler. Services System. Component. Model System. Reflection Interop. Services Configuration System. Web. Configuration System. Security Generic System. Code. Dom System. Runtime System. Windows. Trust. Management System. Enterprise. Services System. Web. Security System. Message Bus. Security Authorization Access. Control Policy Principal Cryptography Token System. Web System. Message. Bus. Configuration Administration System. Configuration Management Permissions Credentials Deployment/Management System. Resources System. Management System. Deployment System. Diagnostics System. Transactions 3

Deployment Problems Installing client apps is fragile Will the install of app 1 break

Deployment Problems Installing client apps is fragile Will the install of app 1 break app 2? Traditional DLL hell problem Installing client apps is hard & expensive Must touch every client Both for 1 st time install & subsequent updates 4

Click. Once Vision Bring the ease & reliability of web application deployment to client

Click. Once Vision Bring the ease & reliability of web application deployment to client applications. 5

Click. Once User Experience Running a client app from the web 6

Click. Once User Experience Running a client app from the web 6

V 1 of the. NET Framework Addressed #1 app safety issue, DLL Hell Application

V 1 of the. NET Framework Addressed #1 app safety issue, DLL Hell Application Isolation Controlled versioning of shared components Did not address application install safety Began to address ease of deployment Run from URL/UNC exes, browser controls… Click. Once builds upon these technologies 7

Development Experience Integrated VS Support Integrated to core project system Setup is not a

Development Experience Integrated VS Support Integrated to core project system Setup is not a post-development operation Publish Wizard Copies application to web server FTP, UNC, Front. Page Server Extensions 8

Click. Once End-To-End Building, deploying & updating a client application 9

Click. Once End-To-End Building, deploying & updating a client application 9

The Best of the Client & Web Reach No Touch Deployment Low System Impact

The Best of the Client & Web Reach No Touch Deployment Low System Impact Install/Run Per-User Rich / Interactive Offline Windows Shell Integration Per-Machine/Shared Components Unrestricted Install Y Y Click Once Y Y Y MSI Client Y Y Y 10

Install Goals Reduce install fragility Allow what’s low impact Ex. App file copy, start

Install Goals Reduce install fragility Allow what’s low impact Ex. App file copy, start menu integration, etc… Can always undo what was installed Disallow what’s not low impact Apps never run with admin rights (LUA) Driver registration, COM objects, etc. . Custom actions; large source of install uncertainty Expand the definition of “low impact” Requires OS Changes. Starts with Longhorn 11

Install-Time Support Low Impact Application Files Start Menu / ARP Reg. Free COM (XP)

Install-Time Support Low Impact Application Files Start Menu / ARP Reg. Free COM (XP) File Associations Shell Extensions Managed Config Shared Component Custom Actions Click. Once “Whidbey” Yes Yes Click. Once “Longhorn” Yes Yes *MSI is flexible, what it does is totally up to the MSI developer. MSI No* Yes Yes 12

VS Bootstrapper Bridging the Gap to the Future Lay down application pre-reqs Ex. (.

VS Bootstrapper Bridging the Gap to the Future Lay down application pre-reqs Ex. (. NET FX, Crystal, Direct. X, MDAC, etc…) Must be an admin to run Bootstrapper Extensible Install Click. Once application after pre-reqs Use Click. Once for auto-updates No auto-updates of pre-reqs components . NET FX V 1. 1 Bootstrapper available today All Click. Once apps require the. NET FX FX is part of “Longhorn” 13

Declarative Install Application Manifest Describes the application Ex. . What assemblies constitute the app

Declarative Install Application Manifest Describes the application Ex. . What assemblies constitute the app Authored by the developer Deployment Manifest Describes the application deployment Ex. . What version clients should run Authored by the administrator 14

Run & Update from the Web Deployment Manifest 1. 0 1. 1 Application Manifest

Run & Update from the Web Deployment Manifest 1. 0 1. 1 Application Manifest 1. 0 Web Page w/ Link to Manifest Assembly List… Application Manifest 1. 1 Assembly List… 15

Deployment Options ‘Installed’ Applications From Web, UNC or CD Start Menu, Add/Remove Programs Varied

Deployment Options ‘Installed’ Applications From Web, UNC or CD Start Menu, Add/Remove Programs Varied update options ‘Launched' Applications App launches but doesn’t “install” No Start Menu, Add/Remove Programs Always update on launch 16

Update Options On App Startup If found, ask user to update app After App

Update Options On App Startup If found, ask user to update app After App Startup If found, ask user to update on next run Programmatic Integrate update experience into app Required Update can specify minimum version required Background Updates drizzle in silently – like Windows Updates “Longhorn” only 17

Secure Updates Only the original deployer can update No auto-deployment of viruses Manifests are

Secure Updates Only the original deployer can update No auto-deployment of viruses Manifests are signed XMLDSIG Deployer key needed to publish updates 18

“Longhorn Web” Apps Integrated with Browser Install UI built into browser Best possible user

“Longhorn Web” Apps Integrated with Browser Install UI built into browser Best possible user experience Leverages Avalon app/navigation model No shell presence (ex. Start Menu shortcut) Runs in semi-trust Progressive Install App automatically installs as it’s used File level install 19

“Longorn Web” Apps Deploying & running an app in the browser 20

“Longorn Web” Apps Deploying & running an app in the browser 20

Security: The Sandbox (SEE) Apps run in secure sandbox by default Similar to IE

Security: The Sandbox (SEE) Apps run in secure sandbox by default Similar to IE javascript Ensures applications are safe to run Increased sandbox size “Longhorn” > “Whidbey” >. NET V 1. 1 VS helps author for the sandbox Debug in Zone Permission. Calc Security Exception helper 21

Security: Sandbox Restrictions Some apps need more permission Un-managed code access Export to Excel

Security: Sandbox Restrictions Some apps need more permission Un-managed code access Export to Excel or any MS Office integration Un-restricted file access Un-restricted network access 22

Security: Policy Deployment Application level policy “Trust this app” “App” defined by it’s app

Security: Policy Deployment Application level policy “Trust this app” “App” defined by it’s app manifest Baked into core CLR security Trust Licenses License issued by admin, deployed with app License indicates admin says app is trusted Requires only one-time (ever) client touch To configure trusted license issuer 23

User Consent Admins should make trust decisions, but… Not always possible Home users are

User Consent Admins should make trust decisions, but… Not always possible Home users are their own admin Users make trust decisions all the time Putting a CD in their computer Installing software Submitting a Credit card to a web page 24

User Consent Design App request permissions needed Requests specified in app manifest VS helps

User Consent Design App request permissions needed Requests specified in app manifest VS helps identify needed permissions Prompt is simple & binary Happens at install / 1 st launch Combined Install & Trust Prompt User prompted if: App needs permissions above the sandbox Admin has configured to allow prompting 25

Click. Once Security Declarative security & user consent 26

Click. Once Security Declarative security & user consent 26

Click. Once APIs Update Support Control when & how the app updates Check. For.

Click. Once APIs Update Support Control when & how the app updates Check. For. Update(), etc. . On-Demand Support Download files as needed Download only required files at 1 st install Use API to trigger download of files as needed Replaces Assembly. Load. From() 27

Other Sessions… Session CLI 400: Advanced Topics in Web Based Application Deployment for Windows

Other Sessions… Session CLI 400: Advanced Topics in Web Based Application Deployment for Windows Forms and "Avalon" TLS 344: Visual Studio "Whidbey": Deploying Applications Using Click. Once CLI 303: Avalon: Creating Windows “Longhorn” User Experiences CLI 312: Windows “Longhorn”: Enhancements for a Trustworthy Application Experience Date/Time Wens, 2: 00 PM Wens, 10: 00 AM Wens, 3: 30 PM Wens, 5: 00 PM 28

Call to Action Use Click. Once! Included in “Whidbey” & “Longhorn” Alphas Give us

Call to Action Use Click. Once! Included in “Whidbey” & “Longhorn” Alphas Give us your Feedback! What do you like? What’s missing? What did you have problems with? 29

© 2003 -2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes

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

31

31