martes, 29 de junio de 2010

La búsqueda del contenido de pdf dentro de SharePoint Server puede fallar algunas veces

Esta versión de acontecimientos es sobre 32 bits, aunque recuerdo a verlo echo sobre 64 bits con algunos problemas, quiero compartir mi experiencia reciente con un server que no quiso ni a la primera, ni a la segunda.

El procedimiento para habilitar los pdf es muy conocido por la mayoría varia a veces en el orden pero da los mismo resultados.  Abajo les muestro el procedimiento que utilice:

image 

Básicamente instalar el IFilter 6.0 que provee Acrobat Reader.

Copiar y asociar el gif dentro del XML de los iconos de SharePoint (Esta imagen es tan pequeña que no te molestes en encontrar una resolución tan nítida en imágenes de cualquier buscador puedes encontrar una imagen de pdf y minimizarla a 16 x 16).

Agregar el tipo de archivo en la configuración del Search.

Y Ejecutar una actualización completa del contenido.

Esto en su mayoría siempre funciona pero a pesar que lo hice sobre un servidor de un cliente no me funcionó.  Reinstale Ifilter60.exe y me solicitó que reiniciará el servidor el cual con el permiso debido lo hice pero no funcionó, elimine el tipo de archivo dentro de la configuración y lo volví agregar y tampoco funcionó.  Revise el log de Windows, el de SharePoint y aparentemente ninguno reportaba algún error relacionado. 

Finalmente buscando en la red encontré un procedimiento que ya había corrido en el pasado y me había funcionando, a pesar que reinicie el servidor un par de veces mas nada cambio.  Pero al ejecutar el reinicio de los servicios de búsqueda de Servidor de SharePoint esto hizo que tomará en cuenta los pdf dentro del rastreador de SharePoint.   Por línea de comando ejecutar los siguientes comandos:

net stop osearch

net start osearch

Y eso es todo amigos, espero ahorrarles tiempo y angustia en sus vidas.  Fix4Fun!,

Manolo Herrera

domingo, 27 de junio de 2010

Aspectos a tomar en cuenta en el desarrollo de TimerJobs en SharePoint

Los timer jobs se instalan a nivel de Colección de Sitios, esto quiere decir que estará disponible para todos los sitios dentro de la colección de Sitios, esto quiere decir que debemos de planificar a nivel de colección de sitios la solución que estamos ejecutando dentro de nuestro timer job. 

El tema se complica cuando tenemos varias colecciones de sitios dentro de una misma aplicación Web.  Debemos de pensar que se ejecutará por cada una de ella si se activa.

Y ojo con la activación es necesario realizarla explícitamente ya se por código, por línea de comando o manualmente.  Muchas veces sucede que no podemos depurar el código o no nos funciona sencillamente porque se nos ha olvidado activarla.  El estado de los Timer Job en Operaciones del Central Administration solo nos indica si esta bien instalado y si no ha encontrado ningún error pero no nos dice si esta activada.

La cosa se complica un poco mas si tenemos sobre una misma Web Application dos colecciones de sitios una en diferente base de datos  deberíamos en nuestro código tomar en cuenta dicho escenario.

Extrañamente el InstanceID que trae el timer job no es de la colección de sitios donde se activó el timer job sino de la base de datos predeterminada por ello hay que hacer un hack para corregir el rumbo.

Con la siguiente línea obtenemos la instancia de la WebApplication que es necesaria ya que es un proceso que esta corriendo en el servidor dijéramos como un servicio y no desde el IIS.

SPWebApplication webApplication = this.Parent as SPWebApplication;

Luego obtenemos la colección de bases de datos de contenido y buscamos la deseada (esto es para el caso que una Web App tenga mas de una base de datos de contenido, sino no es necesario pero como saber la configuración donde instalaremos el time job.)image

Luego podemos obtener la colección de sitios y por ende el sitio deseado a través de los objetos SPSite (SiteCollection) y SPWeb (WebSite)

image

En este ejemplo podemos ver la importancia de conocer la jerarquía de objetos dentro de SharePoint para poder acceder los objetos deseados.

sharepoint object model hierarchy

Si deseas depurar un timer job Necesitas adjuntar el proceso OWSTimer.

image

Espero te sirva, Code4Fun!,

Manolo Herrera

viernes, 18 de junio de 2010

Lanzamiento de Visual Studio 2010 desarrollo en SharePoint 2010

Amigos, quería compartirles a partir del miércoles 23 de junio al viernes 25 del mismo mes estaremos compartiendo conocimiento sobre el desarrollo en Visual Studio 2010.  El Jueves estaremos viendo puntualmente el desarrollo para SharePoint 2010.  Los dejo con la información abajo:

Lugar: Oficinas de Microsoft, Edificio Torre Citibank (Intercontinental)
Fechas: Miércoles 23, Jueves 24, Viernes 25 de Julio
Horas: de 6pm a 9pm

Expositores y temas

Silverlight/WPF 4.0 Development
Expositor: Carlos Lone, Microsoft MVP Client Application
Development, http://weblogs.asp.net/carloslone/
Fecha: Miércoles 23 de Junio

La nueva era de sitios Web en el internet cada vez más demandan la inclusión de una mejor experiencia de usuario (UX) en donde la interactividad, contenido multimedia y uso del sitio sea más sencillo y amigable para los usuarios.

Se ha dicho de que las versiones anteriores de Silverlight estaban muy orientadas a realizar animaciones y a presentar imágenes  y videos con mejor definición. Sin embargo desde la versión 3.0 y ahora en la versión 4.0 la capacidad de poder utilizar esta herramienta para hacer aplicaciones de línea de negocio es cada vez más sencillo.

Acompáñanos a descubrir todas las novedades de Silverlight y WPF en VS2010

- Desmitificando Silverlight y WPF 4.0
- Novedades
- Construcción de aplicaciones de línea de negocio.
- Construiremos una aplicación 0 a 100.

SharePoint 2010 Development
Expositor: Manolo Herrera, Microsoft MVP SharePoint,
http://jmhogua.blogspot.com/
Fecha: Jueves 24 de Junio

El desarrollo en SharePoint nunca antes ha sido tan fácil y práctico
- Desarrollando en Web Part Visual para SharePoint en 15 minutos
- Depurando e instalando tu código en SharePoint desde Visual Studio con presionar una sola tecla.
- Descubriendo el nuevo Developer Dashboard de SharePoint
- Conociendo el Client Object Model de SharePoint desde un aplicación Windows.
- Creando una Sandbox Solution para que nos sirve y ayuda.

Web development con ASP.NET 4.0
Expositor: Cristian Prieto, Microsoft MVP ASP.NET,
http://www.cprieto.com
Fecha: Viernes 25 de Junio

ASP.NET ha evolucionado muchísimo en los últimos años con la adición de ASP.NET MVC y Dynamic Data, además de las mejoras continuas a la plataforma de WebForms y ASP.NET AJAX. Hablaremos de como aumentar la productividad y al mismo tiempo construir aplicaciones web que manejen de una manera transparente CSS, controles finos sobre el renderizado y markup al mismo tiempo que podemos mejorar SEO y muchas otras características nuevas en ASP.NET 4.0

El cupo es limitado, así que sugiero que corran al link de registro y aparten su lugar http://bit.ly/launchgt

¡Espero verlos en el lanzamiento!

Manolo Herrera