May 2008 - Artículos
SharePoint es una tecnología que ofrece a los usuario de negocio un marco de trabajo flexible, adaptable, fácil de usar que permite gestionar la información, facilitar la colaboración y facilitar la participación de personas en procesos de negocio.

Este marco de trabajo esta compuesto por una multitud de componentes, cuando un usuario de SharePoint necesita resolver alguna necesidad solo tiene que combinar los componentes de una forma determinada.

Por ejemplo para habilitar un repositorio de documentos el Consultor:
- Creara y configurara el sitio
- Creara la biblioteca de documentos
- Creara los tipos de contenido
- Configurara las vistas
- Aplicara la seguridad
- Creara las paginas y las configurara con distintos WebParts

En este punto se podrá dar acceso a personas del negocio para que usen esta solución, publiquen nuevos documentos, los etiqueten, realicen búsquedas y consuman los documentos.
SharePoint es un marco de trabajo que permite por otro lado que los desarrolladores añadan nuevos componentes, extiendan o personalicen los existentes. Por ejemplo crear nuevas paginas maestras, webparts, plantillas de sitio, etc.
En MSDN encontramos un interesante apartado que recoge la lista de los elementos que pueden ser creados, modificados, extendidos. Cada elemento de la lista cuenta con una descripción, un ejemplo funcional, detalle técnico.
Managed Path SharePoint Database Schema Change SharePoint Database Access Modifying Built-In SharePoint Files Web Services Access SharePoint Designer Editing SharePoint Solution SharePoint Feature Feature Stapling Feature Event Receiver Windows Server Service Timer Job Web Application Web Service Site Definition List Definition Site Template List Template Field Type Content Type Column Template or Site Column Delegate Control Form Template Custom Action _Layouts Page Event Handler Backward-Compatible Event Handler Coded Workflow No Code Workflow Workflow Activity Workflow Condition Web Part SharePoint Theme Document Icon IFilter Document Converter Information Management Policy Business Data Catalog Application Definition File Excel Services User-Defined Function InfoPath Form Custom Code InfoPath Form View Control HTTP Handler HTTP Module Pluggable Authentication Provider Pluggable Single Sign-On Provider STSADM Command Extension Inline Code web.config file Settings Change Security Policy Es importante que al plantear una solución basada en SharePoint se revise esta lista y se encuentren el/los componente/s mas apropiados para el caso en cuestión. Al final lo bonito es que el nuevo componente pueda re utilizar múltiples veces.
SharePoint es una expelente herramienta de colaboración, trabajo en grupo y comunicación. No obstante la faltan algunas herramientas "sociales" que incrementen la participación de las personas, creación de comunidades, networking, nubes de etiquetas, perfiles de usuario, expertos, etc.
La herramienta NewsGator Social Sites añade todas estas características a los portales construidos con SharePoint.
Aquí un vídeo que muestra el funcionamiento de esta herramienta.


Publicado en http://jdieguez.wordpress.com
Hace tiempo que estuve investigando las posibilidades de poder etiquetar la información almacenada en listas y bibliotecas de SharePoint con categorías organizadas en árbol(Meta data jerárquico/Taxonomía)
Encontré un producto que permite añadir estas funcionalidades a SharePoint. El producto se denomina SharePartXXL Taxonomy Extension.
En la web del producto, después de un breve registro se puede descargar el producto para prueba. La descarga contiene una solución y un fichero con script, ejecutando el último se instalaran en el servidor el producto, ahora solo hay que acceder al sitio en el que queremos tener esta exención.
El producto consiste en una característica que hay que activar.

Al activar la característica(feature) en la barra superior aparece la pestaña Categories.

Dentro de la pestaña(sitio) Categorías se encuentra la lista Categories en la que crearemos el árbol de Categorías(creando elementos de Lista).
En este caso hemos creado la categoría Madrid que esta dentro de la categoría Oficina. Paralelamente y si así se indica se crean pestañas en la barra superior para las categorías de primer nivel.
En este caso hemos creado la categoría RR.HH que esta dentro de la categoría Departamento.
Ya hemos configurado las categorías, ahora vamos a etiquetar la información según este árbol de categorías.
En una lista(en este ejemplo es una lista de Responsables de departamentos) creamos una columna de tipo "Lookup to SPXXL Categories".

