Continuando con hacer las cosas bien

 


Lo único que no se puede decir sobre Microsoft es que nos aburrimos trabajando con sus productos.


En el marco del comienzo de un nuevo proyecto en la compañía para la que trabajo, en estos últimos días he estado instalando y jugando un poquito con el Enterprise Project Server (EPM, oficialmente llamado Microsoft Office Project Server) 2007 de Microsoft. Hace algunos años, por otro proyecto en el que estábamos integrando CRM, SharePoint, BizTalk y EPM 2003, me pusieron en el problema de “conversar” programáticamente con la antigua versión de EPM (por eso de que todos los compañeros en el proyecto estaban metidos en líos innumerables con sus propios servidores, y como yo había solucionado más o menos los problemas míos con SharePoint, me colgaron el san Benito de hacer la parte de EPM).


EPM 2003 es un verdadero drama. Programado en asp (si, en asp, no en aspx, es decir, en el lenguaje que usaban los dinosaurios para programar sus sitios de Internet), con el habían tratado de hacer algo parecido a capas de programación por objetos que solamente entendía el que lo programó. Y sin un Modelo de Objetos, sino con un número de Web Services, totalmente incapaces de trabajar con todas las posibilidades del sistema, por lo que al final terminabas sacando la información directamente desde la Base de Datos, que, como de costumbre, no estaba documentada.


Así que cuando me dijeron que tenía que empezar de nuevo con EPM, puse la cara más fea que pude. Pero como donde manda capitán no manda marinero, me tocó decir muy respetuosamente: “si señor” y empezar a trabajar sin fruncir el seño. Pero la sorpresa ha sido mayor, mayúscula, inesperada… EPM 2007 funciona completamente dentro de SharePoint, o, mejor dicho, EPM ES SharePoint. El Enterprise Project Manager Server 2007 no es más un servidor autónomo, sino una aplicación que ejecuta utilizando toda la infraestructura de SharePoint (autorización, maquina de Flujos de Trabajo, interface web, manejadores de eventos), y que utiliza un numero de Bases de Datos propias para guardar sus datos. Después de instalarlo (sin ningún trabajo: tres o cuatro clics y todo queda arreglado), en la Administración Central de SharePoint hay una nueva entrada desde donde se puede configurar el servidor, y luego de asignarle una Colección de Sitios propia (dentro de una Aplicación Web existente o una nueva), toda la configuración se puede encontrar dentro del sitio que EPM crea en WSS (usando su propia plantilla, instalada por defecto).


De la misma forma, un usuario puede utilizar la interface de SharePoint para usar su EPM personal (registro de tiempo, reportes, proyectos, etc). Esto abre posibilidades infinitas de personalización: como es un sitio de SharePoint, se pueden usar páginas maestras y hojas de estilo propias, utilizar alguna de las 25 WebPartes instaladas por defecto por EPM, o crear otras para hacer trabajo especializado, en fin, aplicar toda la caja de trucos de que disponemos en SharePoint. La programabilidad también ha sido mejorada radicalmente, y dispone ahora de 300 métodos públicos (en lugar de los 67 que tenía la versión 2003) que utilizan objetos (typed)DataSet, por lo que el IntelliSense de Visual Studio los reconoce inmediatamente para facilitar la programación (en lugar de engorroso XML como en los WebServices del 2003).


En resumen, ha sido amor a primera vista. Aunque, como todo amor a primera vista, después de la primera cita viene la primera desilusión: hay una cosa que no se puede hacer por medio de la web interface: crear un nuevo proyecto… incomprensible, pero así funciona Microsoft. El objetivo del Enterprise Project Manager, como su nombre lo dice, es manejar proyectos; y para manejar proyectos, primero tienes que crearlos. Y para crear proyectos, tienes que usar la versión cliente, el Project Professional 2007, para el que tienes que pagar licencias separadas… incomprensible, pero supongo que el primer trabajo de personalización de EPM será una WebPart para crear proyectos.


En fin, lo dicho, Microsoft no deja de sorprendernos por el trabajo brillante que hace a veces, y que deja de hacer otras veces.


PS: Como tema para filosofar, la misma estrategia de utilizar a SharePoint como servidor de base se puede usar con muchos otros productos de Microsoft. Por ejemplo, CRM no es precisamente el servidor más amistoso para programar, y cambiar su interface es lo más cercano a imposible (aunque estoy muy lejos de ser un conocedor de CRM): un candidato para meterlo como una aplicación que funcione dentro de SharePoint? Fíjense que ya nos tragamos a dos servidores: el viejo CMS (Content Management Server) y el viejo EPM (para no hablar del Class Server, que ahora es el SLK, SharePoint Learning Kit), así que cual es el siguiente? Axapta? Navision? Toda la suite de Dynamics? Tenemos para divertirnos un buen rato con SharePoint…


Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…

Después de algún tiempo, buenas noticias (?)

 


Después de un par de semanas de vivir sin computador, al final la adicción a este cacharro ha ganado, y he vuelto con el rabo entre las patas a tocar con cariño su teclado, mover sutilmente el ratoncito, navegar por sitios virtuales desconocidos y, sobre todo, escribir código…


Entre las montañas de E-mails acumulados, noticias no leídas y avisos no revisados, he estado leyendo los nuevos Artículos de Conocimiento Básico (como se traduce Knowledge Base?) de Microsoft sobre SharePoint, y me he encontrado el articulo numero 938499 de Julio 10/2007 que dice (traducción libre al espanglish hecha por Gustavo):


API para almacenamiento externo disponible para Windows SharePoint Services 3.0


Un API para el almacenamiento externo está disponible para WSS 3.0. El almacenamiento externo permite guardar documentos o archivos en un dispositivo externo de almacenamiento diferente a SQL Server. Este API permite actualizar sitios de WSS 3.0 para utilizar los dispositivos externos de almacenaje.


Para utilizar el API, es necesario instalar el hotfix 937901. Para más información sobre el hotfix, vaya a la su página descriptiva


Y cuando vas a la página, encuentras todo lo que el hotfix hace, menos información sobre un almacenamiento externo.


La cuestión es de que se trata el asunto? La primera versión de SharePoint (cuando todavía se llamaba “Site Server”, a finales del siglo pasado) se podía instalar con SQL o con Oracle… es a eso a lo que se refieren? O es que es posible guardar documentos en otro tipo de repositorio directamente (aunque esto ya es posible de hacer con el API normal, simplemente conviertes el documento en un stream que puedes guardar en un archivo, mandarlo a una Base de Datos, hacer lo que quieras con ella).


Ya sabemos que los dioses en Redmond hacen las cosas sin que sea necesario contarle a los pobres mortales porque, pero sería una señal de benevolencia de ellos si nos dieran algo de información sobre las clases a usar… pedirles documentación completa sería demasiado atrevimiento, pues ellos ya han dictado que tenemos que tragarnos el SDK (con todos sus bugs e inconsecuencias) tal como es…


En cualquier caso, ahora sabemos que hay (en alguna parte) un API que podemos utilizar para hacer algo (que no sabes qué), y que la información respectiva esta en un sitio en Internet (en donde no hay información al respecto)… Muchas gracias…


Gustavo – http://www.gavd.net/servers/
Escriba un Comentario que me haga reir…