If I’d been starting a data-based application a year ago, I think I would have chosen LINQ to SQL (L2S). Regarding the slightly confusing news that L2S is dead and the subsequent response to it, I would be pretty pissed if I had made that choice. So what can we learn? Here’s my take.

1. Don’t confuse your customers

Why were two ORMy frameworks ever released in the first place? Is it so difficult to plan 2 years ahead in advance? I think Steven van Deursen, has nailed it: Marketing. All the demo videos I saw (Specifically the one by Anders) were done with L2S. Wow. This is the future I thought. This is the direction Microsoft is going. And then a couple of months later, I find out about Entity Framework (EF). I’m then told that one is for quick and dirty and another is for enterprise development. Great. Which one is my project?

2. Don’t release proof-of-concept projects

From where I sit, LINQ was a proof of concept that was released as a full-blown product. I can’t believe that the ADO team were sitting in their bubble and didn’t know that L2S was being released. Is this yet another example of Microsoft competing with themselves? What’s makes it worse, is that people love L2S. Even though it’s rough around the edges, it still does the work! People get stuff done. And people don’t like Entity Framework despite the explanation for some of the design decisions. I’d love to know what the usage numbers are of L2S vs EF because it certainly seems like they’re killing the more popular product.

3. Give your customers an upgrade path

So now in the aftermath of all of this, what’s the migration strategy? What are the stackoverflows of this world going to do when their architecture is based on L2S. Fortunately for Jeff Attwood and Co., I think they’ve at least abstracted their code into a single DAL layer of the application. This lessens the impact somewhat but still that’s a lot of rework to stay up-to-date with current technologies. Other folks may not be so lucky with how they pass those L2S POCO objects around in their system.

Conclusion

If L2S goes down, I think the biggest thing I will have learnt is to regard every new framework with some level of suspicion. I mean, could the same thing happen to ASP.NET MVC? As far as I know L2S has only 1 dedicated person working on it. How many does ASP.NET MVC have? What’s the roadmap for ASP.NET MVC? Is it well supported by the community? Come to think of it, these are the same kind of questions you’d be asking of any open source project.

I think the overriding point is that if you’re using a framework that will be at the core of your application, you have to be extremely careful of what you choose. I guess I’m re-learning the lesson that a big name behind a technology doesn’t automatically ensure it’s longevity.