A co-worker of mine sent me this presentation Joshua Bloch (Effective Java)… Joshua was a key API designer for Java at Sun and is now working at some small search engine company. It is so great to learn from your competitors and Josh really is a smart guy with clear, crisp ideas that resonate well in the .NET world.

How to Design a Good API & Why it Matters

A few takes aways for me:

  1. If the names are nasty, you likely have bad design
  2. Agility trumps completeness
  3. When in doubt leave it out
  4. Not to mention the numerous java framework examples he uses of what NOT to do. ;-)

BTW, you can of course find other great Framework design resources

MSDN Video Series on Designing .NET Class Libraries
BradA Design Guidelines Tag
Framework Design Guidelines : Conventions, Idioms, and Patterns for Reusable .NET Libraries