ADO.NET EF v LINQ to SQL (take 2)
So after my first article covering the ADO.NET Entity Framework vs LINQ to SQL fiasco going on lately I got a some feedback from many sources who shared my pain so I thought I’d extend a second part. To those that responded with the obligatory “ADO.NET EF is for pros, you just don’t know what you’re talking about,” – let me explain myself a little better. I’m on Microsoft’s side here. I’d really prefer them see make the right choice to get an even larger community for developing on their platform technologies. This is not an anti-Microsoft campaign.
Recently Microsoft has posted another article about how “LINQ,” isn’t dead and that “LINQ to SQL,” is just going to be developed based on customer feedback. I see two problems with this. The first being that it seems like they’re getting a ton of feedback from their customers saying that LINQ to SQL is what they want. Well if customers want it and they’re developing it, why is there an issue? Seems like they’re just trying to soften the blow to the companies and individuals that have now wasted huge amounts of time. I’m fully aware LINQ to SQL will never get the attention it needs, and why? Microsoft recently announced Windows Azure which takes advantage of ADO.NET Data Services, which uses EF. Meaning Microsoft is going to invest heavily in technologies they are personally using rather than the ones their customers are, it’s in their history. As we’ve seen, history repeats itself.
I recently tried converting a existing ASP.NET MVC project of mine to use ADO.NET EF. I figured since I used a pretty abstract DAL using the repository pattern this should be no problem. However, using ADO.NET EF was a nightmare to say the least. I couldn’t easily get tables using extension methods or generics. I wasn’t able to use .Single() or .SingleOrDefault() extension methods without getting an exception and it made me actually make huge changes to my DAL. After hours of frustrating coding sessions I finally had a working copy of my DAL hooked up with ADO.NET EF. Suffice to say after using it for a few hours I quickly reverted to LINQ to SQL and never looked back.
Now is the time Microsoft. As I said previously you’re forging along with a new Microsoft the likes of which have never been seen before. Contributing to open-source projects, including un-forked open-source projects and even allowing people to download the source of the work you spend so much money on. Many of us appreciate that and are glad to see you doing it. I, as a customer will be sad to say I will be looking for alternate technologies if LINQ to SQL does not get the attention it needs.