KEMBAR78
Entity Framework Code First End to End | PPTX
ENTITY FRAMEWORK
CODE FIRST
END TO END
Sergey Barskiy
Architect, Tyler Technologies
INTRODUCTION TO EF
• ENTITY FRAMEWORK IN MICROSOFT’S ORM TOOL
• HAS BEEN OUT SINCE 2008
• CODE FIRST HAS BEEN OUT SINCE 2011
WHY ENTITY FRAMEWORK CODE
FIRST
• ORM
• CODE / TYPE SAFETY
• RAPID APPLICATION DEVELOPMENT AND PROTOTYPING
• SUPPORTED AND DEVELOPED BY MICROSOFT
• CONTINUOUS COMMITMENT FROM MICROSOFT
• OPEN SOURCED
• TESTABLE
• FLEXIBLE / CONVENTIONS AND CONFIGURATIONS
APPROACHES
• DAL?
• BUSINESS LAYER?
• UI?
SEPARATION OF CONCERNS
• EF IS DAL TECHNOLOGY
• ISOLATION FROM OTHER LAYERS
• PATTERNS
• REPOSITORY
• DATA MAPPER
• TABLE DATA GATEWAY
• ROW DATA GATEWAY
• DATA MAPPER
DAL STRATEGY
• KEEP DATA (TABLE) OBJECTS CLEAN
• SEPARATE DATA ACCESS FROM DTOS
• CREATE ACCESS INTERFACE
• EXPOSE DATA ACCESS IN A SERVICE LAYER WITH
BUSINESS OBJECTS
• USING MAPPERS TO CUT DOWN ON CODE
DEVELOPING MODEL
• CONFIGURATION OPTIONS
• CONFIGURATION CLASSES
• ATTRIBUTES?
• HANDLING RELATIONSHIPS
• RELATIONSHIP TYPES
• USING FOREIGN KEY COLUMNS
• USING COMPLEX TYPES
• LEGACY DATABASES / EXPLICIT MAPPINGS
HANDLING SCHEMA CHANGES
• CODE FIRST MIGRATIONS
• CREATE DATABASE
• MAINTAIN SCHEMA
• COMMAND LINE MIGRATIONS
• EXPLICIT VS. IMPLICIT MIGRATIONS
• INITIALIZERS (FOR RAPID PROTOTYPING)
• MIGRATING INITIALIZER
CREATING DATA ACCESS LAYER
• REPOSITORY PATTERN
• MEDIATES BETWEEN THE DOMAIN AND DATA MAPPING
LAYERS USING A COLLECTION-LIKE INTERFACE FOR
ACCESSING DOMAIN OBJECTS.
• INTERFACE BASED REPOSITORY
• CQRS
• WRITE VS. READ REPOSITORY
• TAKING DEPENDENCY ON IQUERYABLE?
WORKING WITH VIEWS AND
STORED PROCEDURES
• EF IS NOT ALL-OR-NOTHING ANSWERS
• WRITING CLASSES FOR MATERIALIZATION
• AVOIDING SQL INJECTION
PERFORMANCE
• CACHING CONTEXT
• WEB ENVIRONMENTS
• CRUD EFFICIENCIES
• UPDATE
• DELETE
• SELECT
• LAZY LOADING
• BEWARE OF MULTIPLE QUERIES
DEMO SOLUTION
• ASP.NET MVC
• LAYER SEPARATION VIA PROJECTS
WHAT’S NEW IN EF 6
• ASYNCHRONOUS SUPPORT
• CONNECTION RESILIENCY
• IMPROVED PERFORMANCE
• MANY MORE
CONTACT INFO
• SERGEY@BARSKIY.COM
• WWW.DOTNETSPEAK.COM

Entity Framework Code First End to End

  • 1.
    ENTITY FRAMEWORK CODE FIRST ENDTO END Sergey Barskiy Architect, Tyler Technologies
  • 2.
    INTRODUCTION TO EF •ENTITY FRAMEWORK IN MICROSOFT’S ORM TOOL • HAS BEEN OUT SINCE 2008 • CODE FIRST HAS BEEN OUT SINCE 2011
  • 3.
    WHY ENTITY FRAMEWORKCODE FIRST • ORM • CODE / TYPE SAFETY • RAPID APPLICATION DEVELOPMENT AND PROTOTYPING • SUPPORTED AND DEVELOPED BY MICROSOFT • CONTINUOUS COMMITMENT FROM MICROSOFT • OPEN SOURCED • TESTABLE • FLEXIBLE / CONVENTIONS AND CONFIGURATIONS
  • 4.
  • 5.
    SEPARATION OF CONCERNS •EF IS DAL TECHNOLOGY • ISOLATION FROM OTHER LAYERS • PATTERNS • REPOSITORY • DATA MAPPER • TABLE DATA GATEWAY • ROW DATA GATEWAY • DATA MAPPER
  • 6.
    DAL STRATEGY • KEEPDATA (TABLE) OBJECTS CLEAN • SEPARATE DATA ACCESS FROM DTOS • CREATE ACCESS INTERFACE • EXPOSE DATA ACCESS IN A SERVICE LAYER WITH BUSINESS OBJECTS • USING MAPPERS TO CUT DOWN ON CODE
  • 7.
    DEVELOPING MODEL • CONFIGURATIONOPTIONS • CONFIGURATION CLASSES • ATTRIBUTES? • HANDLING RELATIONSHIPS • RELATIONSHIP TYPES • USING FOREIGN KEY COLUMNS • USING COMPLEX TYPES • LEGACY DATABASES / EXPLICIT MAPPINGS
  • 8.
    HANDLING SCHEMA CHANGES •CODE FIRST MIGRATIONS • CREATE DATABASE • MAINTAIN SCHEMA • COMMAND LINE MIGRATIONS • EXPLICIT VS. IMPLICIT MIGRATIONS • INITIALIZERS (FOR RAPID PROTOTYPING) • MIGRATING INITIALIZER
  • 9.
    CREATING DATA ACCESSLAYER • REPOSITORY PATTERN • MEDIATES BETWEEN THE DOMAIN AND DATA MAPPING LAYERS USING A COLLECTION-LIKE INTERFACE FOR ACCESSING DOMAIN OBJECTS. • INTERFACE BASED REPOSITORY • CQRS • WRITE VS. READ REPOSITORY • TAKING DEPENDENCY ON IQUERYABLE?
  • 10.
    WORKING WITH VIEWSAND STORED PROCEDURES • EF IS NOT ALL-OR-NOTHING ANSWERS • WRITING CLASSES FOR MATERIALIZATION • AVOIDING SQL INJECTION
  • 11.
    PERFORMANCE • CACHING CONTEXT •WEB ENVIRONMENTS • CRUD EFFICIENCIES • UPDATE • DELETE • SELECT • LAZY LOADING • BEWARE OF MULTIPLE QUERIES
  • 12.
    DEMO SOLUTION • ASP.NETMVC • LAYER SEPARATION VIA PROJECTS
  • 13.
    WHAT’S NEW INEF 6 • ASYNCHRONOUS SUPPORT • CONNECTION RESILIENCY • IMPROVED PERFORMANCE • MANY MORE
  • 14.