Wie kann ich das am besten umsetzen?

Hallo,

die Vorschläge in Ehren - doch für jemanden, der C++ von vornherein als "zu kompliziert" ablehnt... Die Lernkurve steigt bei vielen hier gemachten Vorschlägen noch mal gewaltig. Deshalb habe ich mich für mein Projekt für Java mit NetBeans entschieden. Java kannte ich (zumindest die Konzepte und die grundlegende Syntax) und mich dann gewundert, wie viel Detailwissen noch dazukommen muss.

Mir ist die Aufgaben- bzw. Problemstellung noch nicht so ganz klar. Löst man das am schnellsten und elegantesten mit FileMaker oder RealBasic oder lieber doch besser mit C++/DBMS bzw. Java/DBMS (wobei noch die Frage zu klären wäre, auf welche Grundlagen man das setzt). Zum Schluss: wer wartet die Anwendung und die Daten wenn der Themensteller mal in Urlaub ist oder gar das Unternehmen verlässt? Solls ja geben...

Peter
 
QT kostet ein Haufen Geld ;)

C++ > kommt nicht in Frage weil ich damit nicht ohne Dinge wie QT Systemunabhängig coden kann

C# > wäre mir definitiv am liebsten - ist aber M$ und daher auch nur ordentlich unter Win

Java > hab ich mir jetzt mal via NetBeans ein wenig angeschaut, scheint doch sehr C# nah zu kommen - Frage nur.. Ist DB-Coden damit schwierig?

RealBasic > sieht auch sehr gut aus, würde aber knapp 1000EUR kosten, da die IDE & die Server-Version gekauft werden muss - die Kosten aber so gering wie möglich gehalten werden müssen - da die Software für eine Schule ist.


NetBeans>Programme die mit NetBeans geschrieben werden sind doch frei von irgendwelchen Lizensen oder!?
 
Java > hab ich mir jetzt mal via NetBeans ein wenig angeschaut, scheint doch sehr C# nah zu kommen - Frage nur.. Ist DB-Coden damit schwierig?

Wenn Du Dich ein wenig mit den Dingen beschäftigst und die richtige DB auswählst und ein Persistenzframework (z.b. Hibernate in Verbindung mit Springs Hibernate-Templates) verwendest, brauchst Du für die Persistenz da (fast) nix von Hand coden.

NetBeans>Programme die mit NetBeans geschrieben werden sind doch frei von irgendwelchen Lizensen oder!?

Wenn Du NetBeans nur als IDE verwendest, entscheidest Du selbst über die Lizenz, unter die Du Deine Software stellst. Wenn Du das Netbeans-eigene Rich-Client-Framework als Basis für Deinen Client verwendest, mußt Du die entsprechende Lizenz dafür mal ankucken (wahrscheinlich so eine Sun Community License oder so). Die wird aber vermutlich nicht weiter restriktiv sein.
 
@heat-vision>>

DB: Gibt es da ein paar gute Bücher für?

NetBeans: was ist der NetBeans-RCF? *peinlich*
 
DB: Gibt es da ein paar gute Bücher für?

NetBeans: was ist der NetBeans-RCF? *peinlich*

Hallo,

da braucht Dir nix peinlich zu sein.

Die Sprachen C++/Java/C# sind auf den ersten Blick sehr ähnlich; die Grundkonzepte der theoretischen Informatik sind ja gleich.

So langsam kommen wir dem Problem ja auch näher. Du sollst offensichtlich für eine Schule ein Programm entwerfen, das die Schüler verwaltet (wohl keine 800 Lehrer...). Mir ist noch nicht so ganz klar, ob das eine Facharbeit im Rahmen des Abis oder ein Werkauftrag werden soll, der hinterher auch eingesetzt wird.

