Мне немного стыдно сказать, что я никогда не использовал ORM; как вы, наверное, помните, большая часть моей карьеры связана с Classic ASP, а маленький .NET, которым я занимаюсь, - это, как правило, только техническое обслуживание.
Для моей собственной карьеры, а также для подготовки нового проекта на работе (наконец, в .NET!) Я смотрю на добавление ORM в свой набор навыков - будучи мазохистом, я тоже собираюсь посмотреть в TDD, пока я работаю над этим проектом.
В любом случае, я использую .NET 3.5 для проекта (или планирую в любом случае), поэтому я пытаюсь решить, какой ORM я хочу выбрать; как я уже сказал, я не очень знаком с ними, но в целом я знаю, что они должны делать и как они это делают. Мой выбор в основном зависит от NHibernate или LINQ / Entity Framework. Я не использовал ни одного, но я видел некоторые демонстрации LINQ2SQL и NHibernate.
NHibernate в целом выглядит более надежным (Linq2Sql даже не является «истинным» ORM), а также широко используется в сообществе ALT.NET, которое я хочу изучить подробнее. Тем не менее, EF - это предложение Microsoft, и поэтому оно будет активно использоваться большинством команд разработчиков, которые просто используют то, что Microsoft предлагает, и не ищут никаких альтернатив.
Я слышал как хорошие, так и плохие вещи об EF, но я хочу выбрать что-то, что даст мне хорошую основу, а также будет хорошо выглядеть для других работодателей, если / когда я найду лучшую работу в компании с реальной команда разработчиков.
РЕДАКТИРОВАТЬ: Я должен добавить, что, если это имеет значение при выборе ORM, приложение должно иметь дело с существующей базой данных.
РЕДАКТИРОВАТЬ (15.02.2009 18:48): Единственной базой данных, которую он будет использовать, является SQL Server 2005 Standard, работающий на Windows Server 2003. Учитывая, что это для рабочего проекта, моя цель состоит в том, чтобы выбрать что-то, что не займет у меня много времени, чтобы освоиться (так как мне нужно быть продуктивным, и «изучение нового инструмента» не будет хорошо для управления), но что-то это будет лучше, чем прокатить мой собственный DAL. В то время я еще не решил, будет ли приложение интеллектуальным клиентом или приложением ASP.NET, но одна его часть, скорее всего, будет выполнена с ASP.NET MVC.