ASP.NET Futures : SearchDataSource
September 12th, 2007
Entre los controles que componen ASP.Net Futures, se encuentra el SearchDataSource, el nombre mismo del control me llamo la atención y me puse a investigar un poco su funcionamiento, este control nos permite integrar fácilmente búsquedas en nuestros sitios web, las cuales pueden provenir de diferentes providers, yo lo probé contra Live Search, pero es posible crear nuestro propio provider.
Para comenzase necesitamos tener ASP.Net Futures July 2007 CTP y Visual Studio 2008 instalado en nuestra PC, luego nos dirigiremos a http://search.msn.com/developer para conseguir la clave que nos permitirá consultar el servicio de búsquedas de Live Search, para ello seleccionaremos Create and Manage Application IDs, luego de ingresar nuestra LiveID nos dirigiremos a Get a new AppID y terminado este paso anotaremos el ID que hemos generado.
Ahora crearemos un proyecto ASP.NET Futures Web Site tal como se ve en la siguiente imagen.
Abrimos el web.config y nos dirigimos a la siguiente sección para configurarla.
<providers>
<add name=“WindowsLiveSearchProvider“
type=“Microsoft.Web.Preview.Search.WindowsLiveSearchProvider, Microsoft.Web.Preview“
appID=“xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx“
siteDomainName=“xxxxxx.xxxx.xxx“ />
</providers>
En appID ingresaremos el ID que generamos previamente y en siteDomainName añadiremos el nombre de dominio contra el que queremos hacer consultas, si lo que desean es hacer búsquedas en toda la web eliminen esta propiedad.
Abrimos el archivo Default.aspx en nuestro proyecto y agregamos un TextBox con el nombre TextBoxSearch y un Button con el nombre ButtonSearch, luego arrastraremos el SearhcDataSource a nuestra página y lo configuraremos de la siguiente manera.
<asp:SearchDataSource ID=”SearchDataSource1″ runat=”server”>
<SelectParameters>
<asp:ControlParameter ControlID=”TextBoxSearch” Name=”query” />
</SelectParameters>
</asp:SearchDataSource>
Terminado esto arrastraremos también un control ListView, el cual configuraremos de la siguiente forma para mostrar el resultado de nuestras consultas.
<LayoutTemplate>
<ul id=”itemcontainer” runat=”server” ></ul>
</LayoutTemplate>
<ItemTemplate>
<li>
<ul>
<a href=’<%# Eval(”Url”) %>‘> <%#Eval(“Title”) %></a><br />
<%#Eval(“Description”) %><br/>
<a href=’<%# Eval(”Url”) %>‘> <%#Eval(“Url”) %></a><br />
</ul>
</li>
</ItemTemplate>
</asp:ListView>
Para finalizar configuraremos el evento click de ButtonSearch para que haga el DataBind de nuestro SearchDataSource.
protected void ButtonSearch_Click(object sender, EventArgs e)
{
SearchDataSource1.DataBind();
}
Ya con esto tenemos todo listo, cabe aclara que este servicio solo nos provee diez resultados por consulta lo cual a mi entender es muy poco, pero como dije anteriormente tenemos la posibilidad de crear nuestro propio provider con lo cual podemos subsanar esta limitación, después de esta aclaración podemos pasar a probar nuestra aplicación, la cual debería lucir más o menos como en la siguiente imagen.
Si desean conocer más acerca de este control y de cómo crear sus propios providers, a continuación les dejo algunos links que les serán de utilidad.
- Microsoft ASP.NET Futures (July 2007)
- Enabling Search for your Web Site with ASP.NET AJAX
- Search Provider Example


Leave a Reply
You must be logged in to post a comment.