Не совсем верно по вопросу BLL / DAL (я это сделал), хотя они не облегчают вам задачу. Следующая версия в .Net 4.0 решает эту проблему по большей части.
Это пространство взрывается, множество вариантов там.
Вот что я бы назвал кремом из этой культуры
- Entity Framework (MS choice du jeur)
- NHibernate (Огромное количество подписчиков, но немного нарастает)
- Дозвуковой (компактный и простой, но мощный)
- Linq2Sql (эй, переполнение стека использует его)
В общем, использование MSFT никогда не является плохим выбором, поскольку поддержка продукта всегда есть, и если они придерживаются EF, это в конечном итоге будет лучшим выбором (они обычно получают это правильно в версии 3). Nhibernate существует уже некоторое время, и их также очень много поддерживают. Посмотрите на каждое сообщество, это легко сделать по ключевым словам здесь на SO.
Пожалуйста, не платите за одно, слишком много хороших бесплатных / открытых решений там
Интересное сравнение производительности здесь