novembre
2009
Deuxième session de la journée consacrée aux avancées de Entity Framework dans le .NET Framework 4.
Au programme pas mal de nouveautés, la plupart demandées par la communauté :
- Objets POCO
- Templates T4
- Création de test unitaires facilité via VS 2010
- Customization de la méthode SaveChanges (passée virtual)
- Tracking des objets amélioré
- Amélioration du SQL généré
- « Plurielisation » des propriétés (comme on trouvait dans Linq 2 SQL)
- Lazy Loading
- Présence des clés étrangères dans les classes et non plus seulement une référence vers l’entité (évite des requêtes SQL superflues)
Concernant l’amélioration du tracking, la démo nous présente un exemple avec des données récupérées puis mise en cache dans un fichier XML et avec finalement une tentative de sauvegarde en base après relecture du fichier.
Auparavant il fallait passer par un petit hack comme l’utilisation d’une méthode d’extension type SetAllModified<T> que l’on peut trouver un peu partout sur le net. Maintenant il suffit d’une ligne de code pour se passer de cette technique.
context.ObjectStateManager.ChangeObjectState(object, state);
Pour l’amélioration du SQL généré l’exemple passe par une requête LINQ simple recherchant des données commençant par un caractère donné. Le speaker nous a d’abord montré le code généré par EF avec .NET 3.5, puis celui généré par EF avec .NET 4 : le résultat est sans appel, on n’a plus honte de montrer ce code au DBA (dixit le speaker) !
D’autres améliorations ont été montré rapidement, comme un support des modèles edmx dans la fenêtre Source de données de Visual Studio. Un simple drag&drop sur un contrôle WPF permet de binder ce contrôle à une des tables de notre modèle de données.
Une autre nouveauté concernant l’appel de SQL par le code via la méthode ExecuteStoreQuery.
L’exemple passe par la création d’une classe Result possédant deux propriétés Id et Name, et d’une ligne de SQL requêtant la table sys.objectmodel (quelque chose dans le genre) :
select object_id as Id, Name
from sys.objectmodel
L’appel se fait de cette manière
context.ExecuteStoryQuery<Result>(sql);
Le résultat sera un IEnumarable<Result> : cette méthode a converti le résultat de notre requête en objet de type Result !!
Ce fut tout pour cette session plutôt intéressante.
Vous pouvez télécharger les CTP de EF et de .NET 4 dès aujourd’hui.
Blog à voir : http://blogs.msdn.com/adonet/
Merci à Techtra, pour cet évènement.
Partenaire Or Microsoft et membre prestige du Excellence Gold Partner Program de Microsoft, Techtra est une entreprise privée qui se démarque par son expertise inégalée dans les domaines de la gestion de documents, de contenus, d’automatisation de processus d’affaires, d’intranets, d’intelligence d’affaires et de développement d’applicatifs avec la plateforme SharePoint de Microsoft. Fort de ses 19 années d’expérience dans ces domaines d’affaires, Techtra offre des services de développement, de consultation d’intégration et de développement applicatifs sur Sharepoint. Ses services, produits et solutions d’affaires sont disponibles à travers le monde via un réseau de partenaires stratégiques. http://www.techtra.ca