Linq, fonctionnement et architecture 3/26/2017 3:56 PM Linq, fonctionnement et architecture Mitsuru FURUTA Relations techniques développeurs mitsufu@microsoft.com Microsoft France Yann FAURE Regional Director yann.faure@bewise.fr Bewise © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Yann FAURE Regional Director yann.faure@bewise.fr Bewise 3/26/2017 3:56 PM Partenaire: Bewise Yann FAURE Regional Director yann.faure@bewise.fr Bewise © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Agenda Introduction Linq to objects Expressions Linq to Sql Linq to Xml
Introduction Language INtegrated Query Le mapping objet-relationnel Une syntaxe simple, des concepts complexes La voie vers les langages fonctionnels Un modèle de requêtage ouvert et extensible Le mapping objet-relationnel Une API Xml Un requêtage universel
Langage Integrated Query Linq to objects Linq to Sql Linq to Entities Linq to Xml Linq to Xsd
Linq to objects Requêtage mémoire sur des graphes d’objets Exécution différée: qu’est-ce qu’une énumération ?
Démonstration Exécution différée
Expressions Délégués, méthodes anonymes et expressions lambdas Arborescence d’expression Compilation
Démonstration Expressions
Linq to Sql Linq to Sql offre: Un requêtage vers les bases Sql exprimé en langage .Net associé à des informations de mapping (attributs ou externalisées (xml)) Un suivi des modifications pour les entités qui implémentent INotifyPropertyChanged Un suivi des ajouts et des suppressions pour les collections qui implémentent IListChanged Une mise à jour vers la base (Create, Update, Delete) de ces entités. Un modèle de provider ouvert pour l’extension vers d’autres bases de données
Linq to Sql Linq to Sql n’offre pas: de modèle de base d’entités ou de collections Ce choix reste libre pour le développeur de schéma de modélisation complexe (transformations) entre la base et les classes Modèle de Linq to Entities
Démonstration Linq to Sql
ou comment travailler avec LINQ sur des données XML ? LINQ to XML ou comment travailler avec LINQ sur des données XML ?
Introduction XML est réellement partout Une nouvelle API pour Informations de configuration Descriptions d’interfaces graphiques Documents bureautiques … Une nouvelle API pour Requêter Lire/Ecrire
Pourquoi une nouvelle API ? Tirer parti des capacités de LINQ Requêtage à la demande Manipulation ensembliste Syntaxe connue Simplification d’écriture Eviter l’apprentissage de XPath XQuery XSLT
Comment ça marche ? Interface Requête LINQ pour filtrer et/ou transformer Objets Vue objet grâce à LINQ To XML Données Fichiers XML ou XmlReader
Eléments essentiels Document : XDocument Balises XML : XElement Attributs XML : XAttributs Espace de noms : XNamespace
Exemple Création d’un bouton WPF XNamespace xamlNS = "http://.../winfx/2006/xaml"; XNamespace wpfNS = "http://.../xaml/presentation"; XDocument x = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XElement(wpfNS + "Canvas", new XAttribute(wpfNS + "Height", 123), new XAttribute(wpfNS + "Width", 456), new XElement(wpfNS + "Button", "Mon bouton !!!")); x.Save(@"c:\test.xaml");
Génération XML version 1 Démonstration Génération XML version 1
ou comment travailler sur des données XML de façon typée ? LINQ To XSD ou comment travailler sur des données XML de façon typée ?
Introduction Projet Microsoft visant à Proposer une programmation XML typée Etre le pendant du mapping O/R : le Mapping X/O Etendre les capacités de LINQ To XML
Quels intérêts ? Augmenter le contrôle à la compilation Erreur ? new XElement(wpfNS + "Buton", "Mon bouton !!!"); Pas d’erreur ! new Button("Mon bouton"); Simplifier l’écriture… Réaliser du mapping
Comment ça marche ? Référencer le schéma Utiliser LINQ To XSD pour générer les classes issues du schéma Utiliser classiquement ces objets pour le requêtage LINQ
Génération XML version 2 Démonstration Génération XML version 2
Questions/Réponses
La référence technique pour les IT Pros : La référence technique technet.microsoft.com 3/26/2017 3:56 PM La référence technique pour les développeurs : msdn.microsoft.com Abonnement TechNet Plus : Versions d’éval + 2 incidents support Visual Studio 2005 + Abonnement MSDN Premium S’informer - Un portail d’informations, des événements, une newsletter bimensuelle personnalisée Se former - Des webcasts, des articles techniques, des téléchargements, des forums pour échanger avec vos pairs Bénéficier de services - Des cursus de formations et de certifications, des offres de support technique © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Votre potentiel, notre passion TM 3/26/2017 3:56 PM Votre potentiel, notre passion TM © 2007 Microsoft France © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.