Wikipedia Explorer

Las compañías Dotnet Solutions, Monochrome y Plataform Evangelism de Redmond, se han puesto manos a la obra para dar una vuelta de tuerca al concepto de búsqueda de la conocida "Wikipedia". La Wikipedia Explorer es una aplicación basada en las plataformas de Microsoft Windows Presentation Foundation y Windows Azure. Las principales novedades respecto a la Wikipedia tradicional, es una mayor facilidad de búsqueda, al presentarnos nexos de unión entre los diferentes documentos.

 1

Esta nueva aplicación se ha basado en Windows Azure, ya que tiene la capacidad de prestar el servicio de búsqueda de una manera rápida, al trabajar con varios servidores de gran potencial en el mismo periodo de tiempo. De este modo se reduce el tiempo de búsqueda en la base de datos del dato que deseamos encontrar.

Por último reseñar que Wikipedia Explorer nos ofrece diversas formas de presentación de la información encontrada, o bien mediante texto, mediante los nexos de las diferentes entradas de la información que buscamos o mediante las entradas que contienen un mayor número de información.

2

Personalización JumpList

Desde el punto de vista de los desarrolladores la personalización de la JumpList se basa en la API que pone a nuestra disposición Microsoft, además de la utilización de la librería Vista Bridge Sample Library 1.4 para tal fin.

Lo primero que voy a personalizar son los distintos elementos que aparecen por defecto en las correspondientes categorías. Para ello voy a incluir un fichero "sonnet.txt" en una categoría "Reciente", utilizo el código administrado que ofrece la API:

JumpListManager jlm = …;

<!–Instancia de libreria JumpListManager–>

jlm.AddCustomDestination(new ShellItem { Path=C:CESMIcrosoftW7Win7RCModule01_Taskbarsonnet.txt, Category="Reciente",Title = "Notas de gastos",IconLocation = shell32DllPath});

<!–añado y personalizo el elemento notas.doc dentro de la categoria Reciente–>

El proceso que he seguido es añadir un nuevo elemento a la JumpList a través del comando New ShellItem, dentro de este comando he indicado la ruta del fichero que se va a ejecutar C:CESMIcrosoftW7Win7RCModule01_Taskbarnotas.doc. La categoría en la que va agrupar nuestro elemento es "Reciente" indicandolo del siguiente modo Category="Reciente", además puedo introducir un titulo que mostrará el elemento añadido Title = "Notas de gastos", y además si quiero que mi elemento presente un icono distinto al que por defecto va tomar por el formato del archivo utilizaré IconLocation = shell32DllPath.Como podemos ver este es el aspecto de nuestra JumpList despues de añadir el nuevo elemento:

 

 1

 

La siguiente área que voy a personalizar es la relacionada con las tareas de un usuario. Para ello voy a añadir una nueva tarea "Ejecutar Calculadora" que estará dentro de la categoría Tareas:

JumpListManager jlm = …;

<!–Instancia de libreria JumpListManager–>

jlm.AddTask(new ShellLink { Path=H:CESMIcrosoftW7Win7RCModule01_Taskbarcalc.exe, Title = "Ejecutar calculadora",IconLocation = shell32DllPath });

<!–añado y personalizo la tarea ejecutar calculadora dentro de la categoria Tareas–>

Al añadir una nueva tarea deberemos expecificar que se añade un nuevo elemento new ShellLink. Por otro lado este elemento deberé de expecificar la ruta del archivo ejecutable del mismo Path=H:CESMIcrosoftW7Win7RCModule01_Taskbarcalc.exe. Además si quiero que el elemento se diferencie dentro de las distintas tareas le introduzco un titulo diferenciativo Title = "Ejecutar calculadora" y le asigno un icono distintivo IconLocation = shell32DllPath. De este modo podré ejecutar una acción que realizo de forma frecuente o de forma puntual sin necesidad de bucear entre todas mis carpetas y archivos con la correspondiente pérdida de tiempo.

 2

En conclusión como podemos ver Windows 7 solventa la pequeña carencia de agilidad que sus predecesores tenían a la hora de ejecutar tareas o acceder a archivos, desde el punto de vista del desarrollador nos ofrece un nivel de personalización mucho más avanzada de elementos novedosos como la JumpList.

 

 

Orígenes de los elementos de la JumpList

La puesta en marcha de W7 trae consigo un conjunto de novedades, de todas ellas cabe destacar el elemento JumpList. Dicho elemento aparece en los menús contextuales de las aplicaciones que nosotros tenemos pineados en nuestra barra de tareas. Consiguiendo una mayor agilidad y sencillez a la hora de acceder a nuestras aplicaciones.

 1

