The SDK team is always looking for ways to make your Microsoft SDK experience better.  We’ve heard about the need for improved search, more complete reference documentation and more samples. 

 

Another area we are looking at is how multiple SDKs install and “play well” together.  Last I checked, if you searched on “SDK” on the Microsoft Download Center, there were almost 300 search results returned.

 

Kitchen Sink, Integrated or Separate

 

There is a continuum of ways to deliver a good multiple SDK experience.  The most obvious way is to create one big be-all, end-all tightly integrated SDK—the kitchen sink of all SDKs.  The positive aspect of this is that you have fewer (one?) SDKs to download, install and worry about—one size fits all that is tightly integrated and contains everything you could possibly need.  The difficulties include keeping things up to date and in-synch, the huge download size and getting a lot more than you need or want—one size doesn’t always fit all.  The logistical challenges to coordinating such a one-stop SDK can not be dismissed easily either.

 

At the other end of the continuum, we could deliver all technologies as separately installable SDKs.  This would allow you to pick and choose which SDKs you want and only download those that you need/use.  The downside of this choice is that you have to first find all the different SDKs you need and then make multiple downloads and installs.  Right now, all these different SDKs are installed all over your hard drive and don’t really “play well together.”  This is the model we have today, more or less.

 

Middle Ground

 

We are currently investigating the middle ground.  The SDK team is looking at the creation of an “SDK Collection Framework”, that would include the two major (or “base”) SDKs (PSDK for native/Win32/Win64/etc., and WinFX SDK for managed) and a system for installing other SDKs.  By establishing a pattern or standard for how/where SDKs are installed and how the doc sets would be designed, we can provide what appears to be a tightly integrated SDK experience on the developer’s desktop giving the customer to power to download and install only the SDKs they want, while keeping the flexibility of the technologies teams to create and update SDKs whenever they need.

 

The SDK Collection Framework

 

In the SDK Collection Framework model, if you decided you needed both the native SDK and the managed SDK, you would download and install both separately, but you would only see one combined SDK collection on your desktop with a single, integrated documentation, tools and samples experience.  Any SDKs you added after installing the base SDKs would simply be “added” to your existing Microsoft SDK collection—like chapters in a book (or volumes in an encyclopedia).

 

SDKs and Visual Studio

 

Visual Studio already provides integrated SDK content for you right out of the box. VS includes content from several different SDKs and installs them such that you don’t even know you are using multiple SDKs—you are just using VS.  The MSDN Library also gathers SDK content together for you.

 

The problem with the current VS integrated model is that VS is a snapshot in time.  Within months of shipping VS, the SDK content in VS can get out of date.  Many VS customers are used to downloading and installing updated and additional SDK content after (sometimes immediately after) installing VS.  When they do so, they often get independent SDK installs in addition to (and often duplicative of) the SDK content that VS installs.  Either the new SDKs take steps to integrate themselves with VS or the customer has to explicitly tell VS where to find these new or updated SDKs.

 

By installing all SDKs in a single collection, VS has only to know one location instead of many.  In addition, if you update or add an SDK independently of VS, VS would automatically see the updated or added content.

 

Your Feedback is Always Welcome!

 

I’d love to hear your feedback on the integrated SDK Framework idea.  Please let me know what questions you have and whether you think this would be an improved experience for you or not.