Archive for Febrero, 2007

Dependencias y prototipo

El proyecto sigue adelante (aunque lentamente). La plataforma MonoDevelop, realmente no estaba preparada para la creación de otras aplicaciones graficas. Es decir, el control de las perspectivas y la definición de las barras de herrmamientas y las vistas, forman parte de MonoDevelop.Ide. Es por eso que parte de estas funcionalidades las tendré que portar a GConta.Gui. Aunque de estos detalles hablaré mas adelante. Por ahora las dependencias con MonoDevelop son las siguientes:

  • MonoDevelop.Core: Contiene la funcionalidad básica para la carga de plugins, y la creación de los arboles con las extensiones.
  • MonoDevelop.Gui: Contiene algunas ventanas utilies, como ventanas de progreso, información y asistentes.
  • MonoDevelop.Components: Principalmente, contiene las barras de herramientas ajustables, ademas de clases para facilitar la construcción de estas y menus.
  • MonoDevelop.Dock: Contiene la funcionalidad de las vistas, pudiendo ordenar y desacoplar los Pads (o vistas), ademas de poder guardar la disposición de éstas (layout o perspectivas).

Pronto habrá avances gráficos, que es lo que la mayoría de la gente quiere. Hasta que se pueda cargar correctamente los Pads y menús mediante los correspondientes Addins, dejo un prototipo de pantalla de GConta, para que se haga una idea de la información adicional que las vistas pueden proporcionar.

GConta Prototipo

Por otra parte estoy intentando configurar Ibatis.Net con SQLite de forma que sea fácil la creación de empresas, pero teniendo en cuenta que en un futuro se pueda utilizar otros SGBD, o un incluso otra capa de persitencia como NHibernate, para ello voy a usar la implementación del DAO que viene con Ibatis.Net. Seguiremos informando!

Sigo vivo

Bueno, escribo para decir que el proyecto sigue vivo, aunque no lo parezca. He estado como la mayoria de participantes liado con los examenes (además del trabajo…). Pese a todo seguía con la investigación de la plataforma de MonoDevelop y el desarrollo de GConta. Iré subiendo información con forme la vaya pasando a limpio. Como anticipo dejo un diagrama de clases, sobre el paquete MonoDevelop.Core.

monodevelopcore.png

Lo más interesante de este diagrama, es la clase Runtime, y sobre todo el AddInService, donde reside toda la magía de las extensiones, ya que es ésta clase la que se ocupa de cargar dinámicamente los archivos .dll de las extensiones, y se ocupa de mantener actualizado el arbol de extensiones.

Uno de los objetivos de este proyecto, también era aprender C#, y sobre todo, desde el punto de vista de un desarrollador java. Es por eso que también estoy confeccionando una lista de “cosas extrañas” a los ojos de los javatos. Como por ejemplo, la palabra clave params.

public void UseParams (params int[] list);
...
UseParams(new int[4] {4, 5, 2, 1});
UseParams(1, 2);
UseParams(5, 6, 7);

Ahí podemos ver un ejemplo de uso de params. No será un revolución pero desde luego que más simple sí que queda.