SlideShare a Scribd company logo
Everything You Want to Know About Application Compatibility But Were Afraid to AskHarold Wongblogs.technet.com/haroldwong
How much is this app compat thing going to cost me?Why did you break half of my software?All I need to do is run ACT long enough, and it’s fixed, right?Can I just stroke a check and have this problem go away?Should I just stay on Windows XP?The Internets said to just turn off UAC.Doesn’t App-V just fix it all for me?The MED-V brochure said just virtualize it all and migrate.The tool brochure said it fixes 90% of the problems.Why can’t my company afford a chair for me?No, seriously, can I have a chair, please?Listen, I’m not talking about App Compat until I get a chair.
App-VBeyond TrustACT 5.5Win XP ModeACF PartnersMED-VAppDNAChangeBaseShimsDisable UACThere Are No Silver Bullets
Session Objectives and TakeawaysSession Objectives:Understand that app compat isn’t easyUnderstand that app compat is not impossibleKey Takeaway:Chris’ home number is a 900 number.  Check the bathroom wall for details.
Things I Heard on the Internets About…We’re going to be speaking mainly the truth today…but we’ll also be confronting some mistruths along the wayMistruths and misconceptions will be identified with the heading“Things I Heard on the Internet About:…”For those who are not familiar with The Internets, it’s a series of tubes  
Why Is App-Compat Hard?It never used to be this hard!Backward-compatibility used to winShell Foldersp:\\products\publicCON, PRN, NULStarting with XP SP2, not anymoreCustomers demanded better securityVista was the first major desktop OS release after TWC memoStarting with Windows 7, we’re winning again…
How Do I Run an App-Compat Project?Planning, Planning, Planning!!!
Automated Analysis AssessmentACT InventoryRationalizeInitialBudgetRefine BudgetRefine BudgetstartApp Run Green?App Install Green?YesYesInstall Manual TestDetailed Automated AnalysisRuntimeManual TestUserManual TestNoNoRemediateReady to DeployendApp Compat Project Plan
Planning an App Compat ProjectTechNet MagazineJune 2009Articles by:Chris Jackson and Chris Coriohttp://technet.microsoft.com/en-us/magazine/dd799202.aspx
What Breaks in Windows 7?features
Some things that had to changeMicrosoft Agent had to goProductivity killerUsers hypnotized by agents’ anticsMore popular than YouTubeMade computers too easy to useKilled market for instructional videosThe single biggest app-compat hit, ever
Nobody uses the Agent control!Do they?Actual screenshot from a real customer engagement.No consultants were (seriously) harmed in the capture of this screenshot.
Some things that had to changeEveryone runs as “standard user”The infamous User Account ControlEven admins run as “standard user”The single biggest app-compat hit, ever
Things I Heard on the Internet About: User Account ControlUAC is…Windows asking me “Are you sure?”… over and over and over againA useless pain in the @$$Stupid, and smart people disable itEspecially smart developersUAC breaks everythingIt’s OK to say, “We recommend turning off UAC to run this software.”Wrong!
The Truth About UACThe first step toward Standard UserRequired to improve security and TCOSuite of technologies to fix stuff, not break itRunning as standard user breaks stuffThat’s why no one did it before UAC!Admin-Approval Mode enables legit admins to run as standard userAnd then perform admin actions using the same accountYour end users shouldn’t be admins to begin withAnd can’t approve elevation promptsDisabling UAC turns off IE Protected Mode
We break – we fixUAC’s file and registry “virtualization”Redirects access attempts from protected areas to non-roaming parts of user profileNot related to App-V’s “bubble”This is per-user, not per-application
Virtual memoryVirtual address spaceVirtual communitiesNT Virtual DOS Machine (NTVDM)Java Virtual Machine (JVM)MS Visual Basic Virtual Machine (MSVBVM)Virtual processors (hyperthreading)Virtual realityVirtual teamsVirtual private network (VPN)UAC file and registry virtualizationApplication virtualizationMachine virtualization (Virtual PC, Virtual Server, Hyper-V)Virtual EarthMS Enterprise Desktop Virtualization (MED-V)Virtual petsVirtual Desktop Infrastructure (VDI)virtual keyword (C++, C#)Virtual directory (IIS)Virtual device driver (VxD – obsolete!)Virtual overloadIt’s the new “.NET”!
We break – we fixUAC’s file and registry “virtualization”Redirects access attempts from protected areas to non-roaming parts of user profileTransparent to the appFixes many permissions-related issuesDoes not apply to all apps or all file typesNew in Win7:  Writing to root of C:\ redirects
Things I Heard on the Internet about:Internet Explorer 8 Standards ComplianceIE8 breaks the web and makes little girls cryIf your site works on IE6, but breaks on IE8, the fix is easy – use Firefox!Wrong!
Some things that had to changeInternet Explorer 8 Standards ComplianceMeets customer demand, good for the webApp compat > 80%Compatibility View is extremely helpfulOn by default for IntranetQuirks mode also helpful, but no admin UI!Many tools available for troubleshootingFixes either super easy or require devsHardest problem: server apps for IE6 onlyE.g., Oracle, SAP MED-V a great solution
Things I Heard on the Internet About:Internet Explorer Protected ModeAlmost like running a secure browser!Like Safari!More Microsoft security theaterBreaks all my JavaBreaks all my ActiveX controlsWrong!
Some things that had to changeInternet Explorer Protected ModeIEPM has protected you from exploits…if you left UAC enabledWith IE8, off by default for Intranet zoneMay need to configure to recognize IntranetExternal sites can be added to Trusted SitesE.g., sites that require JavaOther products like the idea!Google ChromeOffice 2010
Things I Heard on the Internet About:Windows version number changedNo earthly reason for doing that!Couldn’t possibly cause any problems!Windows 7 is version 7.0, right?No, Windows 7 is version 6.1 because it’s just a minor upgrade, and therefore probably should be free so go ahead and steal itWrong!
Some things that just changedWindows version number changedThe most common bugs we findMaking it 6.1 keeps more apps working!“Version lie” shims are easy to applyAnd now easier to lie to MSIsStill don’t think it can be that common?
Check the Windows version!// This program requires WinXP or newer.// Windows XP is version 5.1// This is easy!If Not (vMajor >= 5 AND vMinor >= 1) Then{DisplayMessage(“This program requires Windows XP or newer”);LayDownAndDie;}Win7 as Windows 7.0?vMajor: 7 >= 5vMinor: 0 >= 1? Crap!Vista is Windows 6.0:vMajor: 6 >= 5vMinor: 0 >= 1? Oops!Win7 as Windows 6.1?vMajor: 6 >= 5vMinor: 1 >= 1!  It works!
More things that just changedFolder locationsWe moved the profiles – again!Myth:  We did this for no good reasonTruth:  There was probably a good reasonAnd we changed where files need to go!Myth:  No guidance about where to put stuffTruth:  Well, yeah, but we’re fixing thatMyth:  Everything breaks, apps actually cryTruth 1:  Correctly-written apps still workTruth 2:  Junctions fix many bad apps
Directory JunctionsSome support for old folder namesCan traverse, but cannot listCan directly access files through old namesCannot list contents of these junctions
Where Should I Store Files?
More things that just changedDefault color schemeQuestion:What happens when a VB6 dev “modernizes” the dialog background using the first white color he/she finds (Active Title Bar Text)?
More things that just changedDefault color schemeOccasional mistake by VB6 devsEasy to fix (if you have the source).NET WinForms made themes easy to useOops: everyone tested only on LunaFortunately, we have FakeLunaTheme shimNote:  apps that work only with one theme probably violate accessibility lawsYou WILL go to jail!Push back if developer or vendor insists on “Windows Classic” Theme
How Good are the Tools to Find Problems?tools
Things I Heard on the Internet About:Application Compatibility ToolkitIt’s all you need for app compat!It must be!  Look at the name!If ACT hasn’t found all of your issues, you just haven’t run it long enoughWe compete directly with the static analysis tools venders, and it’s critical that we WIN!Wrong!
Application Compatibility ToolkitGreat at inventorySome agent data can be useful…at the right timeStandard User Analyzer makes folks happy(LUA Buglight makes engineers happy)IE Compatibility Test Tool makes some AJAX devs happySetup Analysis Tool makes very few people happyCompatibility Administrator makes people with a lot of free time happy
Automated Analysis AssessmentACT InventoryRationalizeInitialBudgetRefine BudgetRefine BudgetstartApp Run Green?App Install Green?YesYesInstall Manual TestDetailed Automated AnalysisRuntimeManual TestUserManual TestNoNoRemediateReady to DeployendACT & App Compat Project Plan
Things I Heard on the Internet About:Static AnalysisFinds and fixes 95% of all problems with all software ever made by anyone anywhere!Humans are no longer a necessary part of the processStatic analysis is expensive and not worth the money – unless it does all of the aboveWrong!
Static Analysis – RealityThese tools average 90 – 95% at telling you if the app as a whole will workFalse “green” the primary accuracy issueWill not detect every issueMore impact on setup, less on runtimeComplementary to ACTACT does inventoryACT does runtime analysisACT does no better than chance at predicting application breakage for the app as a whole
Static Analysis – The UglyCan be hard to set up and configureSetup has to follow written instructions or it doesn’t workFailure of any other component typically results in the app crashing or just vanishingNever, ever use without experienced services accompanying the toolsNOT a substitute for knowledge/training!Ensure you tune so that “Red” actually means “broken” and not “could be better in an ideal world”
Static Analysis Value PropositionCan give you the data you need to start a project with a reasonable budgetCan save millions of dollars in install testing and a percentage reduction in runtime testingRun the numbers!
Automated Analysis AssessmentACT InventoryRationalizeInitialBudgetRefine BudgetRefine BudgetstartApp Run Green?App Install Green?YesYesInstall Manual TestDetailed Automated AnalysisRuntimeManual TestUserManual TestNoNoRemediateReady to DeployendStatic Analysis & App Compat Project Plan
How Good are the Tools to Fix Problemstools
Things I Heard on the Internet About:ShimsShims are scary and unpredictableShims reduce the security of the systemShims are unsupportedShims fix everythingShims are useful only in the hands of ShimFreaksSHIMS is an acronym for …?Software Happens to Implode – Magically Solve?See How I’ve Misdirected Sneakily? Wrong!
What Are Shims?Applied to specific appsConfigured with ACT toolsDeployable to enterpriseChanges what the app thinks it seesDoes not change what app is allowed to do
What Are Shims Good For?Great for many kinds of bugs:Bad Windows version checksWriting to HKCU at runtimeUnnecessary checks for “am I admin?”Writing to WRP-protected keys and filesWindows thinks your app is an installerSome file/registry redirections
Shims – The Rest of the StorySome considerations…Not all general purpose shims have the same … “customer love” applied in their creationThe tools are … “primitive”Shims management not integrated into other management tools (e.g. Group Policy)You can do a lot with just the Top 10 shimsBut to becoming a shim ninja takes time and much practice
Virtualizationthe V word
Things I Heard on the Internet About:Application VirtualizationIf you can’t fix it with shims, you can just use App-V and sequence it on XP!App-V fixes app-to-OS bugsYou can’t shim App-V applicationsWrong!
Application VirtualizationFormerly SoftGrid; now part of MDOPIsolates apps from one anotherDoes not isolate it from the OSSide effects (not really advertised):Apps can write anywhere in “the registry”Apps can be allowed to write to specific files in “protected” locationsApps actually write to private copiesNOTE: May not be true in future versions of App-VYes, you can shim sequenced apps
Application VirtualizationLots of goodness beyond app-compatLicensing, deploymentKey part of larger virtualization vision
Things I Heard on the Internets About:MED-VMigrate to Windows 7 todayPut all of your apps in MED-VNo need to worry about app compat!Wrong!
What is MED-V?Microsoft Enterprise Desktop VirtualizationMachine virtualization solutionApp actually runs on an XP OSUser sees only the app windowCentrally managedPart of MDOPCompelling IE6 app compat storySeamless redirection of the browser
MED-VMicrosoft Enterprise Desktop VirtualizationPlease, use it as a backstop, not as the plan of record…Requires an exit strategyHow and when to lose XP dependencyOnce a VM is deployed, it needs to be managed like any physical machineMakes a great “if all else fails” strategyv1 SP1 coming soon; v2 dates not set yetNeither v1 nor v2 requires Hardware Assisted Virtualization (HAV)MED-V v2 TAP starting soon! Email medvtap@microsoft.com if you are interested in participating!
Things I Heard on the Internet About:XP ModeIf the app fails, just run it in XP Mode!XP Mode fixes everything!As long as you maintain your Windows 7 host, XP Mode requires no maintenance or anti-malware.XP Mode will be supported as long as Windows 7.XP Mode is as safe as Windows 7.People don’t notice when their XP Mode My Documents is different than their Windows 7 My Documents!XP Mode is a silver bullet!  It’s magic!Wrong!
Things I Heard on the Internet About:How To Use XP ModeWrong!
What is Windows XP Mode?Windows XP SP3 virtual machineIt is not a “mode” within Windows 7Similar to MED-V, without manageabilityLicense included with certain Windows 7 SKUsDesigned only for Small Business marketInstall apps in the XP VM; shortcuts in the All Users’ Start Menu get copied to the hostClick on shortcut in host Start menu, app appears in a window…eventually
Windows XP Mode – the GoodApp designed for XP actually runs on XPWindows 7 deployment not held hostage by one app that resists other compat solutionsWhat it’s good for:Web apps that require IE6Running 16-bit apps on x64Some types of desktop appsMicrosoft Agent
Windows XP ModeThe rest of the storyYou must have an explicit exit strategyXP is out of mainstream supportExtended support ends in 2014Resource requirementsNeed RAM, CPU to support guest VMOut of the box, requires HAV (hotfix available to support non-HAV)Management requirementsIt is a separate computerAV, patches, policies, domain not inherited from hostVM is hibernated when not running an app
Windows XP ModeMore of that storyApps can’t interact with host desktop appsE.g., app wants to send emailDoes not have MED-V’s IE6 redirectionDefault XP Mode user is adminMight conflict with enterprise policies
Things I Heard on the Internet About:Changing SecurityRunning as standard user on XP? You’re probably modifying ACLs. There’s nothing wrong with doing that foreverSecurity settings that break stuff can’t be turned offIf I have given the Users group SeBackup, SeRestore, and SeLoadDriver, oh, and write access to Program Files, it’s OK, because they’re standard usersWrong!
Changing SecurityOnly if other options don’t workLoosen file or registry permissionsAllow interactive user to start/stop a particular service or driverDisable an IE security feature (e.g. DEP)Must be done surgicallyLeast amount of additional privilege on the smallest number of objects
Changing SecurityBenefits:Results often more predictable than with shimsDrawbacks:Risk of elevation of privilegeRisk of system instabilityRequires threat modeling – hard to do right
Changing SecurityHow some did “standard user” on XP…ACL loosening scriptsMost “required fixes” are now automaticInstalling apps to writable foldersExposes EoP and infection risksGranting admin-equivalent rights(What could possibly go wrong?) We can help
App doesn’t work – now what?What are those geeks doing?Make sure they don’t debug what they don’t plan to fix (support required)Layer debugging and remediationTier 1: get the repro, run scripted tests of common solutionsTier 2: leverage tools, configure basic fixesTier 3: deep debugging, complex remediation (typically just a few per customer)Important: efficient handoff between IT Pros and Developers
Who Is There to Help Me?
What can you do?Turn UAC back onNo, really, turn UAC back onSTOP building Microsoft Agent applications!!!Come on, you just turned UAC back off – I saw that!
What can you do?Don’t seek silver bulletsMake sure you’re not writing apps today which will become incompatibleStart thinking about the problem todayGet your developers running your future platform early
Additional ResourcesApplication compatibility portal: http://technet.com/appcompatFind whether apps/hardware are compatible:http://www.microsoft.com/windows/compatibility

More Related Content

PPTX
Improving developer tester collaboration with microsoft visual studio 2010
PDF
Justin Ison
PDF
Jeremias Rößler
PDF
Digital transformation testing.
PDF
New Era of Software with modern Application Security v1.0
PDF
Native is easy. Web is essential.
PPTX
Troubleshooting Android
PPTX
Colorful world-of-visual-automation-testing-latest
Improving developer tester collaboration with microsoft visual studio 2010
Justin Ison
Jeremias Rößler
Digital transformation testing.
New Era of Software with modern Application Security v1.0
Native is easy. Web is essential.
Troubleshooting Android
Colorful world-of-visual-automation-testing-latest

What's hot (20)

PPT
Bug best practice
PPTX
ATDD And BDD The Great Beat Down…or…Debate
PDF
Mobile App Testing by Mark Wilson
PDF
The Testing Planet Issue 4
PDF
Coding With JRebel - Java Forever Changed
PDF
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
PDF
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
PDF
Measuring Web Performance (HighEdWeb FL Edition)
PPTX
DeKnowledge - Try us
PPTX
Whats New In Windows 7 And What To Expect
PDF
Ilari henrik
DOC
Mobile App Testing Checklist
PDF
DevOps in Practice: When does "Practice" Become "Doing"?
PPTX
Common Sense Software Development
PDF
Selenium - The Way Of Success
PPTX
Fundamental Principles of Software Development
PPTX
Achieve scalability, velocity and quality in mobile app testing
PDF
Integrate Your Test Automation Tools for More Power
PDF
Website qa
PDF
DevOps Note 20120224
Bug best practice
ATDD And BDD The Great Beat Down…or…Debate
Mobile App Testing by Mark Wilson
The Testing Planet Issue 4
Coding With JRebel - Java Forever Changed
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocks
Top Java IDE keyboard shortcuts for Eclipse, IntelliJIDEA, NetBeans (report p...
Measuring Web Performance (HighEdWeb FL Edition)
DeKnowledge - Try us
Whats New In Windows 7 And What To Expect
Ilari henrik
Mobile App Testing Checklist
DevOps in Practice: When does "Practice" Become "Doing"?
Common Sense Software Development
Selenium - The Way Of Success
Fundamental Principles of Software Development
Achieve scalability, velocity and quality in mobile app testing
Integrate Your Test Automation Tools for More Power
Website qa
DevOps Note 20120224
Ad

Viewers also liked (15)

XLSX
тайлан жил
PDF
Quoi de neuf dans Project ?
PPTX
Ecosystème Lync : le Big Bang
PPTX
Quoi de neuf dans Visio ?
DOCX
Mon journal de bord pour atteindre mes rêves
PPTX
IT Camp Opening - Los Angeles
PDF
Bg child soldiers_fr (1)
PPTX
Get ready for tomorrow, today!
PPS
La famille
PPTX
FI-B328 How to Build a Microsoft Private Cloud Lab in 1,000 Tiny Steps
DOCX
Mon journal de bord pour atteindre mes rêves
PPTX
IT Camp - Vision Solutions Presentation
PPTX
Smart chat externe janv2013_v1.3
PPTX
Lync + Skype + CRM = Centre de Contact UC avec témoignage client
PPTX
Startups: Agilité entrepreneuriale: comment monter sa boîte?
тайлан жил
Quoi de neuf dans Project ?
Ecosystème Lync : le Big Bang
Quoi de neuf dans Visio ?
Mon journal de bord pour atteindre mes rêves
IT Camp Opening - Los Angeles
Bg child soldiers_fr (1)
Get ready for tomorrow, today!
La famille
FI-B328 How to Build a Microsoft Private Cloud Lab in 1,000 Tiny Steps
Mon journal de bord pour atteindre mes rêves
IT Camp - Vision Solutions Presentation
Smart chat externe janv2013_v1.3
Lync + Skype + CRM = Centre de Contact UC avec témoignage client
Startups: Agilité entrepreneuriale: comment monter sa boîte?
Ad

Similar to Application compatibility final (20)

PPTX
Overcoming the application compatibility hurdle in windows 7
PPTX
Windows 7 – Application Compatibility Toolkit 5.5 Overview
PPTX
3 App Compat Win7
PPTX
Everything You Ever Wanted To Know About Application Compatibility
PPT
IT109 Microsoft Windows 7 Operating Systems Unit 06 lesson 07
PPT
Microsoft loves PHP. Seriously.
PPT
TechMentor Fall, 2011 - How to Resolve (Nearly) Every Windows 7 Application I...
PPTX
Managing Application Compatibility In Windows 7
PPT
User Driven Software Architecture
PDF
PPT
New in the Visual Studio 2012 IDE
PDF
BSides Iowa 2018: Windows COM: Red vs Blue
PDF
3852 ebook windows7
PDF
3852 Ebook Library 4 Windows7
DOCX
Window Desktop Application Testing
PPTX
Wcl310 Raiders of the Elevated Token
PDF
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
KEY
Getting Started with .NET
PPT
Internet & Computing Essentials (2009)
Overcoming the application compatibility hurdle in windows 7
Windows 7 – Application Compatibility Toolkit 5.5 Overview
3 App Compat Win7
Everything You Ever Wanted To Know About Application Compatibility
IT109 Microsoft Windows 7 Operating Systems Unit 06 lesson 07
Microsoft loves PHP. Seriously.
TechMentor Fall, 2011 - How to Resolve (Nearly) Every Windows 7 Application I...
Managing Application Compatibility In Windows 7
User Driven Software Architecture
New in the Visual Studio 2012 IDE
BSides Iowa 2018: Windows COM: Red vs Blue
3852 ebook windows7
3852 Ebook Library 4 Windows7
Window Desktop Application Testing
Wcl310 Raiders of the Elevated Token
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Getting Started with .NET
Internet & Computing Essentials (2009)

More from Harold Wong (20)

PPTX
System Center 2012 SP1 Overview and Window Azure IaaS
PPTX
Upgrading from Windows Server 2008 / 2008 R2 to Windows Server 2012
PPTX
Windows 8 Deployment
PPTX
FY13 Q2 IT Camp - Windows 8 Overview
PPTX
TechMentor 2012: Deploying Windows Server 2012 Server Core
PPTX
TechMentor 2012: What's new in Windows Server 2012 and Hyper-V
PPTX
Windows Server 2012 Beta Storage Overview
PPTX
IT Camp Windows Server 2012 Beta Hyper-V Overview
PPTX
It camp veeam presentation (no videos)
PPTX
Cloud Intelligence - Get Your Head Out of the Clouds
PPTX
Cloud Intelligence - Build a Private Cloud in a 1,000 Easy Steps
PPTX
IT Camp Opening - Phoenix / Tempe
PPTX
IT Camp - Server Migration Overview
PPTX
Private cloud forefront identity manager 2010 (adam bresson)
PPTX
Private cloud 201 how to build a private cloud
PPTX
Lync 2010 Conferencing Deep Dive
PPTX
Lync 2010 Voice Deployment
PPTX
Lync 2010 High Availability
PPTX
Lync 2010 deep dive edge
PPTX
TechNet Event: August 2011 Private Cloud
System Center 2012 SP1 Overview and Window Azure IaaS
Upgrading from Windows Server 2008 / 2008 R2 to Windows Server 2012
Windows 8 Deployment
FY13 Q2 IT Camp - Windows 8 Overview
TechMentor 2012: Deploying Windows Server 2012 Server Core
TechMentor 2012: What's new in Windows Server 2012 and Hyper-V
Windows Server 2012 Beta Storage Overview
IT Camp Windows Server 2012 Beta Hyper-V Overview
It camp veeam presentation (no videos)
Cloud Intelligence - Get Your Head Out of the Clouds
Cloud Intelligence - Build a Private Cloud in a 1,000 Easy Steps
IT Camp Opening - Phoenix / Tempe
IT Camp - Server Migration Overview
Private cloud forefront identity manager 2010 (adam bresson)
Private cloud 201 how to build a private cloud
Lync 2010 Conferencing Deep Dive
Lync 2010 Voice Deployment
Lync 2010 High Availability
Lync 2010 deep dive edge
TechNet Event: August 2011 Private Cloud

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Encapsulation theory and applications.pdf
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Empathic Computing: Creating Shared Understanding
20250228 LYD VKU AI Blended-Learning.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
A comparative analysis of optical character recognition models for extracting...
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
sap open course for s4hana steps from ECC to s4
Spectral efficient network and resource selection model in 5G networks
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Encapsulation_ Review paper, used for researhc scholars
Encapsulation theory and applications.pdf
Programs and apps: productivity, graphics, security and other tools
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Unlocking AI with Model Context Protocol (MCP)
Empathic Computing: Creating Shared Understanding

Application compatibility final

  • 1. Everything You Want to Know About Application Compatibility But Were Afraid to AskHarold Wongblogs.technet.com/haroldwong
  • 2. How much is this app compat thing going to cost me?Why did you break half of my software?All I need to do is run ACT long enough, and it’s fixed, right?Can I just stroke a check and have this problem go away?Should I just stay on Windows XP?The Internets said to just turn off UAC.Doesn’t App-V just fix it all for me?The MED-V brochure said just virtualize it all and migrate.The tool brochure said it fixes 90% of the problems.Why can’t my company afford a chair for me?No, seriously, can I have a chair, please?Listen, I’m not talking about App Compat until I get a chair.
  • 3. App-VBeyond TrustACT 5.5Win XP ModeACF PartnersMED-VAppDNAChangeBaseShimsDisable UACThere Are No Silver Bullets
  • 4. Session Objectives and TakeawaysSession Objectives:Understand that app compat isn’t easyUnderstand that app compat is not impossibleKey Takeaway:Chris’ home number is a 900 number. Check the bathroom wall for details.
  • 5. Things I Heard on the Internets About…We’re going to be speaking mainly the truth today…but we’ll also be confronting some mistruths along the wayMistruths and misconceptions will be identified with the heading“Things I Heard on the Internet About:…”For those who are not familiar with The Internets, it’s a series of tubes 
  • 6. Why Is App-Compat Hard?It never used to be this hard!Backward-compatibility used to winShell Foldersp:\\products\publicCON, PRN, NULStarting with XP SP2, not anymoreCustomers demanded better securityVista was the first major desktop OS release after TWC memoStarting with Windows 7, we’re winning again…
  • 7. How Do I Run an App-Compat Project?Planning, Planning, Planning!!!
  • 8. Automated Analysis AssessmentACT InventoryRationalizeInitialBudgetRefine BudgetRefine BudgetstartApp Run Green?App Install Green?YesYesInstall Manual TestDetailed Automated AnalysisRuntimeManual TestUserManual TestNoNoRemediateReady to DeployendApp Compat Project Plan
  • 9. Planning an App Compat ProjectTechNet MagazineJune 2009Articles by:Chris Jackson and Chris Coriohttp://technet.microsoft.com/en-us/magazine/dd799202.aspx
  • 10. What Breaks in Windows 7?features
  • 11. Some things that had to changeMicrosoft Agent had to goProductivity killerUsers hypnotized by agents’ anticsMore popular than YouTubeMade computers too easy to useKilled market for instructional videosThe single biggest app-compat hit, ever
  • 12. Nobody uses the Agent control!Do they?Actual screenshot from a real customer engagement.No consultants were (seriously) harmed in the capture of this screenshot.
  • 13. Some things that had to changeEveryone runs as “standard user”The infamous User Account ControlEven admins run as “standard user”The single biggest app-compat hit, ever
  • 14. Things I Heard on the Internet About: User Account ControlUAC is…Windows asking me “Are you sure?”… over and over and over againA useless pain in the @$$Stupid, and smart people disable itEspecially smart developersUAC breaks everythingIt’s OK to say, “We recommend turning off UAC to run this software.”Wrong!
  • 15. The Truth About UACThe first step toward Standard UserRequired to improve security and TCOSuite of technologies to fix stuff, not break itRunning as standard user breaks stuffThat’s why no one did it before UAC!Admin-Approval Mode enables legit admins to run as standard userAnd then perform admin actions using the same accountYour end users shouldn’t be admins to begin withAnd can’t approve elevation promptsDisabling UAC turns off IE Protected Mode
  • 16. We break – we fixUAC’s file and registry “virtualization”Redirects access attempts from protected areas to non-roaming parts of user profileNot related to App-V’s “bubble”This is per-user, not per-application
  • 17. Virtual memoryVirtual address spaceVirtual communitiesNT Virtual DOS Machine (NTVDM)Java Virtual Machine (JVM)MS Visual Basic Virtual Machine (MSVBVM)Virtual processors (hyperthreading)Virtual realityVirtual teamsVirtual private network (VPN)UAC file and registry virtualizationApplication virtualizationMachine virtualization (Virtual PC, Virtual Server, Hyper-V)Virtual EarthMS Enterprise Desktop Virtualization (MED-V)Virtual petsVirtual Desktop Infrastructure (VDI)virtual keyword (C++, C#)Virtual directory (IIS)Virtual device driver (VxD – obsolete!)Virtual overloadIt’s the new “.NET”!
  • 18. We break – we fixUAC’s file and registry “virtualization”Redirects access attempts from protected areas to non-roaming parts of user profileTransparent to the appFixes many permissions-related issuesDoes not apply to all apps or all file typesNew in Win7: Writing to root of C:\ redirects
  • 19. Things I Heard on the Internet about:Internet Explorer 8 Standards ComplianceIE8 breaks the web and makes little girls cryIf your site works on IE6, but breaks on IE8, the fix is easy – use Firefox!Wrong!
  • 20. Some things that had to changeInternet Explorer 8 Standards ComplianceMeets customer demand, good for the webApp compat > 80%Compatibility View is extremely helpfulOn by default for IntranetQuirks mode also helpful, but no admin UI!Many tools available for troubleshootingFixes either super easy or require devsHardest problem: server apps for IE6 onlyE.g., Oracle, SAP MED-V a great solution
  • 21. Things I Heard on the Internet About:Internet Explorer Protected ModeAlmost like running a secure browser!Like Safari!More Microsoft security theaterBreaks all my JavaBreaks all my ActiveX controlsWrong!
  • 22. Some things that had to changeInternet Explorer Protected ModeIEPM has protected you from exploits…if you left UAC enabledWith IE8, off by default for Intranet zoneMay need to configure to recognize IntranetExternal sites can be added to Trusted SitesE.g., sites that require JavaOther products like the idea!Google ChromeOffice 2010
  • 23. Things I Heard on the Internet About:Windows version number changedNo earthly reason for doing that!Couldn’t possibly cause any problems!Windows 7 is version 7.0, right?No, Windows 7 is version 6.1 because it’s just a minor upgrade, and therefore probably should be free so go ahead and steal itWrong!
  • 24. Some things that just changedWindows version number changedThe most common bugs we findMaking it 6.1 keeps more apps working!“Version lie” shims are easy to applyAnd now easier to lie to MSIsStill don’t think it can be that common?
  • 25. Check the Windows version!// This program requires WinXP or newer.// Windows XP is version 5.1// This is easy!If Not (vMajor >= 5 AND vMinor >= 1) Then{DisplayMessage(“This program requires Windows XP or newer”);LayDownAndDie;}Win7 as Windows 7.0?vMajor: 7 >= 5vMinor: 0 >= 1? Crap!Vista is Windows 6.0:vMajor: 6 >= 5vMinor: 0 >= 1? Oops!Win7 as Windows 6.1?vMajor: 6 >= 5vMinor: 1 >= 1! It works!
  • 26. More things that just changedFolder locationsWe moved the profiles – again!Myth: We did this for no good reasonTruth: There was probably a good reasonAnd we changed where files need to go!Myth: No guidance about where to put stuffTruth: Well, yeah, but we’re fixing thatMyth: Everything breaks, apps actually cryTruth 1: Correctly-written apps still workTruth 2: Junctions fix many bad apps
  • 27. Directory JunctionsSome support for old folder namesCan traverse, but cannot listCan directly access files through old namesCannot list contents of these junctions
  • 28. Where Should I Store Files?
  • 29. More things that just changedDefault color schemeQuestion:What happens when a VB6 dev “modernizes” the dialog background using the first white color he/she finds (Active Title Bar Text)?
  • 30. More things that just changedDefault color schemeOccasional mistake by VB6 devsEasy to fix (if you have the source).NET WinForms made themes easy to useOops: everyone tested only on LunaFortunately, we have FakeLunaTheme shimNote: apps that work only with one theme probably violate accessibility lawsYou WILL go to jail!Push back if developer or vendor insists on “Windows Classic” Theme
  • 31. How Good are the Tools to Find Problems?tools
  • 32. Things I Heard on the Internet About:Application Compatibility ToolkitIt’s all you need for app compat!It must be! Look at the name!If ACT hasn’t found all of your issues, you just haven’t run it long enoughWe compete directly with the static analysis tools venders, and it’s critical that we WIN!Wrong!
  • 33. Application Compatibility ToolkitGreat at inventorySome agent data can be useful…at the right timeStandard User Analyzer makes folks happy(LUA Buglight makes engineers happy)IE Compatibility Test Tool makes some AJAX devs happySetup Analysis Tool makes very few people happyCompatibility Administrator makes people with a lot of free time happy
  • 34. Automated Analysis AssessmentACT InventoryRationalizeInitialBudgetRefine BudgetRefine BudgetstartApp Run Green?App Install Green?YesYesInstall Manual TestDetailed Automated AnalysisRuntimeManual TestUserManual TestNoNoRemediateReady to DeployendACT & App Compat Project Plan
  • 35. Things I Heard on the Internet About:Static AnalysisFinds and fixes 95% of all problems with all software ever made by anyone anywhere!Humans are no longer a necessary part of the processStatic analysis is expensive and not worth the money – unless it does all of the aboveWrong!
  • 36. Static Analysis – RealityThese tools average 90 – 95% at telling you if the app as a whole will workFalse “green” the primary accuracy issueWill not detect every issueMore impact on setup, less on runtimeComplementary to ACTACT does inventoryACT does runtime analysisACT does no better than chance at predicting application breakage for the app as a whole
  • 37. Static Analysis – The UglyCan be hard to set up and configureSetup has to follow written instructions or it doesn’t workFailure of any other component typically results in the app crashing or just vanishingNever, ever use without experienced services accompanying the toolsNOT a substitute for knowledge/training!Ensure you tune so that “Red” actually means “broken” and not “could be better in an ideal world”
  • 38. Static Analysis Value PropositionCan give you the data you need to start a project with a reasonable budgetCan save millions of dollars in install testing and a percentage reduction in runtime testingRun the numbers!
  • 39. Automated Analysis AssessmentACT InventoryRationalizeInitialBudgetRefine BudgetRefine BudgetstartApp Run Green?App Install Green?YesYesInstall Manual TestDetailed Automated AnalysisRuntimeManual TestUserManual TestNoNoRemediateReady to DeployendStatic Analysis & App Compat Project Plan
  • 40. How Good are the Tools to Fix Problemstools
  • 41. Things I Heard on the Internet About:ShimsShims are scary and unpredictableShims reduce the security of the systemShims are unsupportedShims fix everythingShims are useful only in the hands of ShimFreaksSHIMS is an acronym for …?Software Happens to Implode – Magically Solve?See How I’ve Misdirected Sneakily? Wrong!
  • 42. What Are Shims?Applied to specific appsConfigured with ACT toolsDeployable to enterpriseChanges what the app thinks it seesDoes not change what app is allowed to do
  • 43. What Are Shims Good For?Great for many kinds of bugs:Bad Windows version checksWriting to HKCU at runtimeUnnecessary checks for “am I admin?”Writing to WRP-protected keys and filesWindows thinks your app is an installerSome file/registry redirections
  • 44. Shims – The Rest of the StorySome considerations…Not all general purpose shims have the same … “customer love” applied in their creationThe tools are … “primitive”Shims management not integrated into other management tools (e.g. Group Policy)You can do a lot with just the Top 10 shimsBut to becoming a shim ninja takes time and much practice
  • 46. Things I Heard on the Internet About:Application VirtualizationIf you can’t fix it with shims, you can just use App-V and sequence it on XP!App-V fixes app-to-OS bugsYou can’t shim App-V applicationsWrong!
  • 47. Application VirtualizationFormerly SoftGrid; now part of MDOPIsolates apps from one anotherDoes not isolate it from the OSSide effects (not really advertised):Apps can write anywhere in “the registry”Apps can be allowed to write to specific files in “protected” locationsApps actually write to private copiesNOTE: May not be true in future versions of App-VYes, you can shim sequenced apps
  • 48. Application VirtualizationLots of goodness beyond app-compatLicensing, deploymentKey part of larger virtualization vision
  • 49. Things I Heard on the Internets About:MED-VMigrate to Windows 7 todayPut all of your apps in MED-VNo need to worry about app compat!Wrong!
  • 50. What is MED-V?Microsoft Enterprise Desktop VirtualizationMachine virtualization solutionApp actually runs on an XP OSUser sees only the app windowCentrally managedPart of MDOPCompelling IE6 app compat storySeamless redirection of the browser
  • 51. MED-VMicrosoft Enterprise Desktop VirtualizationPlease, use it as a backstop, not as the plan of record…Requires an exit strategyHow and when to lose XP dependencyOnce a VM is deployed, it needs to be managed like any physical machineMakes a great “if all else fails” strategyv1 SP1 coming soon; v2 dates not set yetNeither v1 nor v2 requires Hardware Assisted Virtualization (HAV)MED-V v2 TAP starting soon! Email medvtap@microsoft.com if you are interested in participating!
  • 52. Things I Heard on the Internet About:XP ModeIf the app fails, just run it in XP Mode!XP Mode fixes everything!As long as you maintain your Windows 7 host, XP Mode requires no maintenance or anti-malware.XP Mode will be supported as long as Windows 7.XP Mode is as safe as Windows 7.People don’t notice when their XP Mode My Documents is different than their Windows 7 My Documents!XP Mode is a silver bullet! It’s magic!Wrong!
  • 53. Things I Heard on the Internet About:How To Use XP ModeWrong!
  • 54. What is Windows XP Mode?Windows XP SP3 virtual machineIt is not a “mode” within Windows 7Similar to MED-V, without manageabilityLicense included with certain Windows 7 SKUsDesigned only for Small Business marketInstall apps in the XP VM; shortcuts in the All Users’ Start Menu get copied to the hostClick on shortcut in host Start menu, app appears in a window…eventually
  • 55. Windows XP Mode – the GoodApp designed for XP actually runs on XPWindows 7 deployment not held hostage by one app that resists other compat solutionsWhat it’s good for:Web apps that require IE6Running 16-bit apps on x64Some types of desktop appsMicrosoft Agent
  • 56. Windows XP ModeThe rest of the storyYou must have an explicit exit strategyXP is out of mainstream supportExtended support ends in 2014Resource requirementsNeed RAM, CPU to support guest VMOut of the box, requires HAV (hotfix available to support non-HAV)Management requirementsIt is a separate computerAV, patches, policies, domain not inherited from hostVM is hibernated when not running an app
  • 57. Windows XP ModeMore of that storyApps can’t interact with host desktop appsE.g., app wants to send emailDoes not have MED-V’s IE6 redirectionDefault XP Mode user is adminMight conflict with enterprise policies
  • 58. Things I Heard on the Internet About:Changing SecurityRunning as standard user on XP? You’re probably modifying ACLs. There’s nothing wrong with doing that foreverSecurity settings that break stuff can’t be turned offIf I have given the Users group SeBackup, SeRestore, and SeLoadDriver, oh, and write access to Program Files, it’s OK, because they’re standard usersWrong!
  • 59. Changing SecurityOnly if other options don’t workLoosen file or registry permissionsAllow interactive user to start/stop a particular service or driverDisable an IE security feature (e.g. DEP)Must be done surgicallyLeast amount of additional privilege on the smallest number of objects
  • 60. Changing SecurityBenefits:Results often more predictable than with shimsDrawbacks:Risk of elevation of privilegeRisk of system instabilityRequires threat modeling – hard to do right
  • 61. Changing SecurityHow some did “standard user” on XP…ACL loosening scriptsMost “required fixes” are now automaticInstalling apps to writable foldersExposes EoP and infection risksGranting admin-equivalent rights(What could possibly go wrong?) We can help
  • 62. App doesn’t work – now what?What are those geeks doing?Make sure they don’t debug what they don’t plan to fix (support required)Layer debugging and remediationTier 1: get the repro, run scripted tests of common solutionsTier 2: leverage tools, configure basic fixesTier 3: deep debugging, complex remediation (typically just a few per customer)Important: efficient handoff between IT Pros and Developers
  • 63. Who Is There to Help Me?
  • 64. What can you do?Turn UAC back onNo, really, turn UAC back onSTOP building Microsoft Agent applications!!!Come on, you just turned UAC back off – I saw that!
  • 65. What can you do?Don’t seek silver bulletsMake sure you’re not writing apps today which will become incompatibleStart thinking about the problem todayGet your developers running your future platform early
  • 66. Additional ResourcesApplication compatibility portal: http://technet.com/appcompatFind whether apps/hardware are compatible:http://www.microsoft.com/windows/compatibility