Cloud Computing @ Microsoft France

Le système d'informationset les nuages

Développement dans les nuages : vous allez aimer Linq

Développement dans les nuages : vous allez aimer Linq

  • Comments 1

A l'occasion de la réalisation d'une maquette, je découvre combien l'utilisation de Linq permet de nous faciliter la tache : voici une dizaine de lignes, comment publier les 15 derniers billets de trois blogs au travers d'un nouveau flux RSS.

1



2
3
4
5



6


7








8


   10       11

string[] urls = {"http://blog.sfartz.com/feed/rss2",
          "http://blogs.msdn.com/ssfartz/rss.xml",
          "http://blogs.msdn.com/cloudcomputing/rss.xml"};

List<SyndicationFeed> feeds = new List<SyndicationFeed>();
foreach (string url in urls) {
    using (XmlReader feedReader = XmlReader.Create(url)) {
        feeds.Add(SyndicationFeed.Load(feedReader));
    }
}

DateTime minDate = DateTime.Now.AddDays(-30);

var mashedItems =
    from feed in feeds
    from item in feed.Items
    where item.PublishDate > minDate
    orderby item.PublishDate descending
    select item;

// Et maintenant restituons les 15 derniers billets sous forme d'un flux RSS

SyndicationFeed mashedFeed = new SyndicationFeed(mashedItems.Take(15));

using (XmlWriter writer = XmlWriter.Create(context.Response.OutputStream)) {
      context.Response.ContentType = "text/xml";
      mashedFeed.SaveAsRss20(writer);
}       

Ce code est exécutable dans des applications Serveur, Client Windows et Client Web :

  • Serveur et Client Windows : à partir de la version 3.5 du framework .Net
  • Client Web : à partir de la version 2 de SilverLight (en beta 1 actuellement)

Pour découvrir l'ensemble du code (jusqu'à l'affichage du flux RSS dans un espace Web SilverLight personnalisable) et pour parcourir d'autres exemples guidés, consulter les labs SilverLight.