tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
599
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Stoke
    Stoke Stoke ist offline Mitglied
    Registriert seit
    Jun 2009
    Ort
    Salzburg
    Beiträge
    17
    Hallo,

    ich befinde mich in der Konzeptionsphase einer mittelmäßig komplexen Desktopapplikation die auf eine RCP aufbauen soll. Meine Wahl fiel auf die Netbeans Platform, die auf Swing setzt. Jedoch bin ich hier nicht fixiert, sollte es eine bessere Alternative geben werde ich mir die gerne anschauen.

    Die Applikation verwaltet eine unbestimmte Anzahl an Projekten, die verschiedene Typen haben können, etwa vergleichbar mit Java Projekten. Ein Projekt wiederum besitzt eine Menge an Entitäten, ich schätze so etwa 200 - 1000 Datensätze pro Projekt. Eine Kommunikation zwischen Projekten findet nicht statt, sie sind also komplett abgretrennt.

    Nun frage ich mich wie ich diese Daten speichern sollte. Es gibt dazu zwei brauchbare Möglichkeiten: Entweder mit einer embedded DB oder Dateibasiert.
    Da ich viel mit Datenbanken arbeite war mein erster Gedanke SQLite. Ich nehme an dass die Performance einer Dateibasierten Lösung weit überlegen sein müsste, ebenso erscheint mir die Organisation der Daten einfacher bzw logischer. Der Nachteil ist jedoch, dass die Daten relativ kompliziert exportiert und importiert bzw synchronisiert werden müssen.
    Die einfache Übertragung der Daten an verschiedene Workstations ohne Internetanschluss ist allerdings eine wichtige Anforderung.
    Ich denke hierbei zB an Word; man erstellt ein Dokument, speichert es als eine einzige Datei und öffnet diese einfach auf einem beliebigen anderen PC. Simpel.
    In dieser Art möchte ich das auch handhaben. Ist das in Java sinnvoll umsetzbar? Ein .docx File ist ja im Grunde auch nur ein ZIP Archiv, somit müsste sich das mit dem Filesystem der Netbeans Platform umsetzen lassen?

    Hat vielleicht jemand ähnliche Erfahrungen gemacht und kann mir hierbei ein paar Tipps geben? Oder denke ich gerade in die falsche Richtung?

    Vielen Dank
     

  2. #2
    wakoz wakoz ist offline Mitglied Gold
    Registriert seit
    Apr 2010
    Beiträge
    114
    Bei der Masse von Daten Sätzen würde ich eher zur eine DB Tendieren, wobei ein Datei Basierter Ansatz aufgrund der Anforderung sinnvoller ist.

    Von der Dynamic her würde ich DB Empfehlen diese Kann leichter Dynamisch ein und auslesen werden und da auch nur die Daten die ich wirklich brauche, während das Streamen von Daten etwas zeit benötigt und unter Umständen overhead mit geladen wird. Netbeans sowie Eclipse (Mein Favorit) machen die Verwaltung via Datein.

    Also eine schwere Entscheidung Schau dir am besten an wie die Datensätze strukturiert werden sollen (oder wie du es möchtest) nicht jeder Ansatz macht mit DB Sinn und passt zu den Anforderungen und dann entscheide dich. Alternativ könntest du die Daten in einer DB vorhalten und zusätzlich einen Datei in-/export anbieten.

    Zu dem Word Format -wenn du dieses mit Java umsetzten willst Apache-POI
     

  3. #3
    Avatar von Stoke
    Stoke Stoke ist offline Mitglied
    Registriert seit
    Jun 2009
    Ort
    Salzburg
    Beiträge
    17
    Danke für die Antwort. Wie gesagt, mein erster Gedanke war auch eine Datenbank.

    Aber bei näherer Betrachtung, ist die "Einfachheit" wesentlich wichtiger als Performance, solange die Performance noch in einem sinnvollen Bereich bleibt. Bei der Zielgruppe kann ich nicht davon ausgehen dass sie mit den Begriffen "exportieren" oder "importieren" etwas anfangen können, geschweige denn sich Gedanken darüber machen wie sie ihre Daten handhaben sollten.
    Deshalb ist eine Dateibasierte Speicherung deshalb wohl (leider) die einzige Lösung. Dabei sollte es genau eine Datei pro Projekt geben.

    Ich glaube dass Apache-POI nicht das ist was ich suche, ich will ja nicht mit den MS Office Formaten arbeiten, ich will nur die Idee der Archive als Datei "stehlen"...

    Wieso favorisierst du Eclipse?
     

  4. #4
    wakoz wakoz ist offline Mitglied Gold
    Registriert seit
    Apr 2010
    Beiträge
    114
    Ich habe mich mal mit Netbeans versucht. War nicht mein Geschmack. Eclipse hingegen kann man so "versauen"
    Zudem gibt es einige IT Firmen die Auf Eclipse 100% wert legen. Und bis heute waren alle die mir rahtschläge gegeben haben Eclipseuser

    Es gibt Zahlreiche Plugins die immer weiter ausgearbeitet werden und eine Vielseitigkeit garantieren.

    Zum Beispiel das man mit eclipse Java Programiert ist auch nur ein feature eines Plugins welches meist beim Download mit geliefert wird. Man kann Eclipse mit zum beispiel C Compler erweitern oder andere dinge. Ein Freund hat zum beispiel eine eingabe maske für eclipse geschrieben mit der man nicht nur ein Projekt erzeugt sondern alle Klassen und packages welche von seinen Chef vorgeschrieben werden. Ich habe eine Eclipseversion die "R" besser steuert als alle original "R" Compiler.


    Wenn du es Datei Mäßig machst Bau dir mal von Hand solch eine Datei an der du dich lang arbeitest, alle datein werden mit einem Stream reader eingelesen wie du die genau anwendest liegt aber je nach Datei Format die Nachbearbeitung immer anders.

    Bei XML zum Beispiel gibt es fertige API's welche mit zahlreichen guten Tutorials gut erklärt sind. da muss man sich kaum Gedanken über das einlesen machen.
    Beim simplen stream (FileInput) ist das einlesen schon etwas aufwendiger auch wenn alle API's dies auf die selbe weise tuen nehmen sie etwas Arbeit ab
    Aber wie gesagt alles reine Geschmacks und Anforderung sache.
    Geändert von wakoz (20.01.11 um 21:31 Uhr)
     

  5. #5
    twagi twagi ist offline Mitglied Bronze
    Registriert seit
    Jun 2003
    Beiträge
    30
    Hi,

    vielleicht ist es hier sinnvoll beide Ansätze zu vermischen, in dem Du intern mit der DB arbeitest, aber beim Speichern/Exportieren den Datenstand in eine Datei auslagerst.

    Intern kannst Du dann bequem mit der Datenbank arbeiten, kannst aber aber den Datenstand einfach austauschen.

    Für die Datei könntest Du XML nehmen, das sich ja auch gut komprimieren lässt.

    Oder Du nimmst gleich SQLite http://de.wikipedia.org/wiki/SQLite

    Gruß twagi
    Geändert von twagi (21.01.11 um 08:36 Uhr)
     

  6. #6
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    oder HSQLDB
    Ist sogar pures Java und damit (zumindest laut deren Angaben) ein ganzes Stück schneller
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  7. #7
    Avatar von Stoke
    Stoke Stoke ist offline Mitglied
    Registriert seit
    Jun 2009
    Ort
    Salzburg
    Beiträge
    17
    Danke für die Antworten.
    Ich werde versuchen beide Ansätze zu vermischen, wobei ich jetzt (...höchstwahrscheinlich) doch hauptsächlich auf eine Datenbank setzen werde. HQSLDB werd ich mir mal genauer anschauen, danke für den Tip
     

Ähnliche Themen

  1. Strategie zur parallelen Datenübertragung
    Von port29 im Forum Coders Talk
    Antworten: 0
    Letzter Beitrag: 28.11.08, 06:30
  2. Bezahlmethoden: welche Informationen speichern
    Von prinzschleifer im Forum Coders Talk
    Antworten: 5
    Letzter Beitrag: 27.09.08, 10:38
  3. Antworten: 3
    Letzter Beitrag: 24.09.08, 13:19
  4. TicTacToe Strategie des Computers
    Von sawamin im Forum C/C++
    Antworten: 6
    Letzter Beitrag: 16.02.05, 22:41
  5. Webservice in welche Verzeichnisse speichern?
    Von MichiStroi im Forum .NET Archiv
    Antworten: 16
    Letzter Beitrag: 27.08.04, 15:37

Stichworte