Développement dans les nuages : vous allez aimer Linq
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
9 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.