The latest version of Entity Framework is much more lightweight than previous versions and can be used across a wide variety of platforms such as Windows Phone and Windows Store.
Entity Framework is Microsoft's recommended data access technology for new applications in .NET and for EF7, aka EF Everywhere, its team set out to it slim down. The idea isn’t that the entire EF stack would be reworked. Instead, APIs that in the current stack are not especially useful and/or hardly ever used would simply be missed out of the lighter weight version, along with more complex and underused features. The thinking is that while EF is a common data access technology for traditional client and server applications such as WPF, WinForms, MVC, WebAPI, WebForms and WCF, there is still some benefit to developers in providing the same programming model for data access on the remaining platforms where .NET development is common (primarily Windows Store and Windows Phone apps).
However, the long history behind the EF code base means there are APIs that would be expensive to provide on modern platforms. In addition, EF wasn’t designed to keep memory use low, and it’s tricky to change it to lower resource usage.
Writing about the plans for EF Everywhere on Codeplex, where this open source project is hosted, Ro Miller, co-ordinator for EF, said that cloud computing is another area where EF’s resource use is problematic:
“EF currently uses a significant amount of resources, even for small models and simple data access. This doesn’t align well with a pay-per-play environment.”
Initially EF Everywhere supports only local data access for Store and Phone apps, using SQLite as the default database provider in view of its position as the most common database choice on devices. A provider model will still be supported so other database providers can be used. Ro Miller said that:
“In the future, things such as remote data access and online/offline syncing are areas we may look into. They are not part of our initial investigation though.”
More details on EF7 were made public this week and can be found on its project page in GitHub. The page currently is mostly source code, but other kinds of info will be added as the project progresses.