Yes, I do. It was a joke - hence the smiley
Thank you for explaining the reasons for virtualisation in much
greater detail than I bothered to. The fact remains that its
introduction caused confusion and caused certain things to break
for some people.
Yes, indeed it did, but not for those who were operating with
correct user account settings, and an awareness of the default
access settings for the folders in question that have been in place
since Windows 2000.
Well, perhaps you're right, but I beg to differ. My understanding
of C:\Program Files was that it was the correct place for admins
to install programs.
Read-only application files. There were no properly-designed Windows
applications that needed write-only access to C:\Program Files\
after Windows 2000 because user-level logons had only read access to
those folders. This is, of course, why programs like QuickBooks are
so roundly condemned, as they still required (before Vista) that you
ran with elevated permissions -- QuickBooks would not run in a
user-level logon at all (power user was the lowest possible).
An Access front-end is arguably a program.
An EXE file is not writable (well, if it is, then you may be running
a virus), and thus, the fact that it is true that a front end is, in
fact, a program file, it's not like other program files, as it has
to be writable.
It contains no data
and it is used to access and manipulate data. It used to work
perfectly well for an admin to install a front-end in Program
Files and a back-end in a "shared" area where all users of the app
(admins or not) had write access - the obvious candidate on a
standalone machine being the Common_Appdata folder.
I don't recognize that folder, i.e., "Common_Appdata". So far as I
can see this is a Windows Vista environment variable, as it doesn't
exist in WinXP or before, and all the Googling I've done seems to
refer to Vista.
Regardless of the correct location in Vista for application data for
actual applications, the only place for an Access front end is), is
somewhere in the All Users folder, since that is, by definition,
read/write for all users.
This worked well - lowly users and admins alike could open the
front-end and use it, modifying the data in the back-end. The
only difference was that lowly users did not cause the
modification date on the front-end to change, while admins did.
Your explanation makes little sense to me, but I don't use Vista.
You seem to be saying that before Vista, Common_Appdata (which
didn't exist before Vista) was the place to store writable
application data. That is not true in WinXP and before -- instead
the location was:
%ALLUSERSPROFILE%\Application Data\
With Vista however, when an admin opened and closed the frontend
he created for himself a new virtualised copy. When he installed
an updated version, he found himself still using the old version.
As for Common_AppData, surely its purpose is for data which is to
be shared.
This is all about permissions on the folders involved. If
%Common_AppData% points to a folder that does not give users write
access, then it's clearly not the right place to put an Access front
end, regardless of what the rules are for application data
locations.
It is up to the owner of that data whether or not users may modify
it. However, with Vista, a user who has legitimate write access to
a file in that location creates a virtualised copy, and the
changes cannot be seen by other users.
Does this seem right? I think not.
It's different. If you avoid the virtualized folders you won't have
an issue.
I disagree. If a proper installation program (I use Inno Setup)
creates this folder and grants the required read and/or write
permissions to the appropriate user groups, how is this wrong?
If it doesn't work?
I infer that you would have front-ends installed in each user's
AppData folder?
In the All Users folder.
For me, this has two problems: (a) it offers no
protection to read-only components that ought not to be tampered
with by non-admin users and (b) it creates a maintenance nightmare
- for example, if you have five different users who regularly use
the same workstation, you need to maintaib five concurrent copies
of the same application (front-end and associated files) on the
one computer.
How is this a disaster? Even if you have a 1GB front end, that's
only 5 GBs. How much of the hard drive is that, percentagewise? Even
my 4-year-old laptop that wasn't every heavily provisioned to begin
with has plenty of room for multiple copies of such an outsized
front end (and it's unrealistic to believe that anyone is deploying
front ends over 100MBs, in my opinion).