Versioning and the Windows SDK


Today I’d like to ask for your comments on a few issues that we’ve had some internal debates about on our team, having to do with how we handle versioning and the side-by-side story with the SDK. Please let us know how you feel by submitting your comments. User comments always help us to decide which way we want to go with issues.


Question One
The Windows SDK installs right now to C:\Program Files\Microsoft SDKs\Windows\v1.0. The v1.0 reflects v1.0 of the Windows SDK. Does this number make sense? Since our primary target is Windows Vista, should we install to C:\Program Files\Microsoft SDKs\Windows\v6.0?


Sub-Question One
How about if we use C:\Program Files\Microsoft SDKs\Windows\Vista instead of a version number?


Question Two
Upgrading. You have the RTM version of the Windows SDK installed. You install additional content. Should the content overwrite or install side by side?


Question Three
You’ve installed the Windows SDK RTM and now you’re installing a pre-release version of the Visual Studio “Orcas” SDK. There are some shared components between the two, and the VS SDK has updated docs. What should happen there?


Question Four
You install the Windows SDK in English, but you’re a native Japanese speaker. Shold the Japanese SDK install side by side or should one overwrite the other?


We’ve done our best to guess what you’d like us to do under those scenarios, but your feedback will help us make our decisions on the ways we want to proceed forward,


Jason Sacks


Comments (8)

  1. Typhoon87 says:

    what about C:Program FilesMicrosoft SDKsWindowsvistav1.0     this way you know its the Vista SDK and that its version 1 of the sdk.

    Additional Content should be side by side. if it replaces some content that should overwrite to make sure only the latest info is given.

    The first time it loads there should be a dialog asking wether you want to use the orka or updated sdk version.

    It should ask it should know that you installed a version not in your native (languge chosen at Windows install) and ask.

  2. dono says:

    I only really care about Question Four.

    Please do not overwrite. It needs to be side-by-side.

    It is occasionally useful to switch between languages. For example, the translated documentation is sometimes not very understandable, so you need to resort to the original. Or one may prefer to work with one language, but at times is required to switch to another. For example, when working with co-workers, etc. If I installed the English version and later really did not want the English version anymore, I would expect to uninstall the English version, not have it overwriten for me.

    The same general thinking applies to question number two as well: do not overwrite; install side-by-side.

  3. keeron says:

    Ques 1:

    v1.0 seems confusing. The SDK is intended for Vista only, but it might be difficult for people (coming from win2k, xp and multiple platform SDKs) to comprehend that Vista has only one sdk. V6.0 is good, but still not descriptive enough.

    Ques 1.1:

    I like Vista in the folder name. The SDK is clearly for use with Vista (even though its called Windows SDK and not Windows Vista SDK).

    Ques 2:

    Since this is the same SDK (with updated docs,additional components), I’d be okay if it replaced the current install. A note either when the IDe launches or readme to indicate that this was done.

    Ques 3:

    If this is possible:

    side-by-side … Orcas is just one example, I am sure there will be other beta releases that might conflict with the Vista RTM sdk release. I’d want all these installs to coexisit and not replace/update each other. (How would the uninstall work in that case, if it upgraded my files)

    If not, then a confirmation dialog anytime I use the "orcas" or other features that were installed on top of Windows SDK RTM.. allowing me to load the latest pre-release files instead of the Vista RTM versions.

    Ques 4:

    Side-by-side. If I made that choice explictly (to have english sdk), I probably want to use the english version (either for me, or someone else in the team sharing that computer who doesn’t speak japanese).

    – Keeron

  4. PatriotB says:

    1. Use 6.0.  I don’t see this as the "1.0" version of the SDK since I consider previous Platform SDKs to be in the same family.  If it would be 1.0, then would the SDK for Windows Next (for lack of a better term… next big release after Vista) be 2.0?  Or 1.0 since it would be the first SDK for Windows Next?  Keeping it in sync with the OS version is easiest.

    1a.  I’d be hesitant to use Vista in the folder name, since I’m assuming that Windows Server 2007 (or whatever it ends up being called) will have the same SDK.

    2. I suppose it depends on what the content is and whether or not it’s completely backwards compatible.  If the content is a superset of the existing content, it would be ok to replace, but if it’s not, then it should be side-by-side.  This I think has been the way most things have traditionally been.

    3. Anything that falls in the ownership of Windows headers/libs/documentation should be released via the Windows SDK before it’s released via Orcas.  There shouldn’t be a case where the Orcas product would have newer versions of Windows stuff.  (Think of it as a "layering violation" like Larry Osterman has blogged about, only not on a DLL level but on a knowledge level)

    4. I only use the English version so I don’t have a good answer.  I don’t know enough about the various localized SDKs — what parts of them are localized?  The documentation is a given, what about samples?  Readmes?  Tools?  In theory it could all sit side by side, so that things like headers & libs are shared, and localized items are side by side.  This would require the tools to be language-neutral binaries, I suppose.

  5. Rup says:

    1. I’ve always thought of platform SDKs in terms of release date (Feb 2003, etc.); if you were to install it by date then you should use YYYYMM as the version. But I think v1.0 is fine too and I prefer it to v6.0; if you add new interfaces with Vista SP1 I’d rather have v1.1 than v6.0SP1. Document the corresponding Windows version in readme.htm and the documentation contents page.

    a. No, I don’t think you need Vista in the directory name. Again, put Vista in the readme.htm and on the documentation contents page.

    2. ditto PatriotB’s answer: replace unless it’d break compatibility.

    3. I agree with PatriotB for RTM releases of components shared with Orcas; however I can see the VS team might not want to involve the SDK team in all of their pre-releases. The current paradigm though is that VS is bundled with its own a subset of the Platform SDK and targets that unless overridden with a different SDK and I think that still makes sense.

    4. again, ditto PatriotB: keep machine-facing components (includes and libs) common, user-facing components side-by-side.

  6. Makoto says:

    2: I preffer SxS because sometimes I’m in several projects which use defferent version of SDK. Even if both version are virtually the same, I’d like to use different SDK for each projects because sometimes we are trapped into sabtle differences.

    4: I am Japanese and I definitely preffer SxS because of cause I preffer Japanese documents to English ones, because I can read Japanese faster than English, but sometimes I find mistranslated or ambiguous sentences so I have to read original ones.

  7. Makoto says:

    I forgot to write this:

    For example, the Japanese version of VS 2005 document is horrible. I can’t trust anything. So I usually read English one.