BlackPoint – Framework

BlackPoint Framework es un componente que permite desarrollar los adaptadores de contenido (módulos encargados de extraer la información de los archivos), los repositorios (módulos para persistir los datos de la aplicación), y para implementar la aplicación cliente de BlackPoint.

Precisamente este framework es el que estoy usando para desarrollador el adaptador para PowerPoint 2007, el repositorio en archivos XML y la aplicación cliente en Windows Presentation Foundation. Básicamente este framework provee:

  • Las interfaces con las que se deben programar para BlackPoint y los objetos que se pasan entre los distintos componentes de la aplicación.
  • Métodos de extensión para facilitar tareas de convertir objetos a XML y viceversa.
  • Implementaciones básicas de las interfaces para contenido.
  • Eventos para notificar al cliente sobre sucesos de los adaptadores.
  • Otros miembros de que ayudan en la implementación de los componentes.

El siguiente es un diagrama de clases del framework de BlackPoint:

BlackPoint.Framework

  • IOpenXmlPart: Representa una parte del contenido de un archivo, por ejemplo cada una de las diapositivas de una presentación se representan como una parte.
  • IOpenXmlContent:Representa un contenido en particular, por ejemplo todo una presentación en PowerPoint 2007.
  • FrameworkOpenXmlContent y FrameworkOpenXmlPart: Implementaciones concretas de las interfaces IOpenXmlContent e IOpenXmlPart, estas implementaciones se ofrecen en el framework para evitar que los desarrolladores tengan que hacerlo en sus propios adaptadores, si lo desean pueden crear también sus propias implementaciones.
  • ILibraryRepository: Cualquier repositorio de datos que se desee usar para BlackPoint debe implementar esta interfaz.Un repositorio se encarga de almacenar los datos de los contenidos, puede ser en archivos XML, bases de datos, etc.
  • IOpenXmlAdapter: Los adaptadores son los encargados de leer el contenido de los archivos y extraer sus datos, la información es cargada dentro de un objeto que implemente la interfaz IOpenXmlContent. Por ejemplo el adaptador de PowerPoint 2007 lee un paquete con extensión “.pptx” y extrae la información de Título, Autor, Descripción, Palabras claves, diapositivas y una vista previa de cada una.
  • IFileType: Permite identificar los archivos soportados por cada adaptador. Por ejemplo el adaptador para PowerPoint 2007 se usa para archivos con extensión “.pptx”.
  • ContentImportedDelegate y ContentEventArgs: Evento personalizado para notificar cuando a los subsciptores cuando un adaptador ha terminado de importar un contenido, se pasa como argumento el contenido importado.
  • Utils.GetImageStream: Lee una imagen de una Uri y la convierte a un mapa de bits en memoria.
  • Extension ToOpenXmlContent: Convierte un objeto XmlNode a IOpenXmlContent.
  • Extension ToXmlElement: Convierte un objeto IOpenXmlContent a un objeto XmlElement.
  • BlackPointSettings: Provee configuraciones generales del framework, como los nombres de los elementos para archivos XML.

Como se podrán dar cuenta, un principio básico que intento seguir es el de programar contra interfaces y no contra objetos en concreto, de esta forma se facilita la extensión del código y el soporte para nuevos módulos personalizados o especializados.

En entradas futuras publicaré mas diagramas de clases usados en BlackPoint. Como ven se han realizados algunos cambios desde la primera versión de este diagrama.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: