200 likes | 436 Views
Entity Framework. Rowan Miller Program Manager Microsoft. What to expect in this session. Mix of level 100-300 content Mostly demos EF6 and EF7 Some previously seen content, some new stuff. Agenda. Where are we at? A quick look at recent and in-flight releases Demos EF6 in action
E N D
Entity Framework Rowan Miller Program Manager Microsoft
What to expect in this session Mix of level 100-300 content Mostly demos EF6 and EF7 Some previously seen content, some new stuff
Agenda Where are we at? A quick look at recent and in-flight releases Demos EF6 in action Where are we going? What EF7 is all about Demos EF7 in action
Versions Entity Framework 7 Runtime out-of-band (NuGet) Tooling out-of-band (Microsoft Download Center) Latest version “chained in” to new Visual Studio releases Entity Framework 6.1.2 Entity Framework 6 -> 6.1.1 Entity Framework 5 Core runtime in .NET Framework Newer runtime pieces out-of-band (NuGet) Tooling in Visual Studio Entity Framework 4.1 -> 4.3 Entity Framework 4 Runtime in .NET Framework Tooling in Visual Studio Entity Framework 3.5 SP1
Recent Releases EF6 Lots of features and bug fixes Ability to ship all of EF out-of-band 23 community contributions EF6.1 A few smaller features 120+ bug fixes 17 community contributions EF6.1.1 57 bug fixes/small features 12 community contributions
Demo Reverse Engineer Code First + Custom Code Generation
Demo Testing with EF6
Entity Framework 7 EF6 supported scenarios Full .NET Framework (ASP.NET & traditional desktop applications) Relational databases EF7 enabling new scenarios New platforms (Windows Phone, Windows Store, etc.) New data stores (Non-relational)
Challenges with current code base Long history going back to the WinFS days Extensive use of older APIs and design patterns Heavy use of APIs not available on all platforms Lots of seldom used code/features Monolithic implementation Unintuitive behaviors woven throughout code base Not optimized for density/devices High memory footprint Tight coupling to relational concepts
What we are doing Lightweight, extensible version of EF Just the commonly used features (and many new features) Built using modern design patterns DbContext and code-based modelling only Not a micro-O/RM Still supports LINQ, change tracking, unit of work, etc. Support relational & non-relational stores Not a high level abstraction over all data stores Provide high level services that are useful on all/most stores Non-common concerns handled by provider extensions
Design principles Keep EF6 patterns Only break from existing patterns where there is good reason Pay per play Simpler apps will require fewer resources Low memory footprint Extensible Simple high level API over building blocks Easy to replace/extend individual building blocks as needed Sensible defaults, less magic Only support magic where it supports long term success
What about EF6 apps? You don’t have to upgrade EF6 is still supported Updates to EF6 will continue (we’ve done EF6.1 and EF6.1.1 in parallel with EF7) Not all EF6 features will be in 7.0.0 We don’t expect everyone to be able to upgrade immediately Upgrade is a key scenario Same concepts, same patterns Some code changes will be needed
Get involved in EF7 Open source http://github.com/aspnet/EntityFramework Nightly builds now available See GitHub Wiki for details
Demo New EF, new places Windows Phone SQLite
Demo New EF, old places WinForms Client/Server query evaluation In-memory data store Azure Table Storage
Links These links and more - bit.ly/EFdotnetConf (case sensitive) Team blog – blogs.msdn.com/adonet Documentation – msdn.com/data/ef EF6 Project – EntityFramework.codeplex.com EF7 Project – github.com/aspnet/EntityFramework Twitter – @efmagicunicorns Facebook – facebook.com/efmagicunicorns