Uno de los grandes dramas de SharePoint 2003 era instalar código personalizado en otros servidores fuera de las maquinas de desarrollo. Las opciones estaban limitadas a dos: copiar todos los archivos a mano desde un servidor a otro, con todos los peligros que eso conlleva, o hacer un instalador especial (un programa que copie todo en el lugar correcto).
La primera opción en realidad no era una opción. Cuantas veces me ha pasado (y no solamente a mi) que le enviabas toda la retahíla da archivos al cliente, con instrucciones detalladas sobre que archivos en que directorios había que copiar, para luego recibir un teléfono de un cliente enojado porque el asunto no funcionaba (o es que solamente yo tengo clientes disléxicos, eso también puede ser). Luego de perder un montón de tiempo en ir personalmente a ver qué estaba sucediendo, revisar la instalación localmente en los servidores de producción y comprobar que, por supuesto, las cosas no habían sido copiadas correctamente, se venía el trabajo de explicarle muy cuidadosamente al susodicho cliente que simplemente tenía que regresar a la escuela elemental a que le enseñaran a leer de nuevo…
La segunda opción, aunque más segura, también costaba tiempo y esfuerzo… y ponerse a programar aplicaciones de Windows, algo que no se te ocurría hacer desde el tiempo de los dinosaurios…
Los chicos inteligentes de Microsoft se pusieron las pilas y crearon las «Solutions», una verdadera solución para el problema. Para que después vengan a decir que Microsoft no escucha los clamores de sus pobres usuarios. Si escuchan, sí que lo hacen, créanme, lo único es que son sordos selectivos, que solamente escuchan lo que les interesa, pero que escuchan, escuchan…
Una «Solución» de SharePoint no es más que un archivo comprimido (.wsp) con todos los archivos que quieres instalar metidos en él, y otro archivo «Manifest.xml» que le cuenta a SharePoint a donde tiene que ir a parar cada uno de ellos. Además de que todo va en un solo archivo, el administrador de SharePoint solamente tiene que ejecutar un comando en la herramienta de administración stsadm para instalarlo, y desde la pantalla de Administración Central de SharePoint puede activar la Solución, desactivarla, instalar otra igual con una versión diferente y controlar su uso, todo sin que tenga que copiar archivos independientes.
La Solución principalmente puede copiar archivos a sus sitios correctos (Características, WebParts, Recursos, Site Definitions, etc) e instalar dll’s en el GAC o en un directorio Bin; es posible hacer otras cosas con ellas, como definir las pólizas de seguridad y el registro de controles seguros, pero esto es otra historia.
Volviendo al título, un archivo wsp no es más que un archivo cab con otra extensión. Si no me creen, búsquense algún archivo wsp en el directorio de SharePoint, cámbienle le extensión a cab, y verán que bonito esta por dentro (o sino, léanse el SDK, también está allí explicado). Archivos cab son muy simpáticos, pero no son divertidos para hacer. Desde el sitio de Microsoft se puede descargar el «Cab SDK», con información sobre como compilar archivos CAB, y un par de herramientas de comando para hacerlos. Pero si tienes que crear una Solución con bastantes archivos, que tienen que ir a parar a diferentes directorios de SharePoint, el comando se convierte en algo así como:
CABARC.EXE -p -P ProjectsTestSolution n C:Solution_Test.wsp C:ProjectsTestSolutionISAPI*.* C:ProjectsTestSolutionManifest.xml C:ProjectsTestSolutionTestWebPart1.dll
(Y esto para solo tres archivos a comprimir). Así que, siguiendo el leitmotiv de «Un buen herrero hace sus propias herramientas», me he hecho un programa estupendo («SharePoint Solution Builder», por eso de que en ingles suena más complicado) que me evita todo el trabajo de pensar (para evitar que se me gasten las pocas células grises que me quedan), y en donde solamente tengo que escoger los archivos, indicar a que directorio tienen que ir, contarle el sitio en donde quiero la solución y él realiza todo el trabajo para mí. El programa lo pueden bajar desde el sitio de descargas de SkunkWorks, http://www.gavd.net/servers/sharepointv3/spsv3_item.aspx?top=5&itm=431.
A propósito, cuando estaba haciendo el programa y rompiéndome la cabeza tratando de usar el «cabinet.dll» que viene con todos los Windows y se encarga de hacer el trabajo, al intentar desensamblarlo sin fortuna, me he dado cuenta que es (probablemente) una aplicación de 16 bits, del año de upa. Aunque, siendo honrados, funciona como un tren, y comprime mucho mejor que zip o rar, así que si no se ha roto, no hay razón para repararlo.
Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…