ADO.NET vNext: The Entity Framework, LINQ and more


Once you are done with shipping large products such as SQL Server 2005 and Visual Studio 2005 you’d expect to have a quiet time for a while, slow down a bit, that kind of stuff…


Turns out that it wasn’t the case this time. Right after SQL Server 2005 and Visual Studio 2005 were ready to ship (and actually even before they were completely done) we started to work hard on the next version of the data programming technologies; we worked on a broad vision that spans various releases and various technologies, and also specifically on how ADO.NET plays in that vision.


In the context of the vision for data programmability and ADO.NET, we decided that the next big step for ADO.NET was to move to a higher-level of abstraction. Connections, commands and readers are great for low-level stuff, but it’s not exactly what you want to be dealing with continuously when writing business logic. There are other aspects that are similarly “low level” and applications have to deal with, like the actual database schemas (e.g. did you even wonder why you have to do a 3-way join just to navigate a relationship between entities instead of just saying “traverse the relationship”?).


Now we’re making public our vision on data programmability, it’s a great read, I highly recommend it.


We’re also making public the specific plans for the next version of ADO.NET, a bit more technical, less formal, but with all the details of how we’re moving the technology forward and describes the ADO.NET Entity Framework, as well as the ADO.NET Entity Data Model (EDM).


The first of a series of Channel 9 videos has been posted – this one features Sam and Anders talking about Entities, LINQ and a few details about how all the stuff fits together.


Feedback on all of this stuff is welcome. I highly encourage folks to check out all of the content we’re putting out there and write us with your thoughts.

Pablo Castro
ADO.NET Technical Lead
Microsoft Corporation

Comments (24)

  1. Bill says:

    Excellent – Got some fun stuff to work on tonight I guess 😉

  2. Pablo – great to see this material up after what was an excellent Tech Ed. I expect your posting and those documents to spawn discussions across the blogosphere :)

  3. NickMalik says:

    One thing that I saw recently in a discussion group that was dealing with the issue: should data sets be used to communicate over a web service… was an argument that went like this: do not use data sets over your web service because there are implied operations that can occur when the dataset gets back to the DAL.   A web service should share contract, not class, so implied operations effectively share class.

    In the document you link to, you are embedding even more capability in the data objects.  Personally, I think this is a plus.  However, how would you answer the argument that one should not communicate structures composed by these objects over a web service for fear of breaking a cardinal rule of SOA?

  4. Glad to see that the veil has been lifted (and hope these links stay valid longer than the last ones) 😉

  5. Pablo Castro re-announced the Entity Framework. The white papers are up again.

    A lot of people have…

  6. Diego Vega says:

    Pablo, I hope the first video that showed you and your mates will be back soon in Channel 9, so I will be able to see the part that I missed.

    Regarding the documentation, I already finished with the overview document. It was a very good read and I think the Entity framework is excellent. Actually, I wish the bits were available so I could use them on a project I am starting right now. Instead we will resort to a clumsy mix of typed datasets and custom entity classes.

    Because I cannot play with the bits I can only infer some feedback, mostly from pitfalls of previous technology that would be important to avoid in mapping file of the ADO.NET Entity Framework:

    – Current typed datasets don’t scale very well at least at design time. It is about the tools included in Visual Studio. They are not very usable beyond a few datatables.

    – Datasets are difficult to share: if you include all your tables in a single xsd file, it and the derivative files become difficult to share among developers of the same team, who need to modify the file very often but usually find it is checked – out but others.  If you decide to partition the tables in multiple datasets, then the difficulty is what criteria to use for the partition.

    – Very simple schema changes lead to crashes.

    – There is no way to logically combine datasets that are distributed in multiple files.

    – There is virtually no database engine independence story in typed datasets.

    – The formats used in datasets are not open standards.

  7. Justin Magaram says:

    I’m wondering how this new modeling approach compares to Object Role Modeling, of which I am a big fan.

  8. B# .NET Blog says:

    Rather calm on my blog lately due to a high workload. So, let’s give a little overview of some recent…

  9. Hi – I’m Shyam Pather, Development Lead on ADO.NET vNext team.

    I’m incredibly excited to share…

  10. timmall says:

    On the question of LINQ-Entities and Services…

    We are working on infrastructure that allows you to still share schema and contract and have consumer-side generative solutions or forward deployment scenarios if you so desire.

    We have a construct known as a changeset which is an interoperable contract for expressing changes to instances of types (which may or may not be entities). We also have plans for attaching and dettaching to an ObjectContext so that we can facilitate conversational interaction with stateless services built on top of our stack.

    The current planned work around services will not be in our first CTP but we want to make sure that we have a meaningful, interoperable story for both EDM aware and heterogeneous consumers of services from our stack when we release. We will make more details on this effort available in due course.

    Tim Mallalieu

    Program Manager

    Data Programmability Team

    blogs.msdn.com/timmall

  11. In case you missed it, Somasegar (Microsoft’s VP of Developer Division) blogged today about some of the…

  12. Just some stuff I’ve noticed floating about and I think is worthy of note:

    Pablo Castro points to…

  13. If you write database applications using ADO.NET (which means almost everyone is still reading this),…

  14. Dennis says:

    I really like the automatic joins. And i also like the EDM.

    But how is this different from Typed DataSets? Are we going to get yet more generated files that we can’t change?

    Can we only map to tables and not Stored Procedures?

    Will mapping be supported only by XML-files, of maybe also by Custom Attributes?

  15. bill xie says:

    Seems that Microsoft is attempting to introduce several new query languages to resolve impedance between SQL and Object. But I really doubt that it will become success.

    1. Can these new query languages fully replace T-SQL? Otherwise, developers have to use T-SQL, so why they bother to learn a new language? I suggest that incorporate more support in design tools to fully enable T-SQL for developers.

    2. Entity modeling could fully replace relational modeling? Describing relationship could bring developers additional efforts. For simple applications they will not choose such complex method. For complex application they would choose to stay with relational modeling.

    3. Enterprise application would exptect more disciplinary than languge-level flexibility.

  16. Since announcing our ADO.NET vNext plans at TechEd last week, the team has been on the lookout for your…

  17. (this post was originally posted here)

    Once you are done with shipping large products such as SQL…

  18. (this post was originally posted here)

    Since announcing our ADO.NET vNext plans at TechEd

  19. Today Microsoft has released the first CTP of ADO.NET vNext, which is an important milestone in the data…

  20. Here are some useful links to LINQ information. Core Microsoft LINQ Sites · Try it yourself: download

  21. Here are some useful links to LINQ information. Use the comments or write me if you want to add to this