Saturday, May 1, 2010

Technologielandpark

Kurz eine Auflistung der technischen Basis des Programms

Technogien
  • Programmiersprache Java 1.6.x
  • Programmiersprache Scala 2.8.0
  • Datenbank: JavaPersistenceMap mit eclipselink (Objektrelaltionaler Mapper)
  • GUI: Netbeans 6.8
  • Reporting: JasperReports
  • Unzählige UtitltyBibliotheken: apache-commons, google-collections, slf4 for logging, ...

Architektur

de.courir.db
-> Enthält die Logik um die zu verwendende Datenbank auszuwählen, bindet die DataAccessObjecte ein und stellt die Gui zur Verwaltung der Datenbank bereit.

de.courir.dao
-> Enthält die JPA-Entitäten

de.courir.connector.hsqlb, .mysql, .postgresql, ...
-> Die einzelnen Connector-Plugins enthalten die Treiber für die verschiedenen Datenbanken inkl. Anpassbarer Konfigurationsoberfläche

de.courir.core
-> Enthält, wie geplant, 90% der wiederverwendbaren Logik der Applikation. Vollständig in Scala geschreiben.
-> Das Plugin hat im Moment zwei architekturell bedingte Nachteile: 1. Es enthält auch den Code für zahlreiche andere Plugins. 2. Sein Code befindet sich in einem Subplugin: de.courir.core.scala. Beides ist der Tatsache geschuldet, dass sich Scala 2.8. bisher in Netbeans nicht sinnvoll einsetzen lässt.

de.courir.gui
-> Sämtliche Grafischen Eingabekomponten, baut direkt auf core auf.

de.courir.ui
-> Etwas dämtlicher Name. EnthältGrafische Ressourcen etc für Icons, die im Sourcecode verwendet werden.

de.courir.report
-> Enthält die zu verwendenden Reports und die Reporting-Engine jars.

de.courir.autocompletion
-> Hilfsplugin. Enthält Dateien etc für die Autovervollständigung z.B. der Vornamen.

Zahlreiche externe Bibliotheken, die im Moment noch einzelne Plugins sind, zukünftig wahrscheinlich zusammengeworfen werden:
apache-commons, google-collections, glazedlists, swingx, slf4j


Entwicklungsumgebung
Die Hauptentwicklung erfolgt im plugin de.courir.core.scala, das ein Intellij Projekt ist und das jar für de.courir.core zusammenschnürt.
Die Infrastruktur hingegen wird in java als Netbeans-Projekt entwickelt - Hierbei handelt es sich nebem den üblichen Kleistercode vor allem um die GUI-Fenster, in denen auf die Logik aus dem core-Plugin zugegriffen wird.

No comments:

Post a Comment