Ricerche con ASP.NET e Live Search

di: Giuseppe Marchi     09 Luglio 2008

Ricerca di immagini

Come abbiamo accennato, possiamo effettuare le nostre ricerche anche sulle immagini. L'approccio è quello già visto, quello che cambia è la configurazione della nostra richiesta, in quanto specificheremo una sorgente (Source) differente.

protected void Search(object sender, EventArgs e)
{
  MSNSearchService service = new MSNSearchService();

  // definisce la sorgente di immagini e i campi
  SourceRequest imageSource = new SourceRequest();
  imageSource.Source = SourceType.Image;
  imageSource.ResultFields = ResultFieldMask.Image | ResultFieldMask.Url;

  SearchRequest request = new SearchRequest();
  request.AppID = "...";
  request.Requests = new SourceRequest[] { imageSource };
  request.Query = txt.Text;

  SearchResponse response = service.Search(request);
  
  if (response.Responses.Length > 0)
  {
    results.DataSource = response.Responses[0].Results;
    results.DataBind();
  }
}

Infine, dobbiamo formattare i risultati per fare in modo di stampare a video le immagini trovate.

SearchImages.aspx

<asp:TextBox ID="txt" runat="server" />
<asp:Button ID="btnSearch" runat="server" Text="Search" onclick="Search" />
<hr />
<asp:Repeater ID="results" runat="server">
  <ItemTemplate>
    <%# FormatResult(Eval("Url"), Eval("Title"), Eval("Image")) %>
    <%# Eval("Description") %><br />
    <span style="text-decoration: underline"><%# Eval("Url") %></span>
    <hr />
  </ItemTemplate>
</asp:Repeater>

SearchImages.aspx.cs

protected string FormatResult(object title, object url, object image)
{
  string address = (image == null) ? String.Format("{0}", url) : String.Format("{0}", title);
  
  StringBuilder html = new StringBuilder();
  
  html.AppendFormat("<a href='{0}' title='{1}'>", address, title);
  
  if (image != null)
    html.AppendFormat("<img src='{0}' alt='{1}' border='0' />", ((com.live.search.soap.Image)image).ImageURL, title);
  else
    html.AppendFormat("{0}", title);
  
  html.Append("</a><br />");

  return html.ToString();
}

Abbiamo aggiunto la funzionalità di ricerca di immagini alla nostra applicazione ASP.NET con uno sforzo veramente minimo. Chiaramente questo è un esempio e deve essere trattato come tale, in quanto, giusto per dirne una, potremmo creare delle thumbnail in automatico per migliorare l'aspetto dell'elenco dei risultati.

Conclusioni

Abbiamo visto come sfruttare le API messe a disposizione da Live Search per la ricerca da uno o più tipi di fonti, in accordo con le teorie attuali su cui si basano le architetture SOA. È importante notare con quanta facilità si possono ottenere ottimi risultati utilizzando il Web service di Live Search, per arricchire di ricerche efficaci le nostre applicazioni Web.

Giuseppe Marchi è consulente informatico in ambito Microsoft .NET e dottore in Comunicazione Digitale; co-autore del libro "Pocket C#", editore Apogeo, collabora con community on-line di sviluppatori fornendo articoli e materiale. Dal 2006 è certificato Microsoft su ASP.NET 2.0 e Microsoft Certified Technology Specialist su Windows Sharepoint Services 3.0. Il suo sito Web personale www.peppedotnet.it contiene ulteriori informazioni ed esempi di codice.

Guide ASP.Net

Guida Windows Azure Code Snippets

Le migliori pratiche per far girare le applicazioni "in the cloud",...

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto