Note to self: when working with older applications on Vista – or applications that keep trying to write settings to Program Files – remember to check \UserName\Documents\AppData\Local\VirtualStore for redirected INI files. Uninstalling and reinstalling the application will not clean out these files.
Long story short, I wanted to see what Clockz did on Vista, since it was originally written in 1997 for Windows 95. Not bad, really: it shows the time correctly, still docks like a proper AppBar, but the new width of borders in Aero causes some painting problems. And yes: because it was written ten years ago it uses an INI file that lives next to the EXE… which is now “off limits” to users. After seeing that the original INI file wasn’t changing, I went digging to see what was up:
When Vista sees an application trying to do this – that is, modify a config file where the EXE lives – it looks like they make a copy in a user-writable location and then uses that copy. Did the same thing for CuteFTP (from 1997) and CRT (from 1996), so it’s pretty aware of archaic software.
Pretty neat, actually, once ya know about it.
It would be far simpler if MS would quit playing “Father Knows Best” and simply let SW do what it’s designed to do.
You’re entitled to your opinion.
The problem, Merle Bowen, is that some software is designed to dig through your system files, replace them with trojaned phonies, find any personal data stored on the system, and send it to a server run by the Russian mafia.
In those cases, it’s not a great idea to “simply let SW do what it’s designed to do”.
well, this doesn’t really stop the mafia from doing that, does it? it’s just an inelegant fix to a problem that could be solved a number of different and better ways.
all it really does it make prevista software not work well or at all with vista, requiring the user to buy MS substitutes.
How about this – I tried to restore a database file to c:\program files\microsoft sql server from a WinRar archive and when it ended the file was not there!
After 2 tries I found it in the virtual store and was VERY ANGRY!
I then had to attach the database file to that location.
Sounds like you’re running a server product on a non-server OS – possibly an old version to boot. I’d be happy to find the workaround in general :)
“all it really does it make prevista software not work well or at all with vista, requiring the user to buy MS substitutes.” ~ bacree
No it is not for that reason, Microsoft is trying to increase security. Instead of stopping a program from saveing to a location it should not save to it is redirecting the save to somewhere else. Would you rather the software just crash because windows is just trying to keep you safe. You mentioned it was Microsoft Software I did not bother to verify this but im sure they corrected this on a new version, if infact it was ment to be runned on your OS. Or if not Windows Server 2008 might handle all this stuff differently. Secureing a Computer that a user uses everyday is different from one that is not typically used by a user.
But my main point is that Microsoft set up an OS and Software relationship that allows any third party to freely develop software for their systems. This means that there is no way that Microsoft can make sure that they are programming correctly or not. You expect them to provide a solutions to make a system fully compatable with older systems software. One this allows the bad practices to continue. Also it make us hold on to legacy ways of doing thing which can burden us. Like the Intel Architecture, there are many things in windows that were done that are not unacceptable or not used in this day in age, why keep them around when they hold us back from advancing.
Very useful once I noticed it.
Basicly rather than (as per XP) Giving a Permission Denied error writing to a read-only directory, it will create a virtual version, and (for your user only) replace it with the version in the virtual store.
Also useful for those legacy apps that don’t like the idea of multi-user… (savegames anyone?)
I would have to say that the behavior outlined above doesn’t quite make sense. There is a bit of father knows best going on here and unfortunately like most of what Vista has come to represent is that the implementation Microsoft used in this case is half baked and extremely user unfriendly and confusing.
I can understand the security issues listed in the comments. What doesn’t make sense is that one would never know what the heck is going on (unless you do a search for the ini file you’re editing and find that it’s in a hitherto unknown location) because Vista doesn’t give you any indication that it’s trying to be useful (or doing anything unexpected period).
I could argue that this security feature is not really needed but I won’t go there. The next question is why does Vista/MS feel like they can redirect behaviors of existing software when the whole point in the Windows line of OSs was to be as backwards compatible as possible?
i.e., poor implementation once again.
Microsoft has been telling developers NOT to store user preferences in with the EXE files for a good long time, probably a decade or more. User preferences should be stored per-user, in User storage areas. EXE’s should be installed and configured once by an admin, then be off limits to tampering. User preferences and configurations are not tampering, but there’s also no reason why they need to be stored with the EXE files.
That said, for specific purposes (e.g. running a simple program from a USB stick) I much prefer to be able to override the default location with one of my own, even if that means storing it next to the EXE.
I also agree with Emmett Keyser that Microsoft should do a better job of letting the user know that VirtualStore has been invoked. For many situations redirecting user settings to a virtualstore makes a lot of sense and is very convenient, but if an administrator tries to edit a global configuration file that rightly belongs in the protected “C:\Program Files” tree, it shouldn’t be so hard to do, or at least so hard to figure out why it is failing.
I have come across this issue today and whilst I appreciate the fact that the OS is trying to be secure and also appreciate that INI files stored next to the EXE’s is not exactly best practice – would it have killed Microsoft to have had some kind of user interaction – perhaps “to better secure your system the save location of these files is in your virtual store – to access click here… (link)”
My main gripe is that I’ve had to go on the hunt for a file that had been converted and was expecting to find it in the location that I dictated, in doing so found loads of other instances where this had happened without my knowledge.
In so many ways, control is taken away with no acknowledgment and no warning – come on MS, please understand that we’re not all novices and that WE own our systems. Personally, I’d like to think that father does NOT know best. I built my system, installed windows and administer the system – it’s mine. At the very least I want to be told if you’re taking over (for security reasons – or whatever)
Uh, why aren’t you complaining about the shitty application that has been storing it’s data to the *wrong* location for 5 years? Or that they don’t give you the option of where to store your files… you make it sound like the app allowed you to select a directory and Windows overrode it. No, instead the app has been throwing INI files in a location that Windows has said “don’t do that to” since Windows 2000… now that it’s actually enforced, it’s all Windows’ fault? Because the app isn’t working with the OS the way it’s supposed to be? On OSX, this would get you a crash and a reboot… I like what Vista does better.
Sorry, but your complaint should be directed to the company that wrote the application.
This messed me up this morning. Note that virtual store is not indexed by default, and further that there is no way to do a non-indexed search (that I am aware of). I don’t care if there is some non-indexed search somewhere deep in the meuns.
I had to resort to a command prompt.
I worked at MS, so I try to be an apologist, but screw it. Microsoft has lost its way very badly. That experience sucked so badly I will by a Mac for my next purchase. The security group and search group, you both suck, period.
Also: no secpol on home premium. Bwhaha.
Uh, you DO know that OSX has similar security restrictions *and* requires a password even if you are an Administrator, right?
Ran into this problem today as well when using a Java installer to install a program into C:\Program Files.
No warning and nothing in Program Files to be seen. Search didn’t find it either, at least not until I used “Search Everywhere” then “Advanced Search” then “Location Hard Drives,” Date Modified is today, and checked the box “Include non-indexed, hidden, and system files (might be slow)” [Actually what is slow is the fact that the search dialog tries to by dynamic and update the results with every input]. And there it was in VirtualStore–thanks Father.
Probably no coincidence that Java can’t even write files, when every other program has that annoying screen blanking and pop-up asking if I trust the program I just launched. Gotta agree with the statement about the security and search groups.
Yes, Randy, we should be complaining a bit to the programmers/distributors of the software that doesn’t comply with the operating system it’s writen for. But Microsoft could have made this new adventure a little easier on the casual pc user/novice/non-windows (mac/linux/etc.) coming to Windows. For instance, when I install Call of Duty 4 on my vista box and want to port my saved game data from my XP box, I have to go into this virtualstore location, remove the saved game data all together, make a new directory in the COD folder in the Program Files directory, and then paste all my save data from the XP box to this location. Then I have to set COD4 to run as admin in preferences. Now, I count myself well above the novice level. I may be no expert, but I know quite a bit. That said, just learning all this, searching online, asking friends, etc. took me hours and in the process, I see on countless forums where others have asked about this same COD4 issue that and in 9 out of 10 cases, they are still open/unresolved posts. Like exparisstevie said, a simple prompt would be nice. Maybe even reference it in the nice splash screens while the OS is being installed. ‘Hey, we’ve been warning you for ages, no here it is, “VirtualStore”, a literal pain-in-the-democrat.
It’s good that you don’t think of yourself as a notive, because you aren’t one! Novices simply don’t run PC games of this magnitude… I point back to a little game called Tribes 2 which took me (the guy that build the PC in the first place) over 5 hours via the phone with Sierra Online, only to find out that my PCI Graphics Aperture setting was too big at 64MB and should be 32 or less. PC Gaming is not for the faint of heart; that’s why most people play CoD4 on a 360 or PS3.
That said, it’s Infinity Ward that let that file go into the VirtualStore – that’s just Vista’s default location for a file when an app can’t put a file where it wants it. If IW put it in the correct location for Vista – instead of leaving it set to “write to a default location” – they wouldn’t have had this problem. Odds are, they tested and coded for XP, and only lightly tested on Vista, given the proliferation of XP on Gamers’ boxes. After all, Halo 2 for Vista and Shadowrun for Vista didn’t have this problem – all of their files went to the Documents directory, as they are supposed to.
As for the prompt, as nice as that is, I’m still so-so on that as a solution. Look at IE: they have always allowed users to select a download location – ends up with millions of customer support calls to Enterprise and retail helpdesks because they can’t find their files. Same thing is true of Office. Giving users choices when it comes to files is dangerous – this is why Windows 7 has a “federated library” idea… Documents at the highest most level gives you all of your documents in one location, rather than one folder.
JM2C, of course, but I think they did a pretty good job of it, as it is.
So I was using a program that i picked up offline somwhere to help in an extracting project, I’m extracting somthiung like 800 files to the same location, and each one is required for the end product to work correctly.
so I compile all 800 RAR files and extract them.
But they never showwed up at the point i told my program to put them.
I was confused at the fact no errors popped up letting me know that the extraction failed.
So i tried again, waited a few minuts as apposed to the hour or so it took the first time and yet again my destination folder was empty.
So i do a hard drive search for one of the files and find it in a folder named exactly like tohe one im extracting too, only in a “virtual store” folder instead of off my C drive.
I immdiatly go WTF and do a complete virus scan.
then Google Virtualstore
I really hate how microsoft surpirises you with there new retarded ways of keeping us safe from ourselves.
Well I think the idea is great and makes Vista much more flexible; of course it is a little harder to find files, but – for all those scenearios – it almost always requires a user with at least some moderate knowledge on the file system
Normal users don’t even know or care where the program’s (game for example) files are stored. It is not normal for them to be navigating C:\Program Files\Game; that requires some knowledge of the file system. besides, all you have to do is look on the bar and see the “compatibility files” button and click on it to be redirected to the appropiate virtualstore location
File and registry virtualization is great because it allows you tu run, as a limited user, previous administrator-only applications transparently and without hassle, in a secure environment. Old apps that wouldn’t run as a limited user because of access permissions will run, and you won’t need to give limited accounts writing permissions to secure locations like C:Windows in order to run those badly-engineered apps. Moreover, it can give different profiles to multiple accounts; whereas previously all data in that single folder would have to be shared between users, now each user can have his own data in his data folder
Installed programs (especially those shared between different users) should have their own settings stored in a per-user basis. This feature, in classic Microsoft-fashion lets you keep playing with your 10-year old apps in the new OS. Of course some programs won’t work, but someday you will have to leave those badly-engineered programs behind.
It would be far simpler if some programmers would quit playing “I Know Best” and simply code their programs to respect security and usability guidelines
The offending files get placed into the VirtualStore, but it is only semi-virtual. Shouldn’t Windows Explorer lay the virtual view over the actual view so the files appear to be where they were intended. The illusion is only partial, and it causes a lot of people to waste a lot of time trying to figure out what is going on.
I’m also for safety, security, and backward compatibility; but also for simplicity and transparency. At some point, backward compatibility leads to a house of cards. Perhaps we have passed that point.
ddcruver :”Would you rather the software just crash because windows is just trying to keep you safe.”
No, I would prefer that windows would stop trying to “keep me safe”. What kind of question is that? i have to choose between Vista being over-protective, or a software crash?
I’m a computer tech and i know how to secure my computer. The thing is, It’s nice with security measures and all, but Microsoft has a bad habit of implementing these “features” without telling you first. There is no clear option during the install for this “feature”.
Fuck security, i want freedom.
*snort*
Actually Microsoft has been telling SW developers to not store user settings etc in the installation location (program files) for a long time–since Win 95 or something like that. The idea driving this is that users can each configure a program the way they want on computers with more than one user. The virtual store merely represents a “folder of shame” for SW that has been unable to implement this standard. Also, because it is stored in the user’s profile, it allows user-specific SW configurations as desired.
This would be all well and good if MS also practiced what it preached. For example, Windows Live Messenger and Toolbar places files in the virtual store which sometimes wreaks havoc when you use those applications. In the case of IE, the toolbar will load a button (such as the Live Translator) in a different security context since it’s in the virtual store. This sometimes cause IE to not exit completely causing problems with new instances of IE.
VirtualStore is a massive pain in the ass and quite unnecessary. Microsoft always has and always will market it’s products specifically for idiot users. That is their target demographic, the largest demographic in the world. It is utterly reprehensible for an operating system to prevent an administrator of said system from doing whatever they want, up to and including completely and utterly destroying the system. If I want to run software that writes files in the program directory I damn well will and damn Microsoft for telling me that they own my system and won’t allow it. Wake up people you bought the damn software it should do what YOU want instead of you doing what IT wants. To all those brainwashed masses out there you had better not read this, your OS wouldn’t like it and you wouldn’t want to make it mad would you? It might punish you by putting all your data into a VirtualStore folder ;P
Just installed Windows 7 (avoided Vista at all costs) but now I can’t save a cropped photograph to any folder on my machine! It saved it to the virtualstore (which I found by accident) and I can’t do anything with it. I tried saving it under different names and in different places but no luck. The amazing thing is, it did save two other cropped pictures to the hard drive. If anyone can work this one out then they deserve a gold star.
You might be able to turn off the use of Virtual-Store by turning off UAC
Pat
Microsoft is just a bunch of CRAP! How does it make ANYTHING any more secure to hide a programs output off in a hidden directory somewhere instead of letting the program put it where it expects it to be. If the program is going to read it from the hidden directory then if some malware comes along and screws with it, it’s still going to blow up the program.
All this crap does is make it confusing for the users. If you open a program and it writes some data somewhere and tell you where it is, then when you browse to that location, the file should be there, not in some blah blah blah virtualStore somewhere else.
What the hell happens when you install a program and setup a bunch of configruation settings and then unistall the program and reinstall it? You would expect that all the old settings would be gone…. NOT SO with sucking microsoft vista… Thell still be sitting there in the “Virtual Store” Where most users will never know to look for them.
I can’t imagine who in the hell would have EVER thought that was a good idea…. It SUCKS….Vista SUCKS… Microsoft SUCKS I’ll never spend another dime on a Microsoft OS. They should have stuck with work processors and spread sheets…. They were halfway good with that!
Oh, and I didn’t even mention that the sucky OS even places a broken shortcut to the file in the “Recent Files” folder.
Even Microsoft can’t make their own stuff work with this sucky scheme….
Yay!!! Pat is right…. You can turn off the use of Virtual-Store by turning off UAC. It also gets rid of all those ANNOYING verification messages every time you try to do anything.
Gold Star to Pat!!!
Ha. For all that you wrote it would have taken less time to have gotten an upgrade to Windows 7.
And how about you blame the software engineers that are writing to unsafe locations? I love how you can unilaterally say what is right and wrong here, four years after the OS ships, and ignoring the fact that ISVs caused this problem. For you to even ask “why does it have to be put there” you don’t know jack didly shit about security, Windows, or programming as a whole. If the ISV’s wrote their files to the right location – rather than Program Files – this wouldn’t have been a problem in the first place.
Randy, Windows 7 does not make everybody happy with VirtualStore, either. I am not talking about software developers and where they cause .INI fils to be written.
I have just tried to scan a document from within IrfanView application and save it to the room of my C: drive. Please do not ask me why I wanted to do it this way. I know quite a lot about security, I do care about security, and if I try to do something in a certain way, I do it for certain reasons. Now I am told that the pnly way to be able to write to the root of my system drive is to turn off UAC. I find it definitely unacceptable. It should at least be possible to fine-tune it.
Here’s a better question: why would you find it acceptable that whoever wrote IrfanView made such a crappy product in the first place? They wrote an application that does not conform to the standards of the platform that they are targetting… this is all on them. I’m sorry, but the changes that we’re talking about to Windows started with Windows 95 as “hey, you should really do this because it’s more secure!” – not Microsoft’s fault that 12 years the old and foolish are busted… the fact that the app doesn’t run with UAC turned on tells you that the app itself is a risk and not coded with modern standards.
Be pissed at IrfanView. As an example, if you don’t follow Apple’s guidelines for writing for the iPhone, they reject the app and the end user doesn’t even get to use it. At all. Ever.
You should be glad that Microsoft allows this. FWIW, you likely could set the EXE to Run As Administrator, if you want to run and it will get by.
This same crap happens in Server 2008. Where do my 3rd party server apps save their configs? Anyone, anyone? Bueller, Bueller?
Hey Randy, how about you stop being such an arrogant jerk? It appears that the majority have spoken and most DO NOT like this stupid VirtualStore crap. In fact, I run my system in Administrator mode and I’ve turned off UAC because I’m not some computer noob that needs his hands held, and in the end this is MY machine, I own it and I’ll be damned if some OS is going to dictate how I can use it.
As you’ve said earlier in the thread “You’re entitled to your opinion”. Well the same can be said of you. I found this page through a web search, so I don’t even know who you are and who you work for, but you sound like a shill for whatever moron came up with this shit (wouldn’t be surprised if it was you). Rather than mock the people who have posted on your page, how about opening up your mind and seeing that this is obviously not a perfect system and that there are problems with it?
Even though I no longer have to deal with all my files winding up in the VirtualStore (although the reason I turned off UAC was for other reasons), it seems no one can come to a consensus on just WHERE user data should be stored (not even MS). Anytime I have to look for data, it becomes a nightmare. You have AppData, My Documents, Saved Games, Program Data, etc. And indeed, if saved games should be stored in My Documents, why did MS feel the need to create a Saved Games folder? And why is it no game I’ve played to date even uses that folder? Why can’t anyone come to grips with where they want to store their data? Play any EA game and you’ll be searching through Saved Games, My Documents, Program Files/Electronic Arts, Program Files/EA, Program Files/EA Games…it’s damn ridiculous.
I agree that the burden lies primarily with the companies themselves, but MS should shoulder some of it for coming up with a more convoluted directory tree with each and every OS release. Also some consistency would be nice: companies should pick a damn directory to use under Program Files and stick with it. I think My Documents should be reserved for documents only (I’m tired of every program I install cluttering up this directory with garbage), Saved Games and App Data should be eliminated, and a directory should be made called User Data that stores all this stuff (and don’t make it hidden like AppData either). And to get the companies in line, do away with VirtualStore and forbid saving in the same folder as the program with no redirection, just let it error. If a product ships with this glaring problem, then the fault lies with the developer and their laziness will be on full display with their customers who should and probably will rightfully chew them out and demand a fix. These companies will change their ways overnight…they’ll have to. Oh, and don’t let them save data anywhere but my proposed User Data folder beyond the inital installation and any updates that are performed…no more writing data all over the place wherever they feel like. That’s how I’d do it, anyway.
Well, that’s my rant. Of course, you’re going to tear it down because it doesn’t fall in line with your views. Peace.
Let me first say that I’ve only ever had to remove two posts from this blog in 10 years and neither comment had anything to do with me, but were harmful to other people.
Aside from that, lets recap: you found my site via a search engine, you read one post, and your response is to rant on my comments on my own blog, that expresses my own opinion. That’s fine. But the post in question is over 4 years old and is obviously adding value for some point. I mean the whole point of the post is to help developers fix their own codebase and work *correctly* on the OS they claim to support. If you don’t follow the style guide for iOS, they block you from the App Store, so it’s obvious that it’s on the developer to follow the freakin’ rules. Just because Windows doesn’t have a required certification process it a) doesn’t absolve developers from knowing the OS you support and b) it doesn’t excuse crappy code. And that’s the real core of the post and the subsequent comments: people are writing shitty code and this is the direct result of that. The end users are having problems because of developers and they take responsibility for their code. *They* are the codebase that has the bug in this case, not Windows, and the end user suffers for it. They had years to plan for it. They chose to ignore it.
Your telling me that this is Windows (or UAC’s) fault is akin to someone complaining that Windows is at fault for an application that crashes because it requires a DOS based INT call and Windows hasn’t supported that for over a decade.
But based off your brilliant train of logic, I’m more shocked that I even took the time to write this much in reply. I mean, you have a choise and you can think that this is all Microsoft’s fault because your applications don’t work right… You’re just incorrect.
Non-conformance to MS’s coding standard means crappy code you say?
MS came out with VB, and was behind it 110%. I was duped to embrace VB with all my heart and soul, only to be told 3-4 years down the road that it’s a lost cause…
“Hungarian Notation IS the way to go”, chanted MS. “DON’T use Hungarian Notation” appeared in all MS coding standard handbooks a jiffy later, when .NET came out.
My Windows 7 is only 3 months old, and it’s already full of adwares! If my internet line stays idle for just a short while, like 3 minutes, it no longer functions. It’s dead, although the OS still says it’s “connected”. This never happened in XP.
To tell you the truth, if it were not for the upper management’s decision, I never want Windows 7. I would prefer XP over it anytime, although XP is still fraught with bugs. What I’m trying to say here is, my migrating to Windows 7, is not out of my own volition. That could be true to many others as well. If you complain to your manager, he’s gonna say “We will not revert our decision, you go fix it instead.”
Some software is written for several platforms, like Redhat, Solaris, and even Windows. I am definitely not an advanced programmer, but neither am I a novice, and in my opinion, having the configuration files residing in the same folder as the EXE is the easiest / cleanest way to go. We don’t need to support multi-user environment. To me, it’s just a gimmick, and it’s uncalled-for in most situations. I fully agree with “Me” regarding the My Documents feature.
MS has had a track record of going against its own words, the programming paradigm preached today can be history tomorrow. In my personal take, MS has to do this, in order to stay afloat. Just imagine if Windows 3.1 was so stable and extensible till today, where then would MS be? It’d no doubt have closed shop.
In short, it’s pointless to argue whether Virtual Store is the correct way to go. Its inclusion in Windows 7 is purely a business decision, nothing more. Just be prepared for something even fancier in Windows 8!
Just to sum it up, this is my take away from your comment:
– no technology is supposed to evolve or change over time. If it does, there’s no technological benefit from it – it’s only a business decision, something to trip you up (or de-dupe you) or “goes against its own word”.
– you installed a bunch of applications that contains adware and some how that’s not a problem of your own making.
First and foremost: if you’ve got adware from applications you decided to install, you’ll be better off taking the time you spent typing this out and using it to download an adware or anti-virus scanner. And in the future, scan your downloads before installing. Adware and trojen horses only ever work b/c someone downloaded them and decided to install them. Only you can help yourself in this especially since it’s a problem on every OS in the world.
I’ll also point out that technology is supposed to evolve. When Hungarian notion was created it was at a time when there were like 15 data types. Now there’s millions of data types (thanks to OOP) and it simply doesn’t make sense any more. Languages have evolved to a point where you don’t have to code things in octal or with nothing but pointers. SmartPointers, reflection, and 5Gen languages are simply amazing these days in terms of data exposure and organization – why would you WANT to prepend String foo with szFoo. It’s not a sz. It’s not a psz. It’s not a not even an LPSCTR. Every modern IDE will tooltip you want a variable is, if you have the misfortune of not being close to the variable definition in the first place.
Bill himself said you’d never need more than 640K on a computer; did you expect that to still hold true today, because that was someone’s idea over 30 years ago? Come on…
Just roll with the technology changes; you’ll be a better technologist if you do.
Erm… I beg to differ.
Firstly, Hungarian Notation’s short lifespan wasn’t due to the increase of data types. It’s actually due to the misinterpretation of Charles Simonyi’s original idea in Apps Hungarian. The following is a very valuable website, if I may quote a site, that is: http://www.joelonsoftware.com/articles/Wrong.html
Next, it’s regarding your statement about technology being meant to evolve… Hmm… Linux is still mainly developed in C, and C is already 40 years old. If you’re saying that a 30 years old idea will not hold true, are you saying that Linux should be heading towards the dustbin? Well, I guess you’d disagree with me on my statement above. That’s fine, ’cause it’s your prerogative, as it’s my prerogative to disagree with you that I’m against technology changes. Where in my post above did I say that no technology was supposed to evolve? I only said that MS had great tendencies to go back against its own words. What it preached should be taken with a pinch of salt. No, sorry. They should be taken with pinches of salt! Period. E.g., evolvement of OOP from structural programming, is invaluable. I’m never against that.
Lastly, oh, so the proliferations of adware in my machine are due to my ignorance? Perhaps, and this is something that I stand corrected. I just have only one question. Can you please explain in layman’s terms, exactly what issues does Virtual Store solve, that would otherwise be unsolvable?
Yours truly.
You can quote Joel and yes, that’s all true, but the fact is that there are millions of types and tool tips in every single IDE. Why make code less readible? If you coded in VB, this should make you giddy since they never had things like line numbers or pesky ;’s.
“MS has had a track record of going against its own words, the programming paradigm preached today can be history tomorrow. […] Its inclusion in Windows 7 is purely a business decision, nothing more.”
First off, VirtualStore was included in Vista. The only other option was to let old and badly coded application fail on Vista and Windows 7. It was have been easier for Microsoft (and cheaper) to leave it out, let the old and busted stay busted, and call it “Sorry, upgrade your application.” They didn’t; they evolved the OS to handle it.
On evolution, the automobile is over 100 years old: are you still trying a model T? Unix is over 40 years old; are you saying Linux is the same as Unix and didn’t evolve over the years? I feel like I should hold up a naked picture of Bea Arthur because it has as much relevance as the argument you are making here, selectively saying some things can change but other can’t.
VirtualStore is the location created for application that bone-headedly tried to store settings or data to the Program Files directory. Since that directory is protected from non-Administrators, applications cannot blindly right there. This prevents EXE’s being deleted and/or replaced by trojen horses without your permission: i.e. you don’t run an application that then replaces Explorer.exe or something else in \Windows or \Program Files. Since VirutalStore is an area that you CAN write to, it adds a layer of abstraction that protects you.
Of course, if you give permission to all of your applications or run without UAC turned on, all of this protection is negated. If you download applications from an untrusted source or run without a scanner that’s your choice, but you will have problems. It’s a fact of life on any PC. Linux has the same issues; so does Mac. The nice thing about Mac is you can’t turn off UAC and it always needs a password: it’s more restricted than Vista was but no one seems to notice that aspect of it.
Ok. Thanks for your explanation of VirtualStore.
First off, let me clarify something. I’m not selectively choosing sides. If I were, I wouldn’t be embracing VB, and instead, I’d be sticking to C++ and C. Ok. Maybe I AM selectively saying NO, if that something comes from MS (as it’s had a very bad track record of going against its own words)! Shoot me. :)
Next, C++ came out sometime in the beginning / mid 80s, and MS started to strongly encourage Hungarian Notation during its push for VB (that was first released early 90s). During then, there were already millions of data types floating around! I know that this point is already moot, but my bringing it up again is due to that, I want to highlight that MS’s encouragement and discouragement of Hungarian Notation’s usage (and thus confusing people at large) is SOLELY due to its own fault of misinterpretation. By saying that Hungarian Notation should not be used, due OOP giving birth to millions of data types, is an unscrupulous, weak attempt by MS to undo its grave mistakes.
Lastly, to me, Vista and Windows 7 are no different. And despite MS’s best efforts at improving the system’s security, the system could still be compromised by some idiot’s ignorant clicks here and there. To a layman, system security is all about viruses, trojans and adware. Hence, security is still as feeble, if not worse, than XP. To some intermediate users / programmers, the change brings more harm than good. In short, that added layer of abstraction you mentioned, that is supposed to protect, is doing exactly the opposite. I need not quote more except to say that, it suffices to just look at all the comments above.
“Lastly, to me, Vista and Windows 7 are no different. ”
We’re done here. I’m not going to waste any more of my time.
I’d be better off trying to explain what the color yellow looks like to a blind man that has never seen.
Randy,
A few points on your insistance that if you do not use locations you should not (e.g. Program Files)there is no problem. I’m afraid there is. I program in VS 2010 and use Environment.SpecialFolder.LocalApplicationData which equates to C:\users\\AppData\local. This is fine for non GAC apps. However I have an app that shares info with a gac dll which insists on virtualising the above supposedly correct location. Also if you “add” an App.config file via VS it puts it in the same location as the exe. Personally I do not have a problem with virtualisation, but MS’s implementation is inconsistent. I also mostly like windows 7 but MS has dropped a few major clangers, especialy in windows explorer, here some things that used to be exactly as they should now no longer work as well e.g dir properties no longer on a per directory basis, and the behaviour of the nav pane is a major pain. Still I guess I will be completely wrong and you of course will be completely right.
I can’t even follow your argument so why would I care if you’re right or not? Why does a change in Windows Explorer mean its wrong and what does that have to do with the virtual store? It’s like being pissed at Toyota that dropped a color you liked and that means their new hybrid engine will suck because of it.
Whatever creams your Twinkie either way.
Randy,
I am not sure what is so hard to understand. I made the point that your claim that virtualisation works fine if you do not put files where they shouldn’t be is incorrect as GAC dlls will virtualise even if you do put files where they should be, which is inconsistent implementation and causes problemw even when you follow MS’s rules. The point was also made that config/ini files shouldn’t be with the exe, so I pointed out that that is where Visual Studio puts them, further incosistent implementation, All of which is contrary to your claims/statements.
The reference to explorer was a “by the way” I am not anti windows 7, just wish MS would remember the adage “if it aint broke don’t fix it” as some changes to explorer undid previous fixes. Which makes your reference to cars idiotic.
Bottom line is not only are you not as smart/knowledgeable as you think you are, but in fact you are just a smug arrogant immature know-it-all, with an undeserved over inflated opinion of yourself. You need to grow up and learn to debate with people without resorting to insults. All I did in my original post was politely make a few points, but now I react to you as you did to me.
What’s hard to follow is that you start talking about an application that uses the GAC and then you’re off talking about “clangers” which have nothing to do with the GAC or UAC or the Virtual Store. Then you move along to a “oooo you’ll think I’m wrong” statement.
What’s wrong with this whole thread – which started as a post to help people – is that I fed a troll when I shouldn’t have.
Sorry, should have realised you are unable to cope with more than one thing at a time.