Uno user control per leggere feed RSS

di Daniele Bochicchio, in ASP.NET, User Controls, C#,

RSS è un formato che permette la syndication di contenuti da risorse esterne, come ad esempio siti web o servizi di notizie, piuttosto che blog.
Questo script, da utilizzare come user control, ritorna comodo perchè è facilmente riutilizzabile.
Basta infatti specificarlo nella pagina in questo modo:

<aspitalia:rss url="miofeed.xml" runat="server" />

e quindi risulta semplice anche per specificarne in un numero maggiore, mantenendo sempre la stessa routine per l'estrazione e la visualizzazione a video.
Ma ecco lo script, da salvare come rss.ascx:

[code lang="aspx"]<%@ Import namespace="System.Data" %>
<SCRIPT RUNAT="SERVER" LANGUAGE="C#">
string Title;
string Description;

// proprietà con l'URL del feed RSS
private string url;
public string Url
{
  set
  {
    url = value;
  }
}

void Page_Load()
{
  // carico i dati in un dataset
  DataSet ds = new DataSet("rss");
  ds.ReadXml(url);

  // estratto titolo e descrzione
  Title = ds.Tables["channel"].Rows[0]["title"] as string;
  Description = ds.Tables["channel"].Rows[0]["description"] as string;

  rss.DataSource = ds.Tables["item"];
  rss.DataBind();
}
</SCRIPT>
<asp:repeater id="rss" runat="Server">
<HeaderTemplate>
<h1><%#this.Title%></h1>
<h3><%#this.Description%></h3>
 </HeaderTemplate>
<ItemTemplate>
<h4><a href="<%# DataBinder.Eval(Container.DataItem, "link") %>">
<%# DataBinder.Eval(Container.DataItem, "title") %></a></h4>
<p><%# DataBinder.Eval(Container.DataItem, "description") %></p>
</ItemTemplate>
</asp:repeater>

Può essere una buona cosa quella di aggiungere, in cima allo user control, la possibilità di tenere in cache i dati, in modo da evitare che ogni richiesta vada a recuperare effettivamente via web il contenuto del feed RSS:

<%@ OutputCache Duration="3600" VaryByParam="None" %>

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi