db4o analyzer at june newsletter

El bueno de Germán Viscuso me acaba de avisar que mencionaron adb4o analyzer en el db4o newsletter de junio en la parte de projects, que buena noticia.

Mostrar fields en Db4o Analyzer

Estuve mirando en Db4o Analyzer y Object Manager la forma en que muestran las collecciones:

En Object Manager:

y en db4o Analyzer:

El problema está en que si un campo es una collección, muestra el tipo de dato de la collección. No muy útil por parte ambos.

Object Manager tampoco muestra el valor del Guid en el campo Id, esto creo que puede corregirse sin mucho código.

Voy a tratar de corregir esto de las collecciones en Db4o Analyzer, algo más a la lista del TODO.

días de refactoring para db4oanalyzer

En estos días estuve un poco ocupado para continuar agregandole features db4oanalyzer, pero si estuve haciendo un poco de refactoring. Aún quedán muchas cosas por hacer.

Estuve escribiendo algunas lineas para un parser para assemblies, de modo de poder crear funciones especializadas para trabajar con nuestras clases dentro de db4oanalyzer, quizás algún día se pueda realizar algún Query Maker a partir de una interfaz gráfica amigable y que genere el código para nosotros. Para el parseo del assembly estoy usando Mono.Cecil, un aplauso para JB Evain por esta librería !!! Inspeccionar assemblies con esta librería es facil, aparte de poder generar assemblies del formato ECMA CIL. Héchenle un vistazo aquí:

http://www.mono-project.com/Cecil

o aquí van a encontrar post sobre Cecil:

http://evain.net/blog/articles/category/cecil

Entre las otras cosas que pude hacer es mejorar el look-and-feel del árbol de objetos:

Configurar referencias para Db4o Analyzer

Para poder usar referencias de nuestras clases, entidades quizás, en Db4oAnalyzer, por ahora solo lo podemos hacer utilizando el archivo de configuración de la aplicación Db4oAnalyzer.exe.config.

<?xml version=”1.0″ encoding=”utf-8″ ?>
<configuration>

    <configSections>
        <section name=”db4oanalyzer” type=”Db4oAnalyzer.Core.Cfg.Db4oAnalyzerSection, Db4oAnalyzer” />
    </configSections>

    <db4oanalyzer>
        <references>

            <add name=”System” framework=”true” />
            <add name=”System.Data” framework=”true” />
            <add name=”Db4objects.Db4o.dll” />

            <add name=”E:\Assemblies\Entities.dll” />

        </references>
    </db4oanalyzer>

</configuration>

 El path del assembly con nuestras entidades de negocio (”Entitties.dll”) lo hemos puesto al final de los otros assemblies. Las entidades que corresponden al framework son marcadas: framework=”true”, el default es false.

Por ahora, estas referencias deben ser configuradas antes de iniciar la aplicación. 

Db4o Analyzer

Comenzé este pequeño proyecto Db4o Analyzer para facilitar el modo de probar nuestras consultas con db4o, escribiendolas desde una “snippet” IDE.

Por ahora, está soportando a C# como único lenguaje, pero la idea es extenderlo hacia otros. Tiene resaltado de Sintaxis e autocompletado de código, y esto gracias a las librerias opensource que se encuentran como parte del Core de SharpDevelop. De hecho esta herramienta fue escrita en dicha IDE.

La idea básica es ir agregando comando para poder visualizar mejor los objetos retornados, por ahora, podemos hacer esto:

draw<Persona>(db.Query<Persona>());

y con esto se realizará el query hasta la base, y podremos obtener en un arbol la consulta:

 Con este mismo enfoque podemos hacer nuestras queries, inclusive pobrar nuestras Native Queries.

ToDo (Cosas por hacer):

  • Soportar VB proximamente.
  • Permitir referenciar otras assemblies sin reiniciar la IDE.
  • Modulo de Configuración de la Aplicación.
  • refactoring !