Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

The Mit's Blog

En plus d'intégrer et skier, il sait même écrire !
(Blog de Renaud Comte)

Actualités

SharePoint et l'appel des Web Service : pourquoi pas un peu de Generics/Serialization ?

L'origine de ce post est une remarque très pragmatique de ce cher Sebastien Warin. Travaillant à une des petites fonctionnalités de notre framework interne et du portail Wygwam, il trouvait le call des services SharePoint un peu spartiate.

N'est il pas ???

Du bon vieux flux XML par ci et par la, dans le pur style de SPS 2003

Mais au moins, XML reste la passerelle la plus ouverte non, pas forcement la plus pratique à manipuler.

Surtout en ces périodes PRO objets typés

>>> Ces 2 articles quoi que similaire (1 en VB, l'autre en C#) sont très intéressant. L'idée est de déclarer 3 classes de base qui vont nous permettre via les generics et la serialization de charger directement le flux de sortie du Web Service SharePoint dans de jolies collection de classes bien typées.

Soit :

  • ListItems qui gère les données du noeud de liste ainsi que la sérialisation final
  • Rowdata qui gère les données du noeud enfant
  • BaseListitem qui sert de classe de base à vos propres items

Une fois cette base de code compilé, il vous suffit simplement de faire une classe qui mappe les champs spécifiques de votre liste héritant de la BaseListItem et de la passer en paramètre à votre fonction de sérialisation smile_regular. Du genre (avec la classe MACLASSEListItems)

   spslab.Lists listSvc = new spslab.Lists();
   listSvc.Credentials = new System.Net.NetworkCredential("Administrator", "---------");

   ListItems<MACLASSEListItem> results = null;
   XmlNode resultItems = listSvc.GetListItems(listGuid, string.Empty, null, null, string.Empty, null);
   Console.WriteLine(resultItems.OuterXml);
     
   results = ListItems<MACLASSEListItem>.FromXml(resultItems.OuterXml);
   foreach MACLASSEListItem MAC in results.RowData.ListItems)
   {
            Console.WriteLine(string.Format("Student {0} received a score of {1:##}% on {2} for test '{3}'",
                 ListItems<MACLASSEListItem>.GetDescriptionFromLookupValue( MAC.Student ),
                 MAC.Score * 100, 
                 MAC.TestDate.ToShortDateString(),
                 MAC.Title));
    }

On est déja& un peu plus loin du bon vieux parsing XML non ? Bye bye attribut et xpath
>>>> J'étais sur que ca vous plairait bien !!!

A noter qu'il est toujours bon de se rappeler au souvenir de ce bon ami qu'est le XSD.EXE

Il peut vous faire gagner bien du temps sur la phase de mapping, vraiment.

Mais allons un poil plus loin

Enchaînons donc avec un peu de LINQ for XML

http://weblogs.asp.net/scottgu/archive/2007/08/07/using-linq-to-xml-and-how-to-build-a-custom-rss-feed-reader-with-it.aspx

Voir surtout avec les type anonymes ou vos propres types non ?

Genre

Je vous laisse creuser l'article de Mr Scott, il est parfait comme il est

Que de nouvelle possibilités ...

Que de bonheur en perspective smile_regular

Renaud Comte aka TheMit (J'aime bien les nouveautés des languages .Net)
Member of WygTeam
http://www.wygwam.com

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 25 mars 2008 15:07 par themit

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Emportez votre sélection de la MSDN dans la poche ? par Blog de Jérémy Jeanson le 04-17-2014, 22:24

- [ #Office365 ] Pb de connexion du flux Yammer ajouté à un site SharePoint par Le blog de Patrick [MVP SharePoint] le 04-17-2014, 17:03

- NFluent & Data Annotations : coder ses propres assertions par Fathi Bellahcene le 04-17-2014, 16:54

- Installer un site ASP.net 32bits sur un serveur exécutant SharePoint 2013 par Blog de Jérémy Jeanson le 04-17-2014, 06:34

- [ SharePoint Summit 2014 ] Tests de montée en charge SharePoint par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 20:44

- [ SharePoint Summit 2014 ] Bâtir un site web public avec Office 365 par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 18:30

- Kinect + Speech Recognition + Eedomus = Dommy par Aurélien GALTIER le 04-16-2014, 17:17

- [ SharePoint Summit 2014 ] Une méthodologie simple pour concevoir vos applications OOTB SharePoint de A à Z par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 16:51

- //Lean/ - Apprendre à faire des Apps Windows universelles par Blog de Jérémy Jeanson le 04-16-2014, 12:57

- Une culture de la donnée pour tous… par Le blog de Patrick [MVP SharePoint] le 04-16-2014, 11:00