MySQL in Verbindung mit Java scheint mir echt gut dokumentiert. Die Bände Core-Java-2 von Horstmann und Cornell sollten in jeder besseren Bibliothek vorhanden sein. Sie sind nach meiner Erfahrung sehr gut. Ausserdem gibt es diverse gute Quellen im Netz.

Normalerweise gibt es bei Java die Java-VM (die virtuelle Maschine, die der Anwender/in für das fertige Programm braucht). Die gibts im Netz. Dazu kommt die Entwicklungsumgebung mit Compiler usw. Das ist alles im Mac OS X enthalten bzw. in der Developer-DVD (= XCode). Würde auch nix anderes installieren.

IDE's wie NetBeans oder Eclipse erweitern die "eigentliche" Entwicklungsumgebung um zusätzliche Routinen und Funktionalitäten (= Frameworks). Wenn Du die nutzen willst, braucht Du die Dokus und ggf. die Nutzungsbedingungen. Ich nutze für mein Projekt keine dieser Erweiterungen.

Wenn Du MySQL einsetzen möchtest, brauchst Du die eigentliche DB (einschl. Kommandozeilen-Tool) und sinnvollerweise die MySQL Administrator und MySQL Query Browser sowie den Connector/J (ggf. auch Connector/ODBC zur Anbindung von OpenOffice oder Access/Excel). Die mitglieferte Doku ist hervorragend.

Peter
 
Java-IDE> hm.. Ich hab in vielen Foren gelesen, dass XCode nich so dolle sein soll für die Entwicklung in Java!? NetBean schein ja RAD zu benutzen/haben - wie sieht das bei XCode aus? Also ich möchte schon eine IDE haben, die mir etwas Arbeit abnimmt *fg*

NetBeans> Swing & Co meinst du jetzt aber nicht, oder? Wieso benutzt du keines dieser FW für deine Projekte? Ich meine, wenn die doch sehr gut sind und einem die Arbeit sparen!?

Nutzungsbedingungen> woran kann ich denn sehen, wenn ich zB in NetBeans code, ob ich gerade ein Teil von "JavaCore" nutze oder ein FW!?

Projekt> nein, keine Facharbeit - es muss richtig eingesetzt werden und bis Ende November fertig sein - in erster Linie geht es aber um Zeugnisdaten (sicherlich, da müssen auch die Schülerdaten gespeichert sein) und Ausdruck.

MySQL> Doku in Deutsch? ;) Kann ich MySQL auch lokal zum Testen auf meinen Mac installieren? Und wird das später im Netzwerk dann per IP angesteuert!? Wenn ja, was ist dann bei DHCP?

Speed> ist Java langsamer als C#?
 
Hallo,

Fragen über Fragen.

(1) Werkzeuge sind gut oder schlecht im Hinblick auf die Aufgabe und den Anwender. Mit Xcode lassen sich sehr gut auch Projekte mit Java erstellen. Dass ich mich dann doch für NetBeans entschieden habe liegt an dem integrierten GUI-Editor. Der ist bei Eclipse ein separates Modul und die Integration war mir zu umständlich.

(2) Swing ist Bestandteil des "normalen" Java-Paketes und selbstverständlich nutze ich das.

(3) Informationen über ggf. eingeschränkte Nutzungsbedingungen stehen in der Dokumentation zum verwendeten Paket. Darüber würde ich mir bei Xcode, Netbeans und Eclipse nicht so viele Gedanken machen.

(4) MySQL gehört zum Lieferumfang von Mac OS X Server. Du kannst ein entsprchendes Binarie direkt von der WebSite von MySQL herunterladen und lokal installieren. Die Doku erläutert die Installation und es gibt ein Tutorial für die Kommandozeile mysql. Das erläutert die wichtigsten Befehle und Zusammenhänge. Solange Du nicht versuchst, alle möglichen Parameter bei der Installation und im Betrieb zu durchschauen und individuell einzustellen... ;)

Du kannst so Deine Anwendung komplett auf Deinem lokalen Rechner entwickeln und danach auf einem Server installieren und per TCP/IP ansprechen. Der Server muss dabei natürlich eine feste IP-Adresse haben. Das ist aber wohl bei jedem Programm so. Da kann Dir der Netzwerkadministrator sicher weiterhelfen.

(5) Java ist langsamer als C#. Das spielt aber wohl hier keine Rolle, weil die Datenbank das Programm verzögert.

Peter
 
Also zusammengefasst:

JA, mein Projekt was ich bin Ende November fertig haben soll, lässt sich wunderbar mit Java + MySQL realisieren.

Java ist langsamer als C#, was aber bei eine DB-Anwendung keine Rolle spielt.

Da ich RAD gewohnt bin nehme ich auf jeden Fall NetBeans, weil da alles bequem unter einer Haube ist.

Der Aufbau, dass später auf irgendeinem WinServer nur noch der MySQL-Server liegt und irgendwelche WinClienten via meinem Java-Programm auf diese Datenbank mit den Schüler-/Zeugnisdaten zugreifen, wird nicht all zu schwer sein, da ich schon mit C# DB (ODBC) gearbeitet habe!?

Die hier empfohlenden Bücher sollte ich mir dafür zulegen?!

Kosten: keine, abgesehen von den Büchern!?

Danke ;)
 
Hallo,

prinzipiell kann ich dem, was Du da geschrieben hast, zustimmen. Die Druckausgabe habe ich noch nicht realisiert; sollte aber ja möglich sein.

Die beiden von mir erwähnten Bücher würde ich mir zulegen, wenn Du ernsthaft planst, mit Java zu arbeiten. Es dürfte sie aber auch in einer guten Bibliothek geben.

Tatsächlich ist jedoch selten die Technik sondern häufiger die Logik das Problem. Um ein solches Problem erfolgreich anzugehen, sind zunächst Analysen erforderlich und ein solides Grundwissen über die Technik. Der David war auch nicht Michelangelos Erstlingswerk ;)

Viel Erfolg
Peter
 
Vielen Dank! Ja das kenne ich schon vonfrüheren Projekten in C#, was die Logik angeht ;)

Drucken> Wird dieses Thema denn in den beiden Büchern angesprochen?

Rechtlich> Der Connector/J (und auch MySQL Community-Server??) fällt unter GPL - was bedeutet das für mich rechtlich, wenn ich mein Programm später kommerziell vertreiben möchte (falls es wirklich ganz gut wird *lol*)? Muss ich dann generell den kompletten Quellcode meines Programms beilegen? Oder darf ich das Programm gar nicht gegen Geld vertreiben!? Das würde dann nicht bringen! Ich brauche eine Lösung die kostengrünstig ist und mir erlaubt den Quellcode definitiv nicht freigeben zu müssen, weil kein Schüler etc. die Möglichkeit haben darf zu sehen, wie Daten etc. in der Datenbank abgelegt und/oder Verarbeitet werden (Vorschrift/Bedingung der Schule). Nun möchte ich aber nicht für xxxxEUR MySQL Enterprise kaufen müssen.

JavaDB> ist JavaDB eine eigene Datenbank wie MySQL?
 
Hallo,

das Thema "Drucken" wird in dem von mir genannten Buch natürlich angesprochen. Doch ich habe es bisher noch nicht realisiert.

Eine rechtliche Beratung hinsichtlich der Lizenz-Modelle kann und darf ich hier nicht geben (= Rechtsberatungsgesetz). Zur GPL gehört, dass Du ein kommerzielles Programm selbst wieder unter die GPL stellen musst.

Du erstellst das Programm ja im Auftrag der Schule; Eigentümerin des Codes bleibt damit die Schule. Solange sie die Software nicht an Dritte weitergeben will, braucht sie den Code auch nicht offenzulegen. Hinsichtlich des reinen Java-Programmes ist das wohl auch nicht das Problem.

