Linq to Sql is dead. Did you abstract well?

Here's an update
on the roadmap
for Linq2Sql. The post is pretty much confirming that they're
killing off the project.

A project we started recently, we had to make a choice of which ORM to use.
Since Entity Framework wasn't still up to par (and in certain aspects probably
still isn't), and the team had experience with Linq2Sql, we decided to use that.
However, from day one, we made a conscientious choice of not leaking anything of
L2S into our domain objects.

This meant that we didn't use the L2S objects, but in turn used our own POCO
classes. Therefore the sole purpose of L2S was to map data from the DB, what the
job of an ORM is. Recently, and before the announcement, we found a lot of
shortcomings when working with L2S and aggregate roots (I won't get into the
details since Steve is planning a
series of posts on the subject and how to handle aggregate roots with the
different existing ORM's). We've therefore decided to switch ORMs. The beauty of
it is that because of the clear abstraction of L2S, it's going to be very easy
to swap out L2S for another ORM.

Now that we have confirmation that L2S isn't going anywhere, if you have
issues with the current version and were hoping to get them resolved in a future
release, I guess you're out of luck. So the time comes to move on. If you've
abstracted well, it shouldn't hurt that much.

Obviously if you don't have issues with L2S and no projections on needing new
features, then stick to what you have. "If it ain't broken, don't fix it". But
don't start any new projects with it. Even Microsoft don't recommend it
anymore.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s