Jeff Cranford has an interesting post about how you can share data among server controls. It's interesting because it works at design-time too. If you've ever built a custom server control, you'll appreciate the difficulties that design-time support causes, as well as Jeff's solution.
Did you realize that ViewState was available at design-time?