Hinsichtlich der MySQL-Komponenten kannst Du ja einen einfachen Weg wählen: Du vertreibst nur Dein reines Java-Programm (ohne Connector/J) und der Erwerber muss sich Programm und Lizenzen der MySQL-Komponenten selbst besorgen.

Zum Schluss: Das Risiko ist nicht so sehr, dass irgendjemand den Code ergattert und dann die Zeugnisse verbessert. Viel wichtiger sind die Zugangsdaten zur Datenbank und das Netzwerk. Wenn an der Schule IT-Cracks sitzen, haben die das System gehackt, ohne eine Zeile Code Deines Programmes zu kennen.

Peter
 
Schule> nein, wieso? Also wieso sollte die Schule Eigentümer sein? Die Schule hat angefragt ob ich bereit wäre das Ganze umzusetzen. Es ist also kein "interner" Auftrag ;)

Software-Splitten> hm.. so einfach ist das? Das Programm wird einfach ohne MySQL und Connector/J ausgeliefert und schon muss das Hauptprogramm nicht mehr unter die GPL/GNU?

Ist jetzt vielleicht ne dumme Frage, aber ich kann mir das gerade vom Ablauf gar nicht vorstellen - da bekommt dann jemand meine Software und dann? Ich meine wie soll der denn dann den Connector/J da einbinden?!

Sicherheit> klar das ist mir schon bewusst, dass Zugangsdaten immer gefährlicher sind als Quellcode ;)


"Solange sie die Software nicht an Dritte weitergeben will, braucht sie den Code auch nicht offenzulegen. Hinsichtlich des reinen Java-Programmes ist das wohl auch nicht das Problem." << was meinst du damit? Doch doch das ganze soll später durchaus auch weitergegeben werden und deswegen soll es auch nicht unter GPL/GNU fallen, weil sonst der Quellcode beiliegen muss -.-

GPL/GNU> würde es nicht reichen, wenn ich nur den Quellcode des Connector/J beilege?

MySQL> sehe ich das richtig?? Wenn ich ein kommerzielles Programm erstelle, was MySQL nutz (also auf einen MySQL-Server zugreift), dann MUSS ich eine MySQL-Lizens KAUFEN oder es zwangsweise als OpenSource vertreiben!? *Argh* das geht mal gar nicht ;)

Wie gut ist denn PostgeSQL? Hat da jemand Erfahung im Zusammenhang mit Java und dem Mac?
 
Java ist langsamer als C#, was aber bei eine DB-Anwendung keine Rolle spielt.

Sorry, aber die Aussage so wie sie dort steht ist eindeutig falsch.

Wie auch immer, ich denke fuer diese Anwendung bist du mit Java sehr gut bedient. Was die verbindung zur Datenbank angeht, nimmst du am besten den vom DB/DBMS Hersteller angebotenen JDBC Treiber.
 
Hallo,

nun machst Du Dir das Leben schwer.

Die Frage, wer denn Eigentümerin des Codes wird, solltest Du mit der Schule klären. Als Schulleiter würde ich keinen relevanten Prozess auf eine Schülerarbeit aufsetzen, deren Code mir nicht zugänglich ist.

Noch einmal: Du darfst in Java schreiben was Du willst und die compilierte Datei weitergeben. Das ist ja gerade der Sinn von Java. Solange Du allein Bibliotheken aus Java-Sun verwendest, dürfte das alles unproblematisch sein. Das gilt auch für NetBeans in dem von Sun bereitgestellten Umfang.

Nur wenn Du Bibliotheken weiterer Hersteller in Deinem Programm verwendest, solltest Du Dich um deren Lizenzbedingungen kümmen. (Die eigentlichen Datenbankzugriffe werden ja mit den Java-Bibliotheken erzeugt; der Connector/J steht quasi zwischen Deinem Programm und der Datenbank und arbeitet selbständig. Du kannst ihn z.B. nutzen, um mit OpenOffice auf die MySQL-Datenbank zuzugreifen.) Wenn Du das so machst wie hier besprochen, dann sind das die MySQL Datenbank und der Connector/J von MySQL. Hier könnte es ein Problem geben, wenn Du diese Komponenten zusammen mit Deinem Programm vertreibst. Deshalb gib einem möglichen Erwerber die Systemvoraussetzunge an und ggf. die Quelle, wo er sie bekommen kann. Dann muss der Erwerber sich um die gültigen Lizenzen dieser Komponenten kümmern. Das Einbinden ist ja simpel: Download, Installation - fertig. Letztlich kannst Du Dein Programm auch so konzipieren, dass es unabhängig von der verwendeten Datenbank funkt (also auch mit PostGres, Oracle,...).

Wenn Du in diesen Fragen ein größeres Problem siehst, empfehle ich Dir dringend den Besuch bei einem versierten Rechtsanwalt. Den größten Fallstrick sehe ich in der Frage der Rechte gegenüber dem Auftraggeber...

PostGres hat gegenüber MySQL einige Stärken im konzeptionellen Bereich (= Objektorientierung). Doch die Zusammenarbeit mit Java ist weniger gut dokumentiert und Informationen schwerer zugänglich: es arbeiten halt mehr Leute mit MySQL/Java. PostGres hat allerdings wegen der unbestreitbaren Stärken in letzter Zeit deutlich mehr Aufmerksamkeit erhalten = es gibt mehr Bücher usw.

Peter
 
Schulleiter> das ist keine Schülerarbeit ;)

Wenn das Programm später seinen Zweck gut erfüllt soll es an andere Schulen vertrieben werden - kommerziell - und diese sollen/drüfen eben NICHT den Quellcode sehen.

Der Idealfall wäre, wenn ich mein Programm später verkaufen kann an Endkunden ohne das eben irgendetwas davon GPL/GNU ist. Aber ist es nicht so, dass NetBeans zB den Connector/J mit in die compilierten Files einbinden würde!?


Ganz anderer Weg?
Wäre es auch möglich via JDBC zu coden und dann auf eine freie Datenbank wie zB Firebird auf zu setzen? In dem Fall wäre es wirklich einfach für den User - er installiert den Datenbankserver, welchen er selbst aus dem Netz lädt und installiert dann meine Software, welche somit kein GPL/GNU ist! Würde dieser Weg auch mit dem MySQL-Community-Server funktionieren ohne das ich oder der Enduser die teure Lizens kaufen muss? Eigentlich doch schon, weil weder ich noch der Enduser ein kommerzielles Produkt vertreibt, welches MySQL enthält.
 
Ich denke ich werde statt MySQL lieber PostgreSQL (http://jdbc.postgresql.org/) oder hsqldb (www. hsqldb.org) - da gibt es diese Probleme mit GPL/GNU erst gar nicht ;)

Denk dran, das hyper sonic (hsqldb) NOCH nicht die sicherste und stabilste wahl ist.

Ich würde sagen:

Java
Hibernate
HSQL oder stabilere DB
Servlets (sehen überall gleich aus ;))
 
Hallo,

sorry - jetzt wird es obskur und ich steige aus.

Vielleicht solltest Du Dich zunächste ein wenig mit der Thematik beschäftigen (einschl. Lizensierung).

Viel Erfolg
Peter
 
Wie sehen die requirements zu dem Projekt eigentlich aus?
Wird auch mit anderen Tools auf die Datenbank zugegriffen werden? Ist das evtl. später ein Möglichkeit die in betracht gezogen werden soll?
Oder ist deine Anwendung die einzige, die diese Datenbank benutzen wird?

Wenn das letztere einrifft, könnte man sich nämlich auch überlegen Technologien wie Hibernate oder JDo einzusetzen...
 
Zurück
Oben Unten