The relationship between Entity Framework 4 betas and ctps explained

There seems to be enough confusion about the betas and ctps of Entity Framework 4 to warrant a brief post. Hopefully this should clear things up nicely.

Put simply:

  • Most of Entity Framework 4 (EF4) will ship with .NET Framework 4 and Visual Studio 2010 (.NET4/VS2010), however not all of it will.
  • Most of EF4 is therefore in the beta releases of .NET4/VS2010, however not all of it is.
  • The missing bits of EF4 appear in EF4 Feature CTP releases “soon after” the release of a beta.

Right now (Nov 6th 2009), we have:

  • A fairly old .NET4/VS2010 Beta 1 + Entity Framework Feature CTP 1. CTP 1 only works with Beta 1.
    • CTP1 adds:
      • Self Tracking Entities
      • POCO Templates
      • Code Only
  • A very recent .NET4/VS2010 Beta 2 + Entity Framework Feature CTP 2. CTP 2 only works with Beta 2.
    • CTP2 was released 4th Nov 2009
    • CTP2 adds:
      • Lots of new stuff to Self Tracking Entities
      • Lots of new stuff to Code Only
      • Does not include the POCO Template from CTP 1

The missing POCO template stuff will be resolved in a future CTP.

Beta 2 of EF 4 added a fair amount of new features, as does CTP 2. Therefore the obvious right choice to go with is Beta 2 + CTP 2 – but expect breaking changes to your code. I haven’t tried looking into taking the CTP1 POCO stuff onto Beta 2 but it should be doable. However the “in built” POCO support in Beta 2 is far better than Beta 1, hence (I assume) not all the templated code is now needed.

P.S. In case you were wondering, I am doing my TechEd session using Beta 1 + CTP 1 as Nov 4th was just too late for me to switch over plus I didn’t really have any space in the session for the new Beta 2/CTP 2 stuff anyway!