{"id":14643,"date":"2010-03-11T07:00:00","date_gmt":"2010-03-11T07:00:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/oldnewthing\/2010\/03\/11\/application-compatibility-layers-are-there-for-the-customer-not-for-the-program\/"},"modified":"2022-08-10T09:21:23","modified_gmt":"2022-08-10T16:21:23","slug":"20100311-00","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/oldnewthing\/20100311-00\/?p=14643","title":{"rendered":"Application compatibility layers are there for the customer, not for the program"},"content":{"rendered":"<p>Some time ago, a customer asked this curious question (paraphrased, as always):<\/p>\n<blockquote class=\"q\"><p>Hi, we have a program that was originally designed for Windows\u00a0XP and Windows Server\u00a02003, but we found that it runs into difficulties on Windows\u00a0Vista. We&#8217;ve found that if we set the program into Windows\u00a0XP compatibility mode, then the program runs fine on Windows\u00a0Vista. What changes do we need to make to our installer so that when the user runs it on Windows\u00a0Vista, it automatically runs in Windows\u00a0XP compatibility mode?<\/p><\/blockquote>\n<p>Don&#8217;t touch that knob; the knob is there for the customer, not for the program. And it&#8217;s there to clean up after your mistakes, not to let you hide behind them.<\/p>\n<p>It&#8217;s like saying, &#8220;I normally toss my garbage on the sidewalk in front of the pet store, and every morning, when they open up, somebody sweeps up the garbage and tosses it into the trash. But the pet store isn&#8217;t open on Sundays, so on Sundays, the garbage just sits there. How can I get the pet store to open on Sundays, too?&#8221;<\/p>\n<p>The correct thing to do is to figure out what your program is doing wrong and fix it. You can use the Application Compatibility Toolkit to see all of the fixes that go into the Windows\u00a0XP compatibility layer, then apply them one at a time until you find the one that gets your program running again. For example, if you find that your program runs fine once you apply the VersionLie shim, then go and fix your program&#8217;s operating system version checks.<\/p>\n<p>But don&#8217;t keep throwing garbage on the street.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The customer is the victim, not the program.<\/p>\n","protected":false},"author":1069,"featured_media":111744,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[26],"class_list":["post-14643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oldnewthing","tag-other"],"acf":[],"blog_post_summary":"<p>The customer is the victim, not the program.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/14643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/users\/1069"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/comments?post=14643"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/posts\/14643\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media\/111744"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/media?parent=14643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/categories?post=14643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/oldnewthing\/wp-json\/wp\/v2\/tags?post=14643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}