Subsonic - this is pretty cool stuff and it seems to have matured quite a bit in the last year-or-so.
DB Independent dynamic query generation
- Similar to LINQ for SQL, but it's DB-independent
- Pagination support
- Results as DataReader / DataSet / Scalar
- Params are used to aviod SQL Injection
- Generates classes to call sprocs in a type-safe manner
- Implementation of the Active Record pattern
- Code is generated from DB tables or views, so reflection performance hits should be minimal
- Does not rely on third party O/R mapper, which is different from the Castle + NHibernate active record implementation.