I'm trying to make an educated decision about what ORM to use for a number of legacy applications I'm responsible for porting to MVC 2. The ORMs I've looked at are LINQ to SQL, LINQ to Entities and nHibernate. L2S seemed to be the easiest, but I've found numerous articles and blog entries stating that Microsoft would no longer be updating it after .NET 3.5. With that in mind, I've been working with Entities a bit, but have found that it is cumbersome and overcomplicated for the small applications I'm working with (same with nHibernate). I recently purchased "Pro ASP.NET MVC 2 Framework" by Steven Sanderson, in which he chose to use LINQ to SQL as his ORM, at one point stating:
I'm aware that some developers have expressed concerns that Microsoft might
deprecate LINQ to SQL in favor of Entity Framework. However, Microsoft included
and enhanced LINQ to SQL in .NET 4, so these fears cannot be entirely justified.
I was unaware that they had made changes, nor had I bothered to look, as the general community opinion seemed to be that L2S was approaching end-of-life, to be replaced by L2E. Damien Guard wrote about some of the changes on his blog (http://damieng.com/blog/2009/06/01/linq-to-sql-changes-in-net-40) for those interested.
My hope is that someone can shed some light on Microsoft's position regarding LINQ to SQL. The applications I'm porting and updating have a (roughly) 8-10 year life span, so I'd prefer to adopt a technology that won't be abandoned in that time-frame and leave my replacements up creek. (Of course, if anyone has any other recommendations for small shops - our database has less than 5 million records - I'd love to hear them.)