Improving Application Installation Ux In Windows 7


Published on

This session discusssed about the enhancements w.r.t application deployment in Windows 7. It gave an overview of the tool "Client Profile Configuration Designer" which is used to give an effective UX during installation. Further, this session also touched on the benefits of having per-user applications. More information on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Improving Application Installation Ux In Windows 7

  2. 2. Application Deployment Today  Deploying client applications is becoming more complex  Larger applications  Multiple packages  Complex dependencies  Difficult to patch  All of this makes for a bad user experience…
  3. 3. Application Deployment Today Long installation times Multiple UAC prompts Files left over after a failed install or uninstall Unnecessary add/remove programs control panel entries
  4. 4. Windows Installer Transaction Terminology Acquisition: Determine the Commit: Finalize the install Execution: Run state of the system and update theto transaction. Therecreateway script created to is no an install scripttherun at a later undo aof to system. While state commit. R time. updating the system, create a Acquisition o Ex: Commit assemblies towhen rollback script for usage GAC. Phase l Ex: What version of foo.dll is needed. installed? l I Ex: Copy foo.dll to the disk. n b a s Execution Foo.msi c t Phase k a l l Disk Commit Phase
  5. 5. Multi-Package Transaction Chainer Transaction Install Install Install Foo.msi Bar.msi Foo.msi Bar.msi Failure Failure Uninstall Rollback Rollback
  6. 6. Multi-Package Transaction  UAC credential prompt: Per-transaction versus Per-package  Reboot Handling  Transaction boundary  Multi-package PFR handling  Files in use handling  Transaction owner semantics  Transaction can be embedded in MSI package
  7. 7. Multi-Package Transaction Semantics – Windows Installer Acquisition Early Execution Acquisition Early Execution Late Commit Install Foo.msi Fool.msi Failure Rollback Update the statestate of machine Acquire the system. the machine. using the install script created in Update the stateof the the machine. Acquire the of acquisition phase.version Foo.exe 1. Backup the oldscripts forofFool. Foo in LIFO order to rollback the Run the rollback version ofFool and and decide if you want to copy Foo.exe. Ex: Check the Sample operations: 2. Note down an undo op-code in rollback script. transaction Foo.exe if one exists. 1. Backup 3. Copy Fool.exe. 2. Create an undo op-code for this operation. 3. Copy Foo.exe.
  8. 8. Windows Installer Patching Improvements Requirement: Ability to keep the highest version of a shared component when a patch to it is uninstalled Design Change: Windows Installer patch uninstall behavior should consider the global machine state instead of just the product state Install Word Install Outlook Apply a patch to Word Uninstall the patch to Word Word Word Outlook Word Word Word Outlook Outlook Patch Installs Spell Installs Spell Updates Spell Updates Spell Checker v12.0 Checker v12.5 Checker to v12.6 Checker to v12.0
  9. 9. Windows Installer Patching Improvements Install Word Install Outlook Apply a patch to Word Uninstall the patch to Word Word Word Outlook Word Word Word Outlook Outlook Patch Installs Spell Installs Spell Updates Spell Updates Spell Checker v12.0 Checker v12.5 Checker to v12.6 Checker to v12.5 MSI Datastore Word’s cache Outlook’s cache Spell Checker Spell Checker 12.0 Spell Checker 12.5 12.6 12.0 12.5
  10. 10. Introduction to .NET 3.5 SP1 Client Profile  Need for Smaller Framework, typically for Client Apps.  Subset of assemblies already contained within .NET Framework 3.5 Service Pack 1  Contains the Following,  Smaller framework deployment - ~28 MB client deployment package  Smaller, faster client deployment boot strapper  Client Application focused feature set:  Common Language Runtime (CLR)  ClickOnce and Windows Forms  Windows Presentation Foundation (WPF)  Windows Communication Foundation (WCF)  Visual Studio 2008 SP1 Integration – Applications can be targeted specifically for the Client Framework subset.
  11. 11. Client Profile Preview Redistributable Packages
  12. 12. Client Profile Configuration Designer  Designer Tool that will allow developers to customize the deployment experience of their applications  Uses the Client Profile general purpose bootstrapper to deploy your application and all its prerequisites.  Can be used to deploy applications requiring the Client Profile or full .NET Framework 3.5 SP1
  13. 13. Walk-through !!! Client Profile Configuration Designer
  14. 14. Application Deployment In Win 7  No major breaking changes  If your installation works on Vista it should work on Windows 7  Windows Installer 4.5 and .NET Framework SP1 features are in the box  Faster and easier deployment with fewer dependencies  Performance improvements  Expect to see 10 – 20% reduction in install operation times for larger applications  Greater application deployment flexibility  Windows Installer 5.0 with per-user application support
  15. 15. The Value Of Per-User Deployment Personal Empowerment Safer install and removal of Per- • User is in control User applications • Standard user installs applications on • Applications are installed to the user’s users’ schedule (in accordance with profile policy) • Removes risk of corrupted OS state • One user installing an application doesn’t impact another user • No elevation necessary for installation
  16. 16. Considering Per-User deployment  Per-User applications do not support some important OS extension points  Set Program Access & Computer Defaults (SPAD)  Default Programs  Additionally…  Any machine-wide prerequisites must be installed separately  Your package can not install services or drivers  Your application can not have a core purpose to serve all users of the computer, such as anti-virus  Patching can only be done when the user is logged-on  Per-User deployment is only available on Windows 7
  17. 17. Target Standard User  UAC is training wheels for Standard User  UAC heuristics detect installers, elevate your installer even if you did not manifest it  UAC “virtualizes” (fakes) system resources so your application can still think it is bopping HKLM  Do not rely on this stuff  It is here for legacy, not for new code  It is disabled for 64-bit Processes  Your code is future-safe if you target the true Standard User
  18. 18. Demo Virtualized Fake
  19. 19. For the Requesting User  Install for the requesting user, not the current user  If user is a Standard User (OTS) then when they elevate, they become a completely different user  If an application then installs into the current user’s home folder, it will be the Administrator  Best: Don’t configure user during install  Instead, do user configuration on first run  Include a manifest in your package  Mark “asInvoker”  Visual Studio 2008 adds manifests by default  Don’t have anything with “setup” or “install” in the file name
  20. 20. Further Reading  Client Profile Configuration Designer   Win Install Builder   .NET Framework Client Profile Deployment Guide   Multi Package Transaction – Basics   UAC Virtualization Basics and Demo 
  21. 21. Read more @ w w w . m s i g e e k .c o m Thank You…