January 2009 - Artículos
El sistema Wiki es una herramienta muy útil documentar y almacenar el "conocimiento".
De forma ágil y natral un equipo/una organización puede ir recopilado y almacenando la información sobre un determinado tema, relacionar esta información(por medio de enlaces), la información se localiza gracias al buscador que suele incorporar un Wiki.
Hace poco estuve revisando la posibilidad de "montar" un Wiki en el proyecto en el que estoy trabajando actualmente. Por supuesto lo primero que pensé fue utilizar Windows SharePoint Services que incorpora de fabrica la posibilidad de crear sitios Wiki.
El inconveniente en estos momentos es no poder disponer de una máquina con con Windows Server 2003:-(
Ya que no tengo Windows 2003 decidí revisar las aplicaciones Wikis basado en Java. La ventaja de Java es que existe multitud de aplicaciones que se distribuyen con el servidor Web(apache tomcat es mas que un servidor Web) y base de datos incorporados, esto permite que el proceso de instalación sea un copiar y pegar.
Buscando en Google he encontrado unas cuantas opciones, entre todas me quede con XWiki.
http://www.xwiki.org/xwiki/bin/view/Main/
Existe un instalador todo en uno para Windows que permite en 10 minutos tener el Wiki instalado y comenzar ha hacer pruebas con el.
Para que todo funcione bien hay que descargar previamente el JDK 6. Después de instalar el Wiki podemos ira al menú Inicio, arrancar el servidor y navegar al Wiki.
En el lado derecha superior esta el enlace Log-In, haciendo clic en este podemos entrar con el usuario Administrador(id:Admin clave:admin).
A continuación dejo algunas capturas de pantalla:
- Menú superior que permite administrar el sistema.
- Edición de una página.

La verdad que después de 20 minutos probando el Wiki parece bastante ágil y cómodo.
¿alguien ha tenido experiencia con esta o otras aplicaciones de este tipo?
Hace un tiempo estuve revisando diferentes piezas de arquitectura para conformar un marco de trabajo para el desarrollo con Asp.Net:
http://jdieguez.wordpress.com/2008/05/18/marco-de-trabajo-para-aplicaciones-webnet/
Ayer me encontré con una referencia muy interesante. se trata del proyecto Sharp Architecture que consiste en una arquitectura basada en NHibernate y MVC Framework.
La arquitectura también hace uso de la biblioteca Castle Windsor para implementar el patrón de Inyección de Dependencias que comentaba en el anterior post.
Puede servir como base o como guía para plantearse una arquitectura base para desarrollos en ASP.Net.
La documentación y el código fuente es bastante didáctico.
Hace poco tuve la suerte de participar en un proyecto de construcción de una solución corporativa con tecnología Java. En ese proyecto pude por fin tocar el famoso Spring Framework.
En el corazón de SPRING consiste en un componente(contendor) que facilita el empleo del patrón de arquitectura Inyección de dependencias(ID). Este patrón ampliamente en el desarrollo de aplicaciones empresariales en JAVA.
El patrón ID tiene como objetivo lograr el desacoplamiento(reducir dependencias) de componentes de una aplicación. El desacoplamiento ofrece múltiples ventajas, entre ellas:
- facilidad para desarrollo Test-driven development (TDD),
- facilidad para realizar cambios en la aplicación sin afectar su estabilidad,
- flexibilidad para la exención de la aplicación,
- facilidad para introducir servicios trasversales.
He seleccionado algunos de artículos referentes a ID que explican en detalle las ventajas del uso del patrón:
El desacoplamiento se logra introduciendo un componente(Contenedor de ID) que es el responsable de instanciar clases, inicializarlos y devolver sus instancias a la aplicación cliente.
La aplicación cliente solo maneja Interfaces y no tiene dependencia de una implementación concreta de las clases que utiliza. Cuando la aplicación cliente necesita obtener un componente(un servicio) ya instanciado, lo hace solicitándolo al contenedor por medio de un "localizador"
Otra de ventajas es que al delegar la ceración de los objetos en un contendor, se puede tener controlado en un único punto el ciclo de vida de los objetos(en su momento conceptos similares estaban implementados en el Microsoft Transaction Servicer). Por otro lado este contendor puede servir/representar el contexto de la aplicación, este contexto se puede "cachear", almacenar o distribuir.
En su día ya comente que en .NET existía varios frameworks que implementaban el patrón ID, entre todos creo que tiene mucho sentido revisar las posibilidades del Microsoft Unity(actualmente esta en su versión 1.2).
Este biblioteca forma parte de las famosas Enterprice Library en su versión 4.1 .
Microsoft define Unity como "The Unity Application Block (Unity) is a lightweight extensible dependency injection container with support for constructor, property, and method call injection."
Unity se puede utilizar por separado sin otros bloques de EntLib, podemos descargar Unity en MSDN.
Además existe una versión de Unity para Silverlight:
http://www.microsoft.com/downloads/details.aspx?familyid=0991CEDB-953A-4367-A2B6-071E31766B4C&displaylang=en
Si descargamos MS Unity nos encontramos con en el código fuente de la biblioteca, los binarios, ejemplos de uso y un fichero de ayuda con todo lo necesarios para comenzar el uso de la biblioteca.
A continuación un pequeño ejemplo muy básico de como se trabaja con Unity.
//El contenedor
IUnityContainer myContainer = new UnityContainer();
..
// Retrieve logger type name from configuration
String loggerName = ConfigurationManager.AppSettings["LoggerName"].ToString();
ILogger myLogger = myContainer.Resolve<ILogger>(loggerName);
En este un fragmento,una aplicación utiliza un Logger, la aplicación no sabe nada de la implementación y no tiene dependencia de la clase que implementa el Logger, solo conoce el interfase ILogger.
Obtiene la instancia de Logger pediéndolo al Contenedor y apoyándose en una configuración que almacena la referencia a la implementación de la clase blogger(podríamos cambiar el Logger sin tener que recompilar la aplicación solo cambiando la configuración).
El empleo de esta biblioteca puede ser bastante útil!!!!!, ¿alguien ha tenido alguna experiencia con esta biblioteca o similares?
Me ha gustado mucho el post de Jason(Microsoft) en el que explica de forma muy breve y visual los trucos para adaptar la visualización de la lista a las necesidades de los usuarios.
Se trata de cosas muy triviales pero seguro que esta referencia es muy útil para los usuario funcionales con los que colaboramos en los proyectos.
Aquí esta el enlace:
How to make a SharePoint list look the way you want
Los temas que trata el post son:
- Crear una lista
- Añadir columnas, Columnas calculadas
- Crear vistas
- Agrupar por una columna
- Ocultar el menú contextual
- Configuración del formulario
Hace tiempo publique un post parecido(este es esta en Español:-)) que también puede ser útil para los usuarios que se inician en el manejo de SharePoint.
Gestión de la información en las listas de SharePoint

Ye están apareciendo capturas de pantalla de la futura versión de Office(la 14).
No se si son de verdad pero bueno aquí están:
http://www.oszone.net/8655/Leaked_First_Office_14_screenshots
Hace tiempo ya comente la solución de Microsoft SLK que permite impartir cursos on-line con ayuda de SharePoint.
Microsoft SLK(SharePoint Learning Kit) es un producto gratuito y de fácil instalación y permite de forma rápida añadir funcionalidades e-Learning a nuestro site SharePoint.
Las funcionalidades que proporciona SLK están enfocadas a poder albergar y lanzar cursos en formato SCORM.
¿Y si se necesitan mas características e-Learning?
He estado revisando un producto comercial que se denomina SharePointLMS y ofrece una lista de funcionalidades bastante mas amplia que SLK.
SharePointLMS cuenta con herramientas que permiten:
- impartir formación: administrar cursos,usuarios, tutores, grupos, informes.
- crear y administrar contendidos: importación y ejecución de contenidos SCORM 1.2/2004, evaluaciones y ejercicios, cuestionarios de calidad.
- -comunicar-colaborar: es posible acompañar los contenidos e-learning de foros y chat.
Algunas características a destacar:
- WebPart "Mis Cursos": Podemos hacer que el alumno tenga acceso a sus contenidos desde cualquier pagina de nuestro portal SharePoint.

- Informes de progreso: Una serie de funcionalidades que permiten configurar informes para poder revisar el progreso de los alumnos en los cursos.
- Categorías: Los cursos se pueden clasificar según una estructura de categorías. Las categorías se configuran en un árbol.

- Cursos: Los cursos pueden contener no solo un contenido(scorm o documento) sino también Foros, Chat, Calendario de la formación, Anuncios, Cuestionarios, Documentos y muchas mas cosas.
- Learning Path: Una herramienta que permite crear contenidos(una árbol, en el que cada nodo esta asociado a un archivo) e incluso condicionar el acceso a un nodo de contendió en base a que el alumno haya visto otros nodos.
- Ejercicios: - Se puede crear ejercicios de diversos tipos: test, arrastrar, seleccionar en una imagen, etc.
Se puede ver una serie de vídeos que exponen todas las funcionalidades del producto en esta dirección:
http://www.sharepointlms.com/tutorials/SPLMS/index.htm
Las funcionalidades del producto parece potentes y muy competas, ahora bien en ningún lugar de la web del fabricante aparece el precio, he enviado un email y estoy a la espera de que me centén cuanto cuesta esta maravilla:-)
Recientemente me he encontrado con un articulo en MSDN Magazine que se titular "Build Line-Of-Business Enterprise Apps With Silverlight, Part 1".
Otra referencia interesante(que aparece en este articulo) tambien de MSDN Magazine es:
Drill Into .NET Framework Internals to See How the CLR Creates Runtime Objects.
En el blog del equipo del producto SharePoint se anuncia el lanzamiento de la versión Community Technology Preview 1.3 de las exenciones de VisualStudio para SharePoint.
Esta nueva versión preview ya esta disponible para su descarga en el sitio Microsoft Connect.
La versión 1.3 cuenta con algunas mejoras interesantes. Entre todas la que mas me ha gustado es esta:
"Refactoring support for renaming of Web Parts. Previously renaming a web part required changes in several files in the project)"
La versión esta prevista para la primavera del 2009.