Technology Experience
.NET World

Aggiornamenti su VivendoByte Technorati Tags

Ogni tanto vi tedio parlandovi del plug-in per Windows Live Writer che mi sono scritto in WPF per poter “compilare” velocemente i tags con cui marcare i post che poi finiscono dritti dritti sul mio blog. Ricordo che questo plug-in fa parte di una piccola suite che ho pubblicato su CodePlex: i sorgenti sono pubblici e tutti voi potete utilizzarlo. Anzi, se mi trovate qualche baco, segnalatemelo!

Ve ne parlo perchè nel frattempo qualcosa è cambiato. Vediamo di spiegare cosa e perchè.

L’elenco di tags che il plug-in vi mostra arriva direttamente dal web-service esposto da Technorati.com. Questo web-service chiede in input l’url di un blog e restituisce una List<string>: fino alle precedenti versioni questa lista veniva bindata ad una ListBox di WPF per poter essere selezionate dall’utente.

Ho deciso di non utilizzare più stringhe, ma di creare una classe ad-hoc TechnoratiTag. Prima di potervi spiegare il perchè, occorre breve una premessa, relativa alle vecchie versioni del plug-in:

  1. se il PC su cui gira il plug-in risultava essere connesso alla Rete, allora l’elenco dei tags veniva preso da Technorati come spiegato prima
  2. se il PC su cui gira il plug-in NON risultava essere connesso alla Rete, l’elenco dei tags veniva preso da un file locale di cache, salvato in C:Documents and SettingsIgorDati applicazioniVivendoByte Technorati Tags.

Il web-service di Technorati restituisce i 100 tag più utilizzati: se per caso ne inserivate uno a mano – non compreso nell’elenco – ve lo perdavate alla grande: il tag veniva salvato effettivamente sulla cache locale, ma in realtà non veniva più proposto, proprio perchè la cache locale veniva ignorata se eravate connessi alla Rete.

Ho quindi pensato che la cosa migliore fosse quella di creare una List<TechnoratiTag>, che fosse l’unione dei tags presi da Technorati e presi dalla cache locale. La classe TechnoratiTag è così composta:

public class TechnoratiTag { private TagSource _source; private string _identifier; public TagSource Source { get { return _source; } set { _source = value; } } public string Identifier { get { return _identifier; } set { _identifier = value; } } }

La proprietà TagSource è un semplice enum che distingue i tags provenienti dalla Rete (TagSource.Internet) oppure dalla cache locale (TagSource.LocalDisk). L’implementazione del metodo LoadTags() del mio repository service è la seguente:

1 public List<TechnoratiTag> LoadTags() 2 { 3 List<TechnoratiTag> internetTags = null; 4 List<TechnoratiTag> localTags = null; 5 List<TechnoratiTag> tags = new List<TechnoratiTag>(); 6 7 if (TestInternetAvaiableService.TestInternetAvaiable()) 8 internetTags = this.LoadRemoteTags(); 9 10 localTags = this.LoadLocalTags(); 11 12 if (internetTags != null) 13 tags.AddRange(internetTags); 14 15 if (localTags != null) 16 foreach (TechnoratiTag t in localTags) 17 { 18 criteria = t.Identifier; 19 if (!tags.Exists(new Predicate<TechnoratiTag>(findTechnoratiTag))) 20 tags.Add(t); 21 } 22 23 tags.Sort(sortTechnoratiTag); 24 25 return tags; 26 }

Alle righe 7 ed 8 vengono caricati i tags dal web-service di Technorati. Alla riga 10 vengono caricati i tags dalla cache locale. Questi due elenchi vengono fusi in un unico List<Technorati> alle linee 15-21, escludendo con una opportuna logica i doppioni. Il tutto viene ordinato e restituito al chiamante.

Il risultato finale è che la ListBox di WPF non viene più bindata da un elenco di stringhe, ma ad un elenco di TechnoratiTag. Ecco uno screenshot:

Grazie ad un DataTemplateSelector viene applicato un template diverso a seconda del valore di ciascun TagSource: i tag che arrivano da Internet hanno un’iconcina con il globo, mentre quelli che arrivano dalla cache locale hanno un’iconcina del CD. In questo modo anche tag poco usati, che magari Technorati non vi segnalerebbe, compaiono magicamente nella lista!

Installazione

Oltre che su CodePlex, il download diretto dei binari è disponibile qui : Windows Live Writer Plugins Technorati Tags WPF. E’ sufficiente aprire il file zip e dezippare il tutto in C:ProgrammiWindows LiveWriterPlugins.

Technorati Tags:    

Send to Kindle

Igor Damiani

La sua passione per l'informatica nasce nella prima metà degli anni '80, quando suo padre acquistò un Texas Instruments TI-99. Da allora ha continuato a seguire l'evoluzione sia hardware che software avvenuta nel corso degli anni. E' un utente, un videogiocatore ed uno sviluppatore software a tempo pieno. Igor ha lavorato e lavora anche oggi con le più moderne tecnologie Microsoft per lo sviluppo di applicazioni: .NET Framework, XAML, Universal Windows Platform, su diverse piattaforme, tra cui spiccano Windows 10 piattaforme mobile. Numerose sono le app che Igor ha creato e pubblicato sul marketplace sotto il nome VivendoByte, suo personale marchio di fabbrica. Adora mantenere i contatti attraverso Twitter e soprattutto attraverso gli eventi delle community .NET.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.