El mismo dato(en este ejemplo persona responsable) puede pertenecer a distintas categorías dentro del árbol(ser responsable de RR.HH de la oficina de Madrid).

Podemos navegar a las categorías utilizando el menú de pestañas superior y el menú de acceso rápido, cuando estemos en una categoría(en el ejemplo Departamento - Sistemas) veremos los elementos que están etiquetados con la categoría actual.
En el siguiente enlace hay un vídeo de demostración del producto:
http://www.sharepartxxl.com/custompages/SharePartXXL-Taxonomy-Extension-Demo.html
El producto funciona en WSS y parece bastante asequible(1 Single Server License:950 €) y útil.
Publicado en http://jdieguez.wordpress.com
Interesante reflexión en el blog de Adam Buenz "Differentiating Between the Cost and Value of SharePoint" con el que estoy totalmente de acuerdo.
La cuestión es habitual en cualquier organización que plantea mejorar sus procesos y herramientas con soluciones colaborativas y de gestión de conocimiento:
¿cuanto se ganara con esta inversión(hay que comprar licencias, nuevos servidores, desarrollar componentes)?
Realmente es una cuestión difícil o casi imposible de valorar, si bien la inversión es muy fácil de estimar y planificar el ahorro(el retorno) es imposible de estimar en términos económicos.
¿cuanto se gana(o no se pierde) con un Cliente satisfecho, el cliente que recibe la solución rápido y de acuerdo a su demanda?
¿cuanto se gana con un Empleado satisfecho que aporta la solución acertada y de forma inmediata cuando su Cliente lo necesita?
¿cuanto dinero genera la divulgación de los conocimientos de una organización?
¿cuanto dinero genera la comunicación fluida entre todos los integrantes de la cadena de valor?
¿alguien lo puede resolver?:-)
Como contaba en el anterior post estoy revisando las distintas piezas de arquitectura que pueden componer marco de trabajo.
En este contexto he estado mirando los distintos proyectos disponibles en Internet y he elaborado un cuadro que refleja los bloques que componen estos marcos de trabajo.
Mi idea es estudiar cada uno de ellos y utilizar sobre todo las ideas y conceptos o quizás elegir uno de como base para el marco de trabajo que utilizare para los proyectos.
Publicado en http://jdieguez.wordpress.com
Actualmente estoy trabajando en un proyecto muy interesante, se trata de una conjunto de Portales basados en SharePoint orientados a ofrecer servicios de Formación a los clientes de la empresa élogos.
Hace poco hemos estado reunidos para revisar algunos bloques de arquitectura que se deberían de contemplar en la solución.
Una de las piezas que estamos contemplando consiste en una infraestructura en la que es posible que el cliente(portal) consuma objetos de negocio (interface) cuya implementación se conectar por medio de la configuración.
Otra posibilidad es que la aplicación pueda “conectar” dinámicamente y en tiempo de ejecución distintas implementaciones según la configuración o condiciones del contexto.
Esto tiene similitud con el modelo Proveedor que usa ASP.NET. Un proveedor es una modulo que proporciona un determinado servicio bajo un interfaces uniforme.
Los proveedores permiten por ejemplo, en una aplicación ASP.NET cambiar un repositorio de estado de sesión indicando el proveedor(SessionState Provider) concreto en el fichero de configuración, de esta forma si decidimos cambiar o incluso extender la implementación de donde y como se almacena el estado de la sesión no tendremos que hacer nada con la aplicación que consume el servicio.
El uso de proveedores y de implementaciones “enchufables”(plugin) permiten obtener muchas más flexibilidad para construir aplicaciones que consumen servicios heterogéneas y en los cuales los orígenes de estos servicios pueden cambiar con muchas rapidez.
En este contexto he estado investigando o infraestructuras mas genéricas en .net que permiten hacer uso de los patrones “Inversion of Control Containers” y “Dependency Injection” entre ellos:
- Castle Windsor : Pieza que forma parte(independiente) del proyecto OpenSouce Castle. Es un conjunto de bloques de arquitectura para ampliaciones empresariales .NET.

