Ziv Caspi asks in a comment to one of my rants:

Is there a good design that would support both?

Is other words, do you see (or know of) a good design that would please devs like me -- who rarely do UI work and need simple abstractions --yet also support people like you, who obviously need the power to do complex work?

IMHO, it is sometimes very difficult to achieve this in a single API. In some cases I know of, the results were the design of two separated interfaces. This, of course, also sucks.

Great question, and not one easy to answer, I think, since it depends on a lot of factors. However, let me side-step the issue by saying this: I don't think my original critique of the Winforms design impacted the usability of the framework in any way. In fact, I think it would've simplified usage of it. Would've splitting the class hierarchy in a different way have significantly impacted the usage model? I don't think so. Consistency is always good, at least imho, while we're are it.

Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.