Last month I was starting a new private project for one of my clients. His most important request was that the structure of the business entities might change at any time! This request made me follow the model-driven development approach. In order to avoid re-inventing the wheel, I started evaluating the several open source frameworks that are available.
Finally I found a post that I had written on my own, one year ago! It was a post about Metawidget, a pretty simple to learn but very scalable Object Interface Mapping (OIM) technology[1]. Metawidget seems to be the best solution for my case, since it automatically generate the part of the GUI which binds to each domain class.
It should be noted that I preferred Metawidget because I had to develop the application was Swing based.
Notes:
[1] That how Metawidget is characterized by its own development team (reference: http://metawidget.sourceforge.net/doc/faq/core.php#oim).
Ολο και κάτι έχω πάντα να πω και να γράψω για αυτά που συμβαίνουν στην πραγματική μου ζωή ή στο μυαλό μου.. I always find something to share with you..
Εμφάνιση αναρτήσεων με ετικέτα Domain Driven Development (DDD). Εμφάνιση όλων των αναρτήσεων
Εμφάνιση αναρτήσεων με ετικέτα Domain Driven Development (DDD). Εμφάνιση όλων των αναρτήσεων
Τρίτη 6 Σεπτεμβρίου 2011
Παρασκευή 1 Οκτωβρίου 2010
Metawidget, a useful framework for easy UI development
I currently work on a project that requires a lot of forms to be implemented. For that reason I had either to design each form using a visual tool (e.g. Matisse[1]), or a domain driven design (e.g. Naked Objects pattern[2]). Due to the fact that requirements may change at any time and everything should similar, I preferred the solution of domain-driven design.
Developing a model that support everything that is required for the application and adding metadata that will be useful for the UI is a very good combination for easy and agile development of a user friendly application! While I was designing my solution I discovered that there is a new framework that could help me. It's named Metawidget[3]. Metawidget offers integration with several front end frameworks. The only framework that I have used is swing, and I would like to inform you that it works perfectly and it is easy to add your own code to extend the functionality. For instance if you need to use some additional attribute to specify how a member should be shown then you can do it easily[4]!
Try it, and if you need any help just ask me!
[1] Swing GUI Builder (formerly Project Matisse) (http://netbeans.org/features/java/swing.html)
[2] Naked Objects is an architectural pattern where User Interface (UI) is just reflection of the model. For more details see http://en.wikipedia.org/wiki/Naked_objects
[3] Metawidget is an open source project that helps you to easily generate graphical user interface for desktop, web and mobile applications. It is simply a bridge between back-end architecture (using annotations or xml files for metadata) and existing front-end frameworks (such as Swing,Java Server Faces, Struts, Android). For more informations visit the official web site http://www.metawidget.org/
[4] The only case that I can't find an efficient solution is the one that I need a JTable to represend and edit values of a java.util.Collection, but I hope that I will find the way to do it!
Developing a model that support everything that is required for the application and adding metadata that will be useful for the UI is a very good combination for easy and agile development of a user friendly application! While I was designing my solution I discovered that there is a new framework that could help me. It's named Metawidget[3]. Metawidget offers integration with several front end frameworks. The only framework that I have used is swing, and I would like to inform you that it works perfectly and it is easy to add your own code to extend the functionality. For instance if you need to use some additional attribute to specify how a member should be shown then you can do it easily[4]!
Try it, and if you need any help just ask me!
[1] Swing GUI Builder (formerly Project Matisse) (http://netbeans.org/features/java/swing.html)
[2] Naked Objects is an architectural pattern where User Interface (UI) is just reflection of the model. For more details see http://en.wikipedia.org/wiki/Naked_objects
[3] Metawidget is an open source project that helps you to easily generate graphical user interface for desktop, web and mobile applications. It is simply a bridge between back-end architecture (using annotations or xml files for metadata) and existing front-end frameworks (such as Swing,Java Server Faces, Struts, Android). For more informations visit the official web site http://www.metawidget.org/
[4] The only case that I can't find an efficient solution is the one that I need a JTable to represend and edit values of a java.util.Collection, but I hope that I will find the way to do it!
Εγγραφή σε:
Αναρτήσεις (Atom)