The style of the two sites are different due to slightly different goals, and different people working on them. Both sites were developed to provide examples of how to use asp.net, and to provide a starting point for customers to build their own sites.
As the personal site is shipped in the box, it has had a bit more productization attention than those shipped to the web.
I am hoping to release the events calendar code so that people can customize it further. It was my first attempt at writing a databound control, so its not perfect, but a useful control in that type of site.
I used user controls a fair amount when I wanted to have multiple controls interact with each other in a databound form. Becuase the find control expressions can be a little long winded and complicated, its cleaner to create a user control to encapsulate the interaction, and then bind that usercontrol to the data by exposing the necessary properties off the control.
We followed a development model that we have seen used at a number of customers:
- I wrote a spec for the site Functionality
- We had a designer produce some design comps as bitmaps.
- Picked the design from those comps, and refined it a bit. The designer then flushed out the style for the different kinds of pages
- The designer then produced static files with the html and css for the different kinds of pages
- I then converted that into the master page, and individual pages
The designer used some fancy features that are not natively part of the asp.net controls, such as the rollover buttons. I could have used expando attributes on the linkbutton and hyperlink controls to add the css, but given the number of them used in the site, it seemed cleaner to inherit from those controls and create a custom control that added the right css. Hopefully it also shows how its easy to extend the existing controls if they don't do directly what you need.
The site uses a lot of declarative databinding. This is one of the coolest and most useful feature in asp.net. A site like this is all about data, and using the sql datasource, and object datasource made building it much simpler than having to do the binding by hand.
It was a fun experience building the club site, I hope it can be useful as a basis for customer applications.
Sam
The clubsite