04 - [asp.net core] entity framework core
Post on 21-Feb-2017
58 Views
Preview:
TRANSCRIPT
Entity Framework Core
Comment s’appelle le machin en question ?
Entity Framework Everywhere
Entity Framework 7 (EF7)
Entity Framework Core (EF Core)
1 C’est quoi, EF Core ?
2 EE EEEE EE EE6
3 EEEEE
Entity Framework 3.5 SP1
Entity Framework 4
Entity Framework 4.x
Entity Framework 5.x
Entity Framework 6.x
Entity Framework 6.2
Entity Framework CoreRuntime : NuGetTooling : Microsoft Download Center(Dernière version incluse dans Visual Studio)
Nouveaux composants de runtime : NuGetComposants historiques de runtime : .NETTooling : livre avec Visual Studio
Composants de runtime : .NETTooling : livré avec Visual Studio
Comment est déployé Entity Framework ?
De nouvelles plateformes
.NET FRAMEWORK .NET CORE XAMARINAP
PM
ODEL
SBA
SELI
BRAR
IES
Base Class Library Core Library Mono Class Library
ASP.NET
Windows FormsWPF UWP
ASP.NET Core*
iOSAndroid
Compilers Languages Runtime components
COMMON INFRASTRUCTURE
OS XEF CoreEF6.x
De nouveaux providers
EF Core n’est plus vraiment un ORM, puisqu’il ne gère plus seulement le monde relationnel.
Microsoft.EntityFrameworkCore
Bases relationnelles• SQL Server• PostGreSQL• SQLLite• SQLCompact
NoSQL• Redis• Azure Table
Storage
In memory
Services communs à toutes / une majorité de plateformes
• Métadonnées• Unit of Work• Repository• Change tracking• Génération de SQL
NB : EF 1.0 ne comprend que les providers relationnels et in memory
Légèreté et extensibilité
Une API de haut niveau basée sur un coeur modulaire• DbContext et DbSet = métadonnées, change tracking, génération de SQL, unit of work et
repository
EF Core est développé sous la forme d’une collection de services• Assemblage suivant les principes de l’injection de dépendances• Chaque service est facile à utiliser, remplacer et étendre
Consommation faible en ressources mémoire et CPU• C’est assez important quand on pense devices mobiles et cloud
Mécanisme pay-per-play : j’utilise uniquement ce dont j’ai besoin
EF Core vs EF6
EF Core tient compte de son historique :• L’API de haut niveau ne change pas fondamentalement par rapport à
EF6• Les choses ne changent pas pour le simple fait de changer
… mais n’est pas contraint par ce dernier• Réécriture complète• Le cœur n’a plus rien à voir avec l’ancien• Toutes les fonctionnalités d’EF6 ne seront pas portées
EF Core vs EF6
EF6 est stable et mûr• 8 ans depuis la v1.0• Un écosystème de providers riche• Continuera d’être supporté et maintenu
EF Core est une vraie v1.0• Couverture fonctionnelle encore incomplète• Sa première version ne vient qu’avec quelques providers
EF Core vs EF6
EF6 continue d’être un bon choix pour beaucoup d’applications.
Réfléchissez bien avant d’adopter EF Core• Des fonctionnalités non-encore implémentées (mapping vers des procédures
stockées, données spatiales, visualisation graphique du modèle…)• La base de code est récente ! Le traducteur Linq > SQL n’est pas encore au niveau
d’EF6.
Passer d’EF6 vers EF Core est une migration, pas une mise à jour• Les projets simples seront faciles à migrer• Certaines API ont radicalement changé• Attention aux différences de comportement entre API nommées de façon similaire
Démos
EF Core 101
Démos
Performances améliorées
Démos
API de métadonnées
simplifiée
Démos
Extensibilité
Top Level APIDbContext, DbSet, ChangeTracker, Database, etc.
Core ServicesStateManager, CompiledQueryCache, etc.
Database Provider ServicesSqlServerTypeMapper,
SqlServerSqlGenerationHelper, etc.
Démos
Un modèle, plusieurs
plateformes
Démos
Un modèle, plusieurs bases de
données
Démos
Amélioration de la génération de SQL
top related