Domain: mrmpslc.com
Stories and comments across the archive that link to mrmpslc.com.
Comments · 7
-
Re:It's disaster
Sorry, I havent mentally translated to Vista apps yet, and they changed the names everywhere (to the better, but the change is a pain).
I dont have a vista box or vm in front of me at the moment, but what was 'All Users' is now 'Public'.
So on Vista, its now this:
%ALLUSERSPROFILE%\Applications Data\Roaming
and
%ALLUSERSPROFILE%\Applications Data\Local
On vista, %ALLUSERSPROFILE% should resolve to C:\Users\Public\ by default, but this can be changed by group policy, so be careful.
These distinguish between data that should roam (when users are using roaming profiles) and that which is local to that machine (temp data, caches, stuff that doesnt need to follow on a roaming profile).
Go to a command prompt, and type:
C:\>echo %allusersprofile%
to see what the default is.
Now you have to be careful with paths. What seems simple isnt really that simple. Because you have to deal with roaming profiles and non-roaming profiles (ie, the roaming vs. local above). You have to deal with the case where Redirected MyDocuments is in effect. You have to deal with group policy which can change the default locations of all these things.
The 'correct' way to do it, so that all these things are handled behind the scenes, is to use the 'Known Folders' API in Vista.
http://msdn2.microsoft.com/en-us/library/bb756896.aspx
Mind you, this is not the simplest stuff out there, and is really targeted with those more familiar with the C windows API. But there are COM interfaces, which can be consumed by traditional VB6-type of apps, or .NET apps through COM interop (IIRC). If your app is in C/C++ and you're used to consuming win32 api's in shell then this should be easy stuff for you.
There is a ton of documentation out there from MS, but unfortunately, its not as well organized as it should be. And its gotten worse over the years as the underlying systems get more complicated, and facilities/abstractions are created to deal with different versions.
Here's some links, hopefully this doesnt scare you off. The goal should be that your app can and does pass the 'Certified for Windows Vista' (or the XP equiv if you're targeting XP only for now). This is for more than just marketing bling, this means that your apps will deal with all the things that people complain about on Vista, like UAC, etc. Basically the software logo program (the 'certified for vista' and 'works with vista') is a set of best practices for the desktop app developer. Like the WHQL is for drivers and hardware.
(WARN: some of this stuff is hidden behind the MS partner program logins. The good news is that you can become a registered partner for about 30 minutes of your time filling out information, and no cost. There are bennies too. You can use the Microsoft Empower ISV program, to get 5 MSDN Universal-equivalent licenses for ~$400 for the first two years. Then you can translate to the Action Pack subscription. Makes getting all your MS infrastructure very cheap and easy for the small ISV.)
App Compat Forums for Vista
http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=904&SiteID=1
Windows Vista Developer Story (odd name, but top level for lots of info)
http://msdn2.microsoft.com/en-us/windowsvista/aa904951.aspx
Vista/Server2008 App Compat Cookbook
http://msdn2.microsoft.com/en-us/library/aa480152.aspx
Developing Quality Applications with Known Folders
http://msdn2.microsoft.com/en-us/library/bb756896.aspx
http://microsoft.mrmpslc.com/Inno -
Developers vs. Windows Logo Standards for Software
First off, I agree with the article's assessment that it is the developer's fault why UAC is required in the first part. Now, I know this is slashdot, and Micro$oft bashing is everyone's favorite past time here, but, I'm going to defend them for a moment. The reason why I say it's the developers fault is because for YEARS Microsoft has been publishing information on how application's should function to work in as "Limited Users" (aka non-Administrators), at least since the days of Windows 2000. Now, the problem is, most developers I know have never even heard of this! What is this magical mystical document I speak of? Well, it's the Microsoft Logo specifications, aka "Designed for Windows". This talks about all kinds of useful things including separation of user data from application resources; which from my experience is the primary reason why USER applications do not function as non-Administrators.
Now, I also know that Microsoft themselves haven't followed their own rules, and some applications still require administrative rights (and some stupid design decisions such as IE's Code Store Database). Combine that with the fact that they have to support an existing installation base of applications that don't follow those practices and what else can they do? Ever tell have to tell a business user that they can't use their mission critical application anymore because it doesn't work with a proper security implementation? How about telling a Grandparent that have to go buy a new version of some application that they've been using for 10 years because it doesn't work on their new PC? UAC is Microsoft's bridge to go from the old way of everyone running as Admins to the way everyone else has been saying to run, as a "Limited User". It's either that or the proliferation of the fallacy that on Windows you must run as Root.
So, UAC sucks, but can anyone actually recommend a better solution that will work for the install base Windows has? I'm not talking about the "Windows has more users than Unix/Linux/Mac", I'm say that Windows user's and developers are DUMBER than Unix/Linux/Mac users/developers. Now, don't get me wrong, there are extemes on both sides of the fence, but if we looked at percentages, the percentage of dumb users and developers on the Windows side will probably far outweigh those on the other platforms. (Queue the "well switch stupid" comments. And I will, once the industry does as well, it's all about critical mass people.)
Here's some more information on the Vista Logo requirements:
http://microsoft.mrmpslc.com/InnovateOnWindowsVist a/getstartedcert.aspx?LangType=4105
Here's the "Requirements for the Windows Vista Logo Program for Software document":
http://download.microsoft.com/download/8/e/4/8e4c9 29d-679a-4238-8c21-2dcc8ed1f35c/Windows%20Vista%20 Software%20Logo%20Spec%201.1.doc -
Re:Isn't it obvious?
It's a bit more than that.
Two levels of software certification:
"Works With Windows Vista" and "Certified for Windows Vista" mean different levels of integration. Full test specs are available to anyone:
http://microsoft.mrmpslc.com/InnovateOnWindowsVist a/Default.aspx?LangType=4105
Basically, you pay a testing fee, have a third party test according to criteria outlined in the program specs and if it passes, you get the sticker. Some criteria are easy to pass, others are tougher. -
Re:Suprised?
Anybody can apply. It's free (as in beer), though you may need a code signing certificate. You should have one anyway, all major the publishers do and Microsoft is (or was) offering to subsidize purchasing it from Verisign.
Even though the following URL doesn't sound like it has any connection to the list, it is in fact the right place to get started:
http://microsoft.mrmpslc.com/InnovateOnWindowsVist a/getstarted.aspx -
Re:If it won't work with what you need...
So now that Windows doesn't have support for this and that software
Actually, it does. Don't confuse logo certification with anything but what it is: a process where a MS-certified testing organization (like these guys) verifies that your app Conforms to specific guidelines that you really want your apps doing anyhow if you want them to run on Windows. This is what they check for, so there are no surprises.
It's not like your app won't work if it's not certified (otherwise how would they test it?). Being logo-certified just means you get to put a sticker on your retail box so that shoppers who only know that 'it's gotta work for me and I have windows' have some way to know it's been verified to pass those tests on their OS.
-
FUDThe title of the linked KB article is:
Applications that have earned the "Certified for Windows Vista" logo or the "Works with Windows Vista" logo
and the line taken from context is: These applications are officially supported on Windows Vista by our independent software vendor (ISV) partners. (emphasized part seems to be missing from the story) I would guess that the owners of the programs you don't see on the list didn't go through the logo process. The process for the "Works With Windows Vista" and "Certified For Windows Vista" can be found here. I know it cost $$ (hundreds I believe) to get the Works With but I MS was even offering to pay for the tests early on. Certified For is more expensive. -
FUDThe title of the linked KB article is:
Applications that have earned the "Certified for Windows Vista" logo or the "Works with Windows Vista" logo
and the line taken from context is: These applications are officially supported on Windows Vista by our independent software vendor (ISV) partners. (emphasized part seems to be missing from the story) I would guess that the owners of the programs you don't see on the list didn't go through the logo process. The process for the "Works With Windows Vista" and "Certified For Windows Vista" can be found here. I know it cost $$ (hundreds I believe) to get the Works With but I MS was even offering to pay for the tests early on. Certified For is more expensive.