|
|||||
|
|||||
Features
Some noise from an introductory email I sent on it about a month ago, to be replaced with happy bullet lists soon The Dentaku Framework is an event-driven application framework that was started during the creation of the Dentaku Application, an accounting/CRM thing. I'd had exposure to Plexus, and found myself with following the 80/20 rule with a couple of days work. So it goes for inception. I'm a big fan of Plexus, mainly because of it's very large component library and use of XStream for dependency injection configuration. The next components to be added were Werkflow and Drools, which are added as components to the system and can be configured in (or out) in simple configuration changes via Plexus. Maven is used exclusively for builds, with what has proven to be a very versatile build configuration over about a half-dozen basic modules. Of course, TDD comes with Maven and a few tests are set up. DF is not comparable to WebWork or Struts; the actions of these frameworks are generally utilized to generate events and render the results. It would be easy to front-end a DF application with XUL or a Java fat client, and properly written applications would have no problem hosting any combination of all user interfaces. A generic persistence architecture has been developed that should be portable to most OR mappers. An initial implementation has been developed using Hibernate, but is intended to quickly migrate over to Tranql, and should be runtime selectable with the proper preparation. Now, if that were all DF was, it would probably be something that someone could use Spring for instead. Apps need strong persistence architectures, and Spring has that. Where DF is different is in the code generators. Code generation from UML XMI is a part of the build process, and custom Generama modules have been developed for generating persistence entities and relations from the UML. By focusing on code generation from UML, developers can generally get quality persistence code generated for free just by doing a good UML model. Both MagicDraw and Poseidon have free "community edition" tools for generating the source UML, and both are compatible with the generators. As an added bonus, because the persistent model source is in UML, the UML documentation of the project is maintained "for free". It's quite common for projects to start out using UML to develop entity relationship diagrams, but without code generation, those documentation artifacts generally become stale almost instantly. The code that is generated is completely compatible with the persistence mechanism. It's also possible to easily develop your own code templates using Velocity, so you could roll your own persistence component, add the required metadata for your persistence, and plug it in if you liked. The first release of the code is roughly coincident with the completion of an application for a NYC-based organization. Their existing app was completely ported over to the system in about three man-weeks once the framework was ready. Their application runs on Oracle and JBoss with Struts for the front-end, but JBoss is almost unused. It seems that most of the annoyances of developing with DF were addressed during this period, and very few changes have been made to it recently. It's ready for another application to be built with it, so it's time to open things up a bit. I don't think that it would have been quite this easy to generate their app any other way. That's just me though. Future plans for DF are many, and they look really good. Documentation is an initial focus. DF should generate a lot of interest with recent industry interest in code generation as a best practice. DF started as an accounting/CRM system, and that project will continue under separate auspices. A lot of the fallout there will be rolled back, including automated generation of basic CRUD UI for entities based on common warehouse metamodel XMI. |
|||||
|
Copyright 2003-2006 - The Codehaus. All rights reserved unless otherwise noted.
Powered by Atlassian Confluence
|
|||||