La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

DataBinding avancé Mitsuru FURUTA, relations techniques développeurs –

Présentations similaires


Présentation au sujet: "DataBinding avancé Mitsuru FURUTA, relations techniques développeurs –"— Transcription de la présentation:

1 DataBinding avancé Mitsuru FURUTA, relations techniques développeurs mailto:mitsufu@microsoft.commailto:mitsufu@microsoft.com – http://blogs.microsoft.fr/mitsufuhttp://blogs.microsoft.fr/mitsufu Pierre LAGARDE, relations techniques développeurs mailto:pierlag@microsoft.com - http://blogs.developpeur.org/fox mailto:pierlag@microsoft.comhttp://blogs.developpeur.org/fox Présentation technique, Paris, 28 septembre 2005

2 Agenda Introduction Les sources de données Le modèle ASP.NET (v1 et v2) Le modèle WinForms Conclusion

3 Introduction Pourquoi cette technologie ? Architecture en couches Contrôles génériques Liaison bidirectionnelle Contrôleur de type MVC Contrat nécessaire entre les contrôles et les sources de données Les sources de données Implémentation d’interfaces communes définissant le modèle Les éléments simples et les collections TypeDescriptor, notion de vue Les contrôles Connexions aux vues et aux interfaces de binding

4 Démo Démo 1: Helloworld… …ou presque

5 Introduction Ca marche tout seul Binding sur objets Binding sur collections Binding en mode design Binding == Reflection ?

6 Les sources de données Mise en évidence des TypeDescriptors Interception d’un changement de valeur Personnalisation de la vue d’un objet Ajout d’une propriété Champ calculé Objet clone Les collections Fonctionnement de base: array, generics Personnalisation de la vue depuis la collection (ITypedList) OnCalc Objets « relais »: DataView, BindingSource, ObjectDataSource L’interface IBindingList Ajout d’un élément virtuel Le cas du DataSet

7 Les sources de données, les TypeDescriptors Du Type au TypeDescriptor TypeDescriptor.GetProperties(type) Rôle des PropertyDescriptors: Définit la vue d’une propriété (nom, type, etc) Fournit un accès à la valeur de chaque propriété lecture et en écriture Possibilité de se brancher aux évènements (Changed)

8 TypeDescriptor Customer •Id •Name •CompanyName •IsPartner •Id •Name •CompanyName •IsPartner TypeDescriptor •Id •Name •CompanyName •IsPartner •Id •Name •CompanyName •IsPartner DataBinding Reflection

9 Démo Démo 2: mise en évidence du TypeDescriptor

10 Les sources de données, personnalisation de la vue d’un objet L’interface ICustomTypeDescriptor GetProperties() permet la réécriture de la vue d’un objet propriété par propriété. (via les PropertyDescriptors) Différence entre TypeDescriptor.GetProperties(object) et TypeDescriptor.GetProperties(type) TypeDescriptor.GetProperties(object) renvoie les PropertyDescriptors éventuellement réécrites par ICustomTypeDescriptor TypeDescriptor.GetProperties(type) renvoie les PropertyDescriptors du type de base sans tenir compte d’une éventuelle implémentation d’ICustomTypeDescriptor

11 ICustomTypeDescriptor Order •OrderId •Amount •OrderId •Amount ICustomType Descriptor •OrderId •Amount •OrderId •Amount DataBinding Reflection •Fake

12 Les sources de données, ICustomTypeDescriptor

13

14 Démo Démo 3: ajout d’une propriété virtuelle

15 Les sources de données, « la guerre des clones » Création d’un objet à la vue entièrement paramétrable Réécriture complète de l’ensemble des PropertyDescriptors Mise en place d’une collection de définitions de propriétés

16 ICustomTypeDescriptor CustomTypeObject •Properties[] ICustomType Descriptor DataBinding Reflection •Name •Text •Anything •Name •Text •Anything •Name •Text •Anything •Name •Text •Anything

17 Démo Démo 3 bis: vue dynamique

18 Les sources de données, les collections Modifier la vue d’un objet depuis une collection Permet d’être indépendant de la définition de l’objet Permet de faire des modifications propre à la présentation L’interface ITypedList GetItemProperties(): redéfinit la vue des éléments de la collection Attention aux listes hétérogènes ! Le type des éléments n’est testé qu’une seule fois (TypeDescriptors uniques !)

19 Les sources de données, ITypedList Collections: ArrayList, générics, … •Id •Name •CompanyName •IsPartner •Id •Name •CompanyName •IsPartner ITypedList •Id •Name •CompanyName •IsPartner •Id •Name •CompanyName •IsPartner DataBinding Reflection •Fake Items[]

20 Les sources de données, ITypedList

21 Démo Demo 4: ajout d’une propriété virtuelle à une collection

22 Démo Demo 5: ajout d’un item virtuel à la vue

23 Les sources de données Pourquoi IListSource ? Palier au manque de délégation d’implémentation d’interface

24 Les sources de données Le cas du DataSet

25 Le modèle WinForms La classe System.Windows.Form, support du moteur de Binding Les managers PropertyManager CurrencyManager L’objet BindingContext

26 Le modèle ASP.NET


Télécharger ppt "DataBinding avancé Mitsuru FURUTA, relations techniques développeurs –"

Présentations similaires


Annonces Google