Sharepoint Custom-WebPart (Integration with Unix and WebServices)

Al fin, el día de ayer terminé una integración con Sharepoint Portal Server 2003. Desarrollé un custom-webpart que permite, obtener información de un WebService que este a su vez, obtiene información de una base de datos en Unix (MySql).

La primera parte, que era el desarrollo del WebService, fué muy sencilla. Solo tenía que utilizar un proveedor nativo de ADO.NET para MySql (en este caso usé ByteFX) y hacer queries a la base de datos. Ojo: encontramos muchos problemas al conectarte con MySql, entre uno de ellos es el formato de ConnectionString, que debe ser de la siguiente manera:

"Server=127.0.0.1; Database=elportaldb; User ID=MSClient; Password=p@ssw0rd1";

Para los que normalmente utilizamos SQL Server u Oracle, esta cadena de conexión es básicamente la misma, pero el formato que les pongo arriba es el que nos funcionó correctamente.

Otro tema interesante es que se deben asegurar de dar FLUSH_PRIVILEGES en MySql para que puede entrar correctamente el usuario, esto fué causa de error durante las pruebas del WebService.

Después de esto, me dediqué a programar el WebPart. Básicamente, seguí la guía que encuentras en Microsoft y también le dí una buena leída a este tutorial en CodeProject, donde te lleva paso a paso por la creación de estos componentes. También descargué de este vínculo el kit de desarrollo de WebParts para Visual Studio .NET 2003.

Sin embargo, una vez que tenía desarrollada mi WebPart que consume el WebService, empecé a encontrar muchos problemas de seguridad, debido a que Sharepoint, por default tiene un esquema de seguridad asignado restrictivo, lo cual impide a las WebParts hacer algunas acciones especificas.

Lo que se tiene que hacer primero, es entender el modelo de seguridad de Sharepoint Portal Server 2003.

Básicamente, se tiene que hacer unas modificaciones a Sharepoint para que este, confíe en el control. Lo que yo hice fué algo muy sencillo: crear un strongname para mi assembly y hacer el deployment del assembly en el GAC. Todas las assemblies que corren en el GAC corren con FullTrust, así que esto solucionó el problema…

Otro truco, no recomendado es modificar en el Web.Config de Sharepoint Portal Server 2003, el nivel de seguridad (TrustLevel). Normalmente esta en WSS_Minimal, aqui le puedes cambiar a Full y todos tus WebParts podrían correr con los permisos… pero aguas, ¿qué pasa su algun usuario importa un WebPart malicioso dentro de tu Sharepoint y lo tienes en nivel de FullTrust? Ten cuidado con esa parte.

Así pues hoy acabamos de hacer el deployment del WebPart. Esta muy interesante esta herramienta y las capacidades de extensión utilizando Microsoft Visual Studio .NET 2003. Microsoft Sharepoint Portal Server 2003, a mi punto de vista es un producto bastante robusto, fácil de extender y sencillo de usar. Yo recomendaría a muchos integradores que antes de desarrollar algo "custom" para una empresa, den una revisada a las herramientas que MS tiene actualmente en el mercado. Para que reinventar el hilo negro, ¿no?

Cheers!

PD. Los siguientes posts, van a venir temas de integración de Commerce Server con Sharepoint Portal Server y Content Management Server. Stay tuned!


Comentarios

Deja una respuesta