1 Introducing ClickOnce: The New Application Deployment Model for Windows Forms and “Avalon” Jamie Cool Program Manager Microsoft.

Slides:



Advertisements
Similar presentations
SAURABH PANT PROGRAM MANAGER MICROSOFT CORPORATION Configuring ClickOnce to best work for your deployment scenario.
Advertisements

Windows Forms 2.0 – ClickOnce Stephen Turner Software Design Engineer
1 Federating Identity and Authorization Across Organizations and Platforms Matthew Hur Lead Program Manager Microsoft Corporation
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
Create Windows ® Applications with.NET Allan Knudsen.NET Developer Evangelist Microsoft.
What’s New for Smart Client Developers in Visual Studio 2005? Mike Pelton Systems Engineer Microsoft Ltd
Module 1: Overview of the Microsoft.NET Framework.
SQL Server 2005 CLR Integration ADO.NET 2.0 Mike Taulty
Visual Studio Whidbey: Deploying Applications Using ClickOnce Sean Draine Program Manager Microsoft Corporation Sean Draine Program Manager Microsoft Corporation.
Microsoft Australia Security Summit Deploying Applications with ClickOnce Andrew Coates Developer Evangelist Microsoft Australia Andrew.
1 ClickOnce: Advanced Topics in Web Based Application Deployment for Windows Forms and Avalon Jamie Cool Program Manager Microsoft Corporation Jamie Cool.
Advanced Deployment Topics – MSI Enhancements Om Sharma Program Manager, Windows Installer Microsoft Corporation.
Building Rights Management Enabled Applications For Windows "Longhorn" Steve Bourne Chandramouli Venkatesh Microsoft Corporation Steve Bourne Chandramouli.
Windows Forms in Visual Studio 2005: An Overview Saurabh Pant Program Manager Microsoft Corporation.
1 Programming Windows Help Shane McRoberts Group Program Manager Microsoft Corporation Shane McRoberts Group Program Manager Microsoft.
Module 15 Configuring and Deploying Windows Client Applications.
Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.
Plataformas.NET para desenvolvimento de aplicações web José António Silva
Data Access Design Patterns: Navigating the Data Access Maze Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software Architect Microsoft.
1 Using XSD, CLR Types, And Serialization In Web Services Doug Purdy Program Manager Microsoft Corporation Doug Purdy Program Manager.
1 Keyboard, Speech, and Pen Input in Your Controls Kevin Gjerstad Lead Program Manager Kevin Gjerstad Lead Program Manager
Assemblies & Namespaces1. 2 Assemblies (1).NET applications are represented by an assembly An assembly is a collection of all software of which the application.
Module 1: Overview of the Microsoft.NET Platform.
“Indigo”: Building Peer-To-Peer Applications Todd R. Manion Program Manager Microsoft Corporation Todd R. Manion Program Manager.
 Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application.
DEV325 Deploying Visual Studio.NET Applications Billy Hollis Author / Consultant.
OFC290 Information Rights Management in Microsoft Office 2003 Lauren Antonoff Group Program Manager.
Windows Forms in Visual Studio 2005: An Overview Name: Joe Stegman Title: Lead Program Manager Session code.
1.NET Framework Overview: A Road Map Brad Abrams.NET Framework Team Microsoft Corporation Brad Abrams.NET Framework.
Create Windows ® Applications with.NET Carlotta Eaton ( Associate Professor of IST New River Community College Slides by Microsoft.
Section 11: Implementing Software Restriction Policies and AppLocker What Is a Software Restriction Policy? Creating a Software Restriction Policy Using.
1 Application Model Fundamentals Chris Anderson Software Architect Microsoft Corporation Chris Anderson Software Architect Microsoft.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Microsoft.Net Sven Groot. Common Language Runtime Superset of ECMA Common Language Infrastructure Defines  Language-neutral platform  Intermediate Language.
“Avalon”: Using UI Automation to Improve Application Testability Robert Sinclair Group Manager Microsoft Corporation Robert Sinclair.
DEV396 Windows Forms: No Touch Deployment Tips and Tricks Jamie Cool Program Manager.NET Client Microsoft Corporation.
1 Integrating Real-time Collaboration into your Applications Stephanie Lindsey Program Manager Microsoft Corporation Stephanie.
DEV395 No Touch Deployment for Windows Forms Jamie Cool Program Manager.NET Client Microsoft Corporation.
1 Interop Best Practices and Common Pitfalls (That We Learned the Hard Way) Please write your name on a card in the back and place it in the box… Please.
SQL Server Notifications: Invalidating Cached Results Michael Pizzo Software Architect Microsoft Corporation Michael Pizzo Software.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
Microsoft Office System UK Developers Conference Radisson Edwardian, Heathrow 29 th & 30 th June 2005.
Extending Workflow With Custom Activities Dennis Pilarinos COM328 Program Manager Microsoft Corporation.
1 Programming ADO.NET in Whidbey Pablo Castro/Brad Rhodes ADO.NET Team Microsoft Corporation Pablo Castro/Brad Rhodes.
ClickOnce Deployment (One-click Deployment)
Introducing the Microsoft® .NET Framework
Packaging and Deploying Windows Applications
1/10/2018 9:33 PM Cloud Roadshow © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO.
Using Audio, Video, and Imaging in your Longhorn Applications
Introduction to ASP.NET 2.0
System.Search, aka “Find My Stuff”
Visual Studio Tools for Office 2005
Transactional Programming In A Windows World
Michael Wallent General Manager Windows Client Platform
Smart Client Deployment With Microsoft® Windows® Forms
“Whidbey” CLR Internals
The Application Lifecycle
11/17/2018 9:30 PM Session Code: ARC 420
Windows Forms and Smart Device Extensions in the End-to-End Application Hans Verbeeck Developer Consultant Microsoft EMEA.
Building Rich, Interactive Controls for Windows “Longhorn”
New User Interface Possibilities in Longhorn
"Avalon": Building Applications With Controls And Dialogs
DAT381 Team Development with SQL Server 2005
People And Groups Controls In Windows "Longhorn"
Session Code: CLI391 Windows Forms: Exploiting Windows “Longhorn” Features from Within Your Application Mark Boulter .NET Client Team Microsoft Corporation.
ClickOnce Deployment (One-click Deployment)
Windows Forms in Visual Studio 2005: An in-depth look at key features
Introduction to ASP.NET Parts 1 & 2
Windows Forms in Visual Studio 2005: An Overview
Mark Quirk Head of Technology Developer & Platform Group
Presentation transcript:

1 Introducing ClickOnce: The New Application Deployment Model for Windows Forms and “Avalon” Jamie Cool Program Manager Microsoft Corporation Jamie Cool Program Manager Microsoft Corporation Session Code: CLI370 Speaker: Please: 1. fill in your session code, and 2. copy the appropriate “Virtual Track” icon(s) onto the title slide.

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

3 Tools Client Application Model AvalonWindows Forms Web & Service Application Model ASP.NET / Indigo Win FS Compact Framework Yukon Mobile PC Optimized System.Help System.Drawing System.NaturalLanguageServices Data Systems Application Model Presentation Data Mobile PC & Devices Application Model Communication Command Line NT Service DataSet Mapping ObjectSpaces ObjectSpace Query Schema Item Relationship Media Audio Video Images System.Messaging System. Discovery System.DirectoryServices System.Remoting System.Runtime.Remoting Active Directory Uddi System.Web.Services Web.Service Description Discovery Protocols System.MessageBus Transport Port Channel Service Queue PubSub Router System.Timers System.Globalization System.Serialization System.Threading System.Text System.Design Base & Application Services Fundamentals System.ComponentModel System.CodeDom System.Reflection System.EnterpriseServices System.Transactions Security System.Windows. TrustManagement System.Web. Security System.Message Bus.Security Authorization AccessControl Credentials Cryptography System.Web.Configuration System.MessageBus.Configuration System.Configuration System.Resources System.Management System.Deployment System.Diagnostics ConfigurationDeployment/Management System.Windows System.Windows.Forms System.Console System.ServiceProcess System.Windows.Forms System.Web System.Storage System.Data.SqlServer Animation Controls Control Design Panel Controls Dialogs SideBar Notification System.Windows Documents Text Element Shapes Shape Ink UI Element Explorer Media System.Windows.Forms Forms Control Printing Design System.Web.UI Page Control HtmlControls MobileControls WebControls Adaptors Design Ports InteropServices System.Runtime System.IO System.Collections Generic System.Search Annotations Monitoring Logging Relevance System.Data SqlClient SqlTypes SqlXML OdbcClient OleDbClient OracleClient Core Contact Location Message Document Event System.Storage System.Web Personalization Caching SessionState System.Xml Schema Serialization Xpath Query Permissions Policy Principal Token System.Security System.Collaboration RealTimeEndpoint TransientDataSession SignalingSession Media Activities HttpWebRequest FtpWebListener SslClientStream WebClient System.Net NetworkInformation Sockets Cache System.Web Administration Management Navigation Peer Group Policy Serialization CompilerServices Recognition System.Speech Synthesis

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

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

6 ClickOnce User Experience Running a client app from the web

7 V1 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… ClickOnce builds upon these technologies 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… ClickOnce builds upon these technologies

8 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, FrontPage Server Extensions Integrated VS Support Integrated to core project system Setup is not a post-development operation Publish Wizard Copies application to web server FTP, UNC, FrontPage Server Extensions

9 ClickOnce End-To-End Building, deploying & updating a client application

10 The Best of the Client & Web WebClick Once MSI Client ReachY No Touch DeploymentYY Low System ImpactYY Install/Run Per-UserYY Rich / InteractiveYY OfflineYY Windows Shell IntegrationYY Per-Machine/Shared ComponentsY Unrestricted InstallY

11 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 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

12 Install-Time Support ClickOnce “Whidbey” ClickOnce “Longhorn” MSI Low ImpactYes No* Application FilesYes Start Menu / ARPYes RegFree COM (XP)Yes File AssociationsYes Shell ExtensionsYes Managed ConfigYes Shared ComponentYes Custom ActionsYes *MSI is flexible, what it does is totally up to the MSI developer.

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

14 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 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

15 Run & Update from the Web Deployment Manifest 1.0 Deployment Manifest 1.0 Application Manifest 1.0 Application Manifest 1.0 Web Page w/ Link to Manifest Application Manifest 1.1 Application Manifest 1.1 Assembly List…  1.1 Assembly List…

16 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 ‘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

17 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 Updates drizzle in silently – like Windows Updates “Longhorn” only 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 Updates drizzle in silently – like Windows Updates “Longhorn” only

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

19 “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 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

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

21 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 V1.1 VS helps author for the sandbox Debug in Zone PermissionCalc Security Exception helper Apps run in secure sandbox by default Similar to IE javascript Ensures applications are safe to run Increased sandbox size “Longhorn” > “Whidbey” >.NET V1.1 VS helps author for the sandbox Debug in Zone PermissionCalc Security Exception helper

22 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 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

23 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 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

24 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 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

25 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 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

26 ClickOnce Security Declarative security & user consent

27 ClickOnce APIs Update Support Control when & how the app updates CheckForUpdate(), 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.LoadFrom() Update Support Control when & how the app updates CheckForUpdate(), 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.LoadFrom()

28 Other Sessions… SessionDate/Time CLI400: Advanced Topics in Web Based Application Deployment for Windows Forms and "Avalon" Wens, 2:00 PM TLS344: Visual Studio "Whidbey": Deploying Applications Using ClickOnce Wens, 10:00 AM CLI303: Avalon: Creating Windows “Longhorn” User Experiences Wens, 3:30 PM CLI312: Windows “Longhorn”: Enhancements for a Trustworthy Application Experience Wens, 5:00 PM

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

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