lunedì 25 aprile 2022

C# la gestione dei RSS in .Net 6

Si riporta l'articolo scritto per il sito C# la gestione dei RSS in .Net 6 | Microsoft .Net (iprogrammatori.it) 

In questo articolo vedremo come gestire con il nuovo Framework 6 ed il linguaggio di programmazione C# i siti di tipo RSS per la gestione delle notizie.

In particolare vedremo come leggere gli ultimi articoli pubblicati del sito “Iprogrammatori” il quale “RSS” per gli articoli si trova a questo indirizzo https://www.iprogrammatori.it/rss/articoli.xml mentre dal seguente sito https://www.iprogrammatori.it/rss/feedrss.aspx per altre categorie.

In particolare vedremo come realizzare un progetto di tipo “Windows Application” che riporterà il titolo, la descrizione ed il sito degli ultimi articoli, il tutto come mostrato in figura 1.

Figura 1 – La maschera con gli ultimi articoli pubblicati



Creazione del progetto

Tramite l’ambiente di sviluppo “Visual Studio 2022 o versione successive, si crea un nuovo progetto di tipo “App Windows Forms” con la versione del Framework 6, selezionando come linguaggio di programmazione C#.

Si aggiunge alla form, un controllo di tipo Label, un controllo di tipo “Textbox” con la propretà “Name” impostata su “TxtSitoRSS” il quale controllo servirà ad inserire i siti di tipo RSS, un controllo di tipo “DataGridView” con la proprietà “Name” imposta su “DtgDati” che contiene le informazioni della lettura del RSS, quale titolo, descrizione e sito, ed infine un controllo di tipo “Button” impostando la proprietà “Text” su “Carica” e la proprietà “Name” con il valore “BtnLeggi” il tutto come mostrato in figura 1.

Il pulsante contiene tutto il codice per la lettura del RSS e caricamento dei dati nel controllo datagridView.


Stesura del codice

Ora passiamo alla stesura del codice, per la gestione dei RSS.

Passiamo in visualizzazione codice della form ed in alto, sopra ad ogni dichiarazione, dobbiamo aggiungere i namespace per la gestione dei RSS, del caricamento dei dati nel controllo DataGridView e la gestione dei file XML.

Qui di seguito si riporta il frammento delle suddette operazioni e dichiarazioni.

C#

using System.Data;

using System.ServiceModel.Syndication;

using System.Xml;


Ritorniamo in visualizzazione grafica della nostra form, e facciamo doppio click sul pulsante in modo che passiamo in visualizzazione codice dell’evento click del pulsante.

Nell’evento click, dobbiamo creare tre oggetti DAtaColum che ci permettono di impostare i vari dati per le tre colonne del datagridView, che conterranno le varie informazioni, quali titolo, descrizione e sito.

Tramite la classe “SyndicationFeed” possiamo gestire le informazioni del RSS, che non è altro che un file XML che viene letto dalla classe “XmlReader”, per ogni elemento leggiamo le varie proprietà quali il titolo, la descrizione ed il sito.

Qui di seguito il codice delle suddette operazioni per l’evento click del mouse.

private void BtnLeggi_Click(object sender, EventArgs e)

        {

            SyndicationFeed feed = new();

 

            try

            {

                using (var reader = XmlReader.Create(TxtSitoRSS.Text)) //"https://www.iprogrammatori.it/rss/articoli.xml"

                {

                    feed = SyndicationFeed.Load(reader);

                    if (feed != null)

                    {

                        DataColumn Titolo = new DataColumn();

                        Titolo.ColumnName = "Titolo";

                        DataColumn Descrizione = new DataColumn("Descrizione");

                        DataColumn Sito = new DataColumn("Sito");

                        DataTable DttDati = new DataTable();

                        DttDati.Columns.Add(Titolo);

                        DttDati.Columns.Add(Descrizione);

                        DttDati.Columns.Add(Sito);

 

                        foreach (var element in feed.Items)

                        {

                            DataRow riga = DttDati.NewRow();

                            riga["Titolo"] = element.Title.Text;

                            riga["Descrizione"] = element.Summary.Text;

                            riga["Sito"] = element.Links[0].Uri.ToString();

                            DttDati.Rows.Add(riga);

                        }

                        DtgDati.DataSource = DttDati;

 

                    }

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

           

            } 

 

          

        }



Ora non ci resta che avviare l’applicazione ed impostare nella casella di testo, il riferimento al file rss per leggere i vari contenuti.


Conclusioni

L’articolo ha fornito al lettore la possibilità di aggiungere alle proprie applicazioni la gestione dei RSS, o la possibilità di visualizzare informazioni di altri siti .

E' possibile utilizzare Il codice scritto per questo articolo anche per lo sviluppo di applicazioni di tipo Asp.Net senza tener conto del controllo DatagridView.

Lo sviluppo con .Net e le numerose classi messe a disposizione del programmatore, facilitano la stesura di codice.

Nessun commento: