Introducción

  1. ¿Qué es?
  2. Características
  3. Limitaciones
  4. Uso

 

¿Qué es?

Memento Persistence Foundation (MPF de ahora en adelante) es un desarrollo abierto y libre que no persigue ningún ánimo de lucro, nació como una alternativa personal ante la dificultad de usar EF en capas sin acceso al contexto. Por ello se diseñó como algo fácil e intuitivo que permitiera al desarrollador centrase únicamente en lo realmente importante de la aplicación, la lógica de negocio, sin preocuparse de como se guardan los datos, hasta aquí nada nuevo, sin embargo la posibilidad de poder navegar por la BBDD a petición sin ningún preocupación por el estado de la conexión con la BBDD fue la piedra angular que guiaba el objetivo último de este desarrollo.

Antes de proseguir tan sólo indicar que MPF no pretende ser la panacea que todos buscan, es tan sólo otra de las múltiples soluciones que ya existen en el mercado, su único objetivo es ayudar al programador a sentirse más cómodo durante su desarrollo y liberarle de las tareas tan tediosas como la del desarrollo de la capa de acceso a datos.

Como se mencionó anteriormente MPF nació como una librería personal que poco a poco fue creciendo y adquiriendo cuerpo hasta el punto en el que pensé que podría ayudar a alguien, cuyo proveedor de acceso a datos le supone un obstáculo constante en su día a día, así que para todos aquellos que estén interesados les invitó a probar MPF y comprobar si realmente le es útil en su trabajo, porque ni MPF es para todo el mundo ni todo el mundo necesita MPF.

 

Características

El principal objetivo de MPF es el desarrollo ágil de nuevas aplicaciones con conexiones a bases de datos de forma transparente con un modelo relacional personalizado de objetos.

Algunos de los puntos más importantes que MPF ofrece son los siguientes:

  • Permite utilizar un modelo de dominio persistente.

    • Con esto se consigue dirigir el desarrollo hacia una implementación totalmente POO y tratar cualquier tabla como un objeto de dominio.

  • Manejo de relaciones de objetos complejos.

    • Al tratarse de un modelo relacional cualquier operación entre dos entidades requiere un relación física que permita mantener la coherencia de la orientación a objetos, es decir, para MPF es indiferente que A contenga a B1 y B2 como que B1 y B2 sean contenidas por A, las operaciones se ejecutan en cascada según la jerarquía propuesta por el modelo físico. Esto permite despreocuparse por el estado de las entidades dado que serán sincronizadas en el momento en el que ellas mismas o bien otras relacionadas entren en juego.

  • Carga datos a petición (Carga perezosa) en contextos desconectados.

    • Uno de los principales aspectos de MPF es que toda la información es cargada a petición, de este modo tanto el rendimiento del aplicativo como de la BBDD aumenta disminuyendo la llamadas innecesarias. Uno de los grandes atractivos de MPF es que no se necesita tener abierta una conexión o encontrarse dentro de un contexto debido a que ella misma gestiona dicho comportamiento.

  • Permite ampliar y personalizar el proveedor de acceso a datos.

    • Mediante la implementación de la interfaz de acceso a datos definida en MPF se puede personalizar el comportamiento del proveedor de acceso a datos o crear proveedores nuevos, como por ejemplo almacenamiento en ficheros, memoria, servidor remoto, etc.

  • Permite la ejecución remota de operaciones con tan sólo el modelo gracias la integración con OMF (Octopus Management Foundation)

    • MPF permite utilizar tan sólo el ensamblado donde se haya definido el modelo de dominio para poder interactuar con la BBDD, para ello se utiliza el ServiceBlock de “Memento” que ejecuta de forma remota las operaciones en el servidor OMF. De esta forma se oculta las credenciales de conexión a la BBDD a todos los clientes que acceden a la BBDD, liberándolos de tal carga y centralizando todas las llamadas en el servidor OMF.

 

Limitaciones

En estos momentos MPF únicamente ha sido testeado con SQL Server aunque los proveedores ya desarrollados que se distribuyen con el núcleo (Odbc y Oledb) deberían ser compatibles con la mayoría de motores de bases de datos SQL, tales como MySQL, Oracle o Postgre SQL.

 

Uso

MPF puede ser utilizado en cualquier proyecto que requiera la persistencia de datos en el tiempo, su división por capas hace recomendable su utilización en proyectos MVC que requieran un capa de modelo independiente.  Al no requerir librerías de terceros y utilizar únicamente el framework base de .NET no existe ningún inconveniente legal que pudiera ocasionar a futuro problemas de copyright, su licencia MIT no limita su uso comercial ni empresarial permitiendo su libre distribución.

Tal y como hemos comentado gracias a la posibilidad de personalizar el método de acceso a la capa de datos su uso no se limita únicamente a aplicaciones con accesos a bases de datos dado que podríamos utilizar cualquier medio que queramos para almacenar dicha información.

Last edited Apr 16, 2013 at 12:44 PM by codellion, version 11

Comments

No comments yet.