HTML Output Abstraction and SubSonic
Jason has a posted a good read on the topic here.
On the topic of SS, I'm still on the fence. I grew up with WORM and have since migrated to NHibernate. I'm just not sure about the "Generate my domain from the database schema." idea. Unfortunately I mostly work with an older legacy db where I can't really redefine the schema (legacy apps are still in use) to match my domain model. Using a mapping file based mapper allow me to use my own naming convention versus a convention created 10+ years ago. With new projects I would *never* let my db schema dictate my domain, its not worth the stranglehold, but I cant start from scratch all the time.