Lerman Adx303 Entity Framework 4 In Aspnet

5,217 views

Published on

Julia Lerman
DevConnections Fall 2009 Session
Entity Framework 4 in ASP.NET
www.learnentityframework.com

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,217
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Lerman Adx303 Entity Framework 4 In Aspnet

  1. 1. ADX303: Options for Building ASP.NET Web Sites with Entity Framework Julie Lerman www.thedatafarm.com jlerman@thedatafarm.com
  2. 2. Julie Lerman website theDataFarm.com blog & twitter theDataFarm.com/blog @julielermanVT book web site LearnEntityFramework.com consultant/mentor Microsoft MVP, INETA Speaker, ASPInsider, MCP, VTdotNET Leader
  3. 3. Agenda • Architectural Challenges • EntityDataSource • Dynamic Data • ASP.NET MVC • ObjectDataSource • Architected n-Tier Web Forms
  4. 4. SaveChanges Creates db Commands • Insert Command • From: Current values EntityState = Added • Delete Command • From: EntityKey & FK values EntityState= Deleted • UpdateCommand • From: Current vs. Original EntityState= Modified
  5. 5. Change Tracking Across Tiers ObjectContext Sales Order #1 Line Item A Line Item B Sales Order #2 Line Item C Line Item D detach entities ObjectStateEntry SO1 EntityKey Original Values Current Values Other ∆ Info ObjectStateEntry SO2 EntityKey Original Values Current Values Other ∆ Info ObjectStateEntry LIA EntityKey Original Values Current Values Other ∆ Info ObjectStateEntry LIB EntityKey Original Values Current Values Other ∆ Info Original Property Values EntityState Values
  6. 6. SaveChanges Fails Across Post Backs New Page Class Create New ObjectContext Get Entities Build HTML using Data & ASP.NET Markup Destroy Page and Dependents Page Request New Page Class Create New ObjectContext Process Request Build HTML using Data & ASP.NET Markup Destroy Page and Dependents Post Back #1 New Page Class Create New ObjectContext Get Entities Build HTML using Data & ASP.NET Markup Destroy Page and Dependents Post Back #2
  7. 7. The ASP.net Spectrum with EF Entity Data Source Dynamic Data for Entities Object Data Source ADO.NET Data Services WCF n-Tier Dev Architect MVC
  8. 8. EF4 Changes to the Rescue • Foreign Keys ● Big help for data-binding related objects • POCO Classes & T4 Generation • State Methods ● ApplyCurrentValues, ApplyOriginalValues ● ChangeState ● ChangeRelationshipState (when no FKs)
  9. 9. EntityDataSource Control • RAD • Simple, Drag & Drop • Lots of Event Handlers to tap into Pros • Data access tied to the UI • Constrained by limitations of EDS • Can’t update graphs Cons
  10. 10. Dynamic Data Controls • RAD • Uses EntityDataSource • Dynamically created from entities • Can be customized Pros • Uses EntityDataSource • DataAccess still bound to UICons
  11. 11. ASP.NET Model View Controller • MVC Pattern using Entities as the model • MVC Goal ● Separation of concerns ● Testable • Entities as “Model” • EF4’s POCO entities for better separation
  12. 12. ObjectDataSource Control • Use your own business objects • Repositories to interact with ObjectContext • Lots of Event Handlers to tap into Pros • Classes must comply w ODS rules • Lose ability to work with graphsCons
  13. 13. Classes Queries (Repository B) Tests UI EF Classes in a Repository System.Data.Entity EDM & ObjectContext (Repository A) Mock Context A Mock ObjectSet Mock Context B Julie Lerman Oredev 2009
  14. 14. Basic Pattern for ASP.NET n-Tier Code Behind Business Logic Repository Queries Cache EntityKeys, Scalars (inc FKs) Foreign Keys make this approach a possibility MVC View MVC Controller Model & ObjectContext ASPX
  15. 15. N-Tier ASP.NET • Serious challenges in EFv1 • Help in EF4 ● POCO objects & T4 Code Generation ● Caching gets simpler ● Foreign Keys ● New n-Tier methods • ChangeState, ApplyCurrentValues, ApplyOriginalValues, ChangeRelationship
  16. 16. Caching Considerations • SessionState vs ViewState vs Cache • Cache with Velocity or MemCached • Cache vs Refresh from DB for Updates? • Roll your own? Use a provider? • Anyway you go – it’s still HARD
  17. 17. Summary • ASP.NET provides many ways to use EF • New EF4 features expand possibilities • RAD: Dynamic Data & EntityDataSource • Business Layer “Lite”: ObjectDataSource • MVC Benefits from POCOs • Web Forms n-Tier helped by Foreign Keys
  18. 18. Julie Lerman website theDataFarm.com blog & twitter theDataFarm.com/blog @julielermanVT book web site LearnEntityFramework.com consultant/mentor Microsoft MVP, INETA Speaker, ASPInsider, MCP, VTdotNET Leader
  19. 19. Resources • EF Team Blogs (blogs.msdn.com/) ● adonet, efdesign, dsimmons, adjames, more.. • Danny Simmons’ Aug 2009 MSDN Mag • MS PAG: Data Access Guidance ● dataguidance.codeplex.com

×