- Unity Application Block (Unity): Esta pieza se ha incorporado en el framework empresarial de MS(Enterprise Library 4.0), se puede descargar e instalar por separado(sin necesidad de usar las otras piezas de la Enterprise Library), acompañada de una documentación muy extensa.
.png)
Otro proyecto que contiene bloques de arquitectura es http://www.springframework.net, es bastante interesante.

Más referencias útiles para profundizar sobre este tema:
The Unity Community Web Site on CodePlex Loosen Up - Tame Your Software Dependencies for More Flexible Apps Design Patterns: Dependency Injection in MSDN Magazine
Una reflexión: Para madurar una arquitectura es muy interesante revisar como lo resuelven determinados proyectos como los aquí mencionados, e incluso decidir la adopción de uno de estos framework.
Publicado en http://jdieguez.wordpress.com
Hace justo un año que me puse en serio con esto de tener un blog. Durante este año he intentado poner en este espacio algunos comentarios, reflexiones y referencias que a mi me resultan interesantes y tienen relación con el tema que me apasiona (la colaboración via Web en las empresas).
Tener un blog es una experiencia gratificante, te permite reforzar tu conocimiento sobre determinados temas, sobre cualquier tema que quieres postear precisa una reflexión. También es gratificante saber a veces que tu post ha ayudado a alguien(es la mejor experiencia que vivo como Bloger) .
Otro de los aspectos curiosos es recibir comentarios anónimos que te acusan de todo(de ignorante, de copiar y pegar y de mil cosas mas), este es el fenómeno que no logro entender ¿Quién sois los anónimos anti-blogers?
En la actualidad hay muchas empresa en la que las líneas de negocio están utilizando el canal Web para resolver los procesos de negocio(desde un listín de empleados en la Intranet hasta un CRM).

En este contexto las unidades IT tanto internas como externas (los departamentos de sistemas) son los que desarrollan y ponen en marcha las aplicaciones. Como es natural al pasar por manos de expertos IT las soluciones tardan en ser accesibles para los negocios. Muchas veces cuando la solución es implantada ya no responde a las necesidades. El negocio está en continuo cambio.
La empresa actual necesita el software que cambie a su ritmo. ¿Cuál es la solución?
La forma de resolver esto pasa por ofrecer software en la que el propio negocio tenga control pleno para modelar y configurar las soluciones.
En este punto hay que recordar la agilidad que tiene Excel para resolver la gran parte de necesidades de la empresa(muchos informáticos lo odian por esto:-)).
¿Qué tiene que ver todo esto con SharePoint?
SharePoint es la herramienta que permite integrar en el interfase Web(Portal) la información proveniente de diversas fuentes.
Dentro de SharePoint un consultor de negocio(no experto IT) puede componer de forma oportunista la solución que permite responder a las necesidades del negocio en cada momento.
Un ejemplo de esta “composición” es la forma en la que se configuran las páginas de iGoogle: se puede comenzar con una página en blanco e ir añadiendo componentes que integran información de diversas fuentes. El proceso es fácil, ágil e inmediato.
¡Buenas noticias!
Microsoft acaba de lanzar una solución que permite crear contenidos e-Learning de forma fácil.
Se trata de Learning Content Development System (LCDS), este es una aplicación Windows que permite crear contenidos e-learning(cursos, tutoriales, etc).
Estos contenidos se pueden empaquetar en formato SCORM 1.2 y publicar en cualquier servidor de contenidos de formación (LMS).
Microsoft ya tiene una solución para alojar contenidos e-learning, SharePoint Learning Kit, ahora con esta solución se cubre tanto el alojamiento de los contenidos e-Learning como la creación de los mismos.
De momento la herramienta es gratuita.