Posted By: Charles | Apr 20th, 2006 @ 11:23 AM
Ever wonder how the Windows shell is designed? Ever try and write a Windows shell extension? It gets easier in Vista! Here, Catherine Heller, a developer and technical evangelist, and Charles sit down with two of the big brains behind the Windows shell architecture and platform: Architects Chris Guzak and Mike Sheldon. It's always fun to listen in on architects reflecting on the evolution and future of the technology they think up.
Rating:
0
0
Why yes, I have tried to write some shell extensions.  Would have been a lot easier if all of the interfaces were documented and I didn't have to resort to disassembling the stock implementations.

Since I'm on the topic of undocumented COM interfaces, it's worth mentioning that I very recently had to pull the same tricks to get a DirectShow source filter to work correctly with WMP. 

What is so hard about documenting the interfaces?  Is it some zany attempt at a competitive advantage, or is it just laziness?
Zeo
Zeo
Channel 9 :)
Great conversation!
Harlequin
Harlequin
Don't touch that mustard. It's Jerry and Bills.
Does the download for this video work? Keeps dying after less than a meg for me. I tried downloading other older videos, and they're coming down fine...

Edit: Have tried it on 2 computers, same thing...
Sparky, I don't have any experience myself with the history of shell SDK documentation, but I think there are explanations for quality of SDK beyond the two you propose (based on what I saw developing parts of the Sharepoint Portal 1.0 programmability model)

It all comes down to resources.  Every team has finite resources, and Microsoft is no different from any other company -- you can't just assume that you can magically double the size of a team overnight to cover all the work you'd ideally like to do.

If I were the SDK team, and I had thousands of APIs I had to prioritize between for sample writing and documentation, I'd look at the following:
1) breadth of API usage.  Is this something that every developer will need to use?  Something that only a handful will ever touch?
2) expertise level of anticipated customer.  Is this an API that we expect to be used by an entry level dev, or is typically used only in scenarios where you'd expect to have an experienced expert writing the code?  [there's probably some correlation between the answer to #1 and this one]
3) complexity of API.  Could you figure out the right way to use this API from intellisense hints alone?  Or does it need extensive documentation, best practices, etc.
4) complexity of work to document and create samples.  Is it just one object with a few methods where I can show best practice usage in 50 lines of code?  Or is it a big collection of inter-related objects where I'd need a real world sample app to show how it all fits together?

Again, I don't have insight into how the SDK and shell teams made particular decisions about documenting these APIs, but you can imagine a set of answers to the four questions above which would lead a reasonable person to conlucde that extensive documentation of these APIs might not be at the top of the priority list.

Also, I think I heard Chris say in the interview that they really are trying to improve this going forward, with better SDK support this time around in addition to designing APIs that are easier to use, and easier to use right, from the start.

The background noise in the video made it hard to listen and I am not quite sure whether this was answered or not:

Why could not the current shell be made a legacy option for those who have extensions that require it and for the rest of the world offer a WinFX based shell/desktop experience and extensibility.

I expect that Vista "R2" will offer optional (and in future the default) explorer/shell/desktop that is fully managed and if user needs to use legacy apps, the Hypervisor thing could be used to run an isolated "legacy shell".

I stopped watching after 60 seconds. I know why you don-t want extra mics - but know you know why I will not watch these either Embarassed

Kobiashvili
Kobiashvili
Searching for the 'ANY' key
Nice video, guys!

Yup, there's a lot of background noise, so it's hard to fully understand what they're saying, especially for non-native English speakers.

Keep up the good work.