Vous avez un site, et vous aimerez lui ajouter un feed RSS pour afficher les derniers articles ? rien de plus simple grace à la librairie RSS.net !
La site du projet RSS.net est ici www.rssdotnet.com il y a sur le site des exemples qui vont montreront comment demarrer ici :
http://www.rssdotnet.com/documents/code_examples.html et pour telecharger cette dll c'est ici :
http://rss-net.sourceforge.net/RSS.NET.tar.gz . Et oui, il vous faut compiler le code pour recuper la dll.
La page d'exemple est suffisamment bien faites pour me passer d'un exemple, mais la librairie est hyper simple d'utilisation.
Ce qui est par contre un peu plus interessant, c'est la mise en cache du feed. Je pensais rajouter un bête
<%@ OutputCache Duration="20" VaryByParam="none" %>
au dessous de la directive page, mais non ! ca n'a pas voulu marcher, surement car on efface toute la page dans le code.
On va donc utiliser une autre solution, l'objet Cache.
Comment cela fonctionne ? tout betement evidemment
Cache.insert("clé de la variable", objet, CacheDepency, Date d'expiration, durée de vie relative)
les deux premiers paramètres n'ont pas besoin d'explication, le 3ème sert à actualier le cache, si l'objet passé en paramètre change, le 4eme et la date d'expiration, et le dernier param actualise le feed si le cache n'a pas été chargé depuis ce temps. un exemple vous avez mis 5 min, on se sert du cache 6min apres la derniere fois qu'il a servis on le reactualise et est bon pour au moins 5 min, on va voir le cache 4 min apres, on ne reactualise pas le cache, et il ne sera pas actualisé avant 5min.
pour lire le cache c'est tout simplement
objet = cache("clé")
Pour le code ci dessous, j'ai repris le code de l'exemple est rajouté un cache de 20min
Source / Exemple :
Dim channel As New RssChannel
channel.LastBuildDate = Now.ToUniversalTime
channel.Language = "Fr"
channel.Title = "My channel's title"
channel.Description = "My channel's description"
Dim feed As RssFeed
If Me.Cache("feedTwentyLatestNews") Is Nothing Then
Dim row As ExampleData.NewsRow
For Each row In exampleData.News.Rows
Dim item As New RssItem
item.Title = row.news_title
item.Description = row.news_description
item.PubDate = row.news_date.ToUniversalTime
channel.Items.Add(item)
Next
feed = New RssFeed
feed.Channels.Add(channel)
feed.Encoding = System.Text.Encoding.Default
Me.Cache.Insert("feedTwentyLatestNews", feed, Nothing, New Date(Now.Ticks + New TimeSpan(0, 20, 0).Ticks), New TimeSpan(0))
Else
feed = CType(Me.Cache("feedTwentyLatestNews"), RssFeed)
End If
Response.ContentType = "text/xml"
feed.Write(Response.OutputStream)
Response.End()
Conclusion :
Pour ajouter la dll, dans votre site web, il vous faut la mettre dans le repertoire bin de l'application web, sous VS.net cliquer droit sur reference puis ajouter une reference, parcourir jusqu'a la dll, et c'est bon.
n'hésiter pas à laisser vos commentaires
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.