ADO.NET data services, WCF and Entity Framework

By Anoop Madhusudanan

Vote on HN

This weekend I was doing some digging around ADO.NET data services, WCF and Entity Framework
ADO.NET Data Services:
You can use ADO.NET Data services (you need SP1) to expose your Entity framework over the wire, with almost zero code. But as I understand, the only limitation is, the transaction is over HTTP, and at this point, I can't find any solid way of exposing data services over net.tcp.

That means, there is a small over head in terms of serialization (we all know binary serialization is faster), but the advantage is the speed of implementation for our services. We don't really need to write any services at all - You can just hook our validation and security logic around the data services and entity framework and we are done. Ideal if you are consuming data centric services over http - in scenarios like having a silverlight client, or a winform/wpf front end over http. Also on the con side - you should be aware that you can't put any serious business logic or work flow inside services 
Exposing Entity Framework over WCF:
With SP1, there is lot of support for employing entity framework in layered architectures. This includes support for eager loading and context management. Of course, in this case, you need to write the services (and the logic behind your methods). 
Recommending you to read this MSDN article from John which provides an end to end example for demonstrating Entity framework with a layered architecture.
Another alternative might be to use EFPocoAdapter , to have a plain POCO wrapper on top of the entity framework for dtos, instead of exposing entity framework classes directly. Right now it is a compass project for next version of Entity framework. 
Performance Differences

I got an unofficial word from John  on this - "Definitely more options with wcf. More work in most cases too. Astoria exposes entities easily. Perf diffs are negligible in most cases"

Well, sounds interesting !!

No comments:

Post a Comment

Please keep your comments clean.

© 2012. All Rights Reserved.