El citado elemento está compuesto de dos partes diferenciadas, por un lado los Destinos y por otro lado las Tareas. Los destinos son elementos que usamos con frecuencia, así podemos distinguir dentro de este conjunto elementos anclados, que son los elementos que nosotros hemos decidido pinear a la JumpList. Elementos recientes, siendo estos los que hemos utilizado en la actualidad y por último elementos importantes siendo estos como su nombre indica los elementos que toman una relevancia considerable para nosotros.

Por otro lado tenemos las Tareas que son una serie de comandos que podemos invocar desde la JumpList para poder ejecutar una acción de una manera rápida y sencilla. Dentro de este conjunto tenemos tareas de usuario que son los comandos que el usuario decide ejecutar de forma directa y tareas de el propio programa, que son las tareas inherentes de los accesos directos anclados a la barra de tareas. Ejecutando comandos comunes a todos los accesos directos.

 2

Una vez que tenemos el concepto generalizado de la JumpList, nos adentraremos en la personalización de dicho elemento, empezando por las fuentes de datos. Los orígenes de los datos se pueden obtener de los elementos recientes utilizados por el explorador de Windows. Por otro lado si nuestras aplicaciones utilizan Common File Dialog para abrir ficheros de forma automática, se añaden a la lista del usuario el último fichero abierto. Por último disponemos de una API que nos permitirá personalizar cada uno de los elementos de nuestra JumpList.

En código administrado podemos ver cómo obtener los distintos orígenes de los datos que se van a mostrar como elementos en la JumpList de los accesos directos de la barra de tareas del siguiente modo:

RH.RegisterFileAssociations(…);

<!–elementos recientes del explorador de Windows–>

OpenFileDialog ofd = …; ofd.ShowDialog();

<!–elementos ejecutados a través del Common File Dialog–>

JumpListManager jlm = …;

jlm.AddToRecent("file.ext");

<!–Añadir un elementos a recientes de la JumpList a través de la API de W7–>

Limitar número de palabras a mostrar en un Webpart de texto mediante XSLT

En el proyecto en el que he estado implicado últimamente, una de las especificaciones es limitar el número de palabras tiene que mostrar cada una de las entradas de un Webpart de una lista de anuncios en Windows SharePoint Servicies.

Lo primero que tenemos que realizar es la eliminación de etiquetas HTML(<Div>, <Span>, <Font>, etc.) que generalmente se agregan a la hora de añadir nuevas entradas de la lista deseada. Esta particularidad la realizaremos a través del lenguaje XLST.

Primeramente deberemos definir un método para eliminar las etiquetas HTML lo haremos a través del siguiente código:

<xsl:template name="BorrarEtiquetasHtml">

<xsl:param name="html"/>

<xsl:choose>

<xsl:when test="contains($html, ‘&lt;’)

<xsl:value-of select="substring-before($html, ‘&lt;’)"/>

<xsl:call-template name="BorrarEtiquetasHtml">

<xsl:with-param name="html" select="substring-after($html, ‘&gt;’)"/>

</xsl:call-template>

</xsl:when>

<xsl:otherwise>

<xsl:value-of select="$html"/>

</xsl:otherwise>

</xsl:choose>

</xsl:template>

El siguiente paso es realizar una llamada al método creado con anterioridad pasándole el texto de nuestra entrada. Se realizará del siguiente modo:

<xsl:variable name="pureText">

<xsl:call-template name="BorrarEtiquetasHtml">

<!–llamada al metodo pasandole el cuerpo de nuestra lista –>

<xsl:with-param name="html" select="@Body" />

</xsl:call-template>

</xsl:variable>

 

Una vez enviado el texto, este quedará limpio de las molestas etiquetas que impiden la limitación de caracteres de las entradas de una lista.Para ello utilizaremos la variable que anteriormente ha sido limpiada de etiquetas ( pureText) introduciéndole la siguiente consulta:

<xsl:value-of select="substring($pureText, 0, 600)" />

Siendo Substring el método que devolverá los caracteres comprendidos entre el número inicial que nosotros introduzcamos, en este caso el cero ya que partimos del carácter inicial, seleccionando la cadena hasta el carácter 600 en este caso. Toda esta selección se realizará sobre la variable limpia de etiquetas HTML (pureText).

Como podéis ver es una forma sencilla de mostrar un resumen de las distintas entradas por ejemplo de una lista de anuncios.