I've relaunched an after-hours asp.net charity project that I thought I dropped for good some months back. But I really missed the whole experience of charity .NET coding, and now that I'm back in that groove I am convinced that everyone needs to have an after-hours charity project going. There are several benefits to doing charity .NET work, but one particular benefit for me is the time I am able to spend getting my head wrapped around issues I don't have time to focus on during working hours.
I wanted to employ a barebones page inheritance model, for instance, using a Basecontrol, a PageTemplate Control with Placeholders, and a control.config file with miscellaneous info and control loading info called from BasePages. The beauty is writing inherited .ASPX pages containing a single line denoting the location of the inherited class and being able to focus on the controls which do the work.
I am basing this model on ScottW's 0.94 release of .text since I had spent so much time studying it. Scott was supporting Skinning in the 0.94 release, of course, but the principal is similar. After getting my inheritance approach to work, I realized that I could do it better and smarter. So with no billable clock tick-tocking, I took the time to peel another layer from ScottW's 0.94 skinning code to discover that what I now had to get a handle on if I wanted to really do this right was XML Serialization. Sweet!