nouseforname hat geschrieben:ich habe eine Idee für ein eigenes Wiki-System, und wollte eure Meinung zum Konzept und dessen Umsetzung hören/lesen.
Nichts gegen ein eigenes Wiki-System... welches Problem löst Dein System?
nouseforname hat geschrieben:
Konzept:
- - Zentrale MySql Datenbank
- Server kennt alle Clients und deren Status der Datenbank
- Bei Verbindung Server-Client Abfrage nach Aktualisierung und Übergabe der Daten von Server an Client
Hier tauchen also mehrere Problem auf die auf möglichst einfache Art gelöst werden sollen. Ein Thema ist das Datenformat. Android kann nur Sqlite, für alles andere ist MySql sicher gut geeignet.
SQL ist hier nur Vermittler zu einem Datenspeicher, falls die Software gerade nicht aktiv ist.
Und da wäre dann mal die Frage, ob unter Android eine lokale Kopie vorliegt oder Android der Server ist.
Worunter lokale Kopien gespeichert werden ist schließlich nicht abhängig davon, ob der Server MySQL nutzt.
Hier ist also ein Persistenzproblem.
nouseforname hat geschrieben:Vom Server zum Windows-Client könnte also direkt ein Dump der Datenbank übertragen werden. Dies funktioniert bei Android nicht. Hier würde sich ein umsetzen in JSON anbieten. Also warum nicht alles in JSON übertragen damit wenigstens die Übertragung an alle Clients immer die gleiche ist.
Hier haben wir einen Datenübertragungsproblem. Und wenn Du schon JSON hier verwendest, wäre eher die Frage, welche Datenhaltung erlaubt Dir zum Beispiel JSON-Datensätze?
Das könnte doch ein Fall für eine NoSQL-Datenbank sein.
nouseforname hat geschrieben:Außerdem stellt sich die Frage welche Sprache benutzt wird um das ganze möglichst einfach zu machen. Ich denke aufgrund der unterschiedlichen Plattformen bietet sich Java geradezu an. Auch weil Android dann sowieso auch Java benötigt. Der Server selbst sollte dann auch flexibel sein. Im konkreten Fall wäre das Serversystem zwar Windows, aber warum nicht auch hier flexibel bleiben.
Wenn man Java mag. Ich mag lieber C++.
C++ läuft auch auf Android, wie man das an den Start bekommt, weiß ich spontan aber auch nicht.
nouseforname hat geschrieben:Meine aktuelle Umsetzung wäre also wie folgt:
- - MySql Datenbank
- Java Server der eigentlich nur die Clients/User "verwaltet" und die Daten konvertiert
- JSON übertragung (HTTPS)
- Java Clients natürlich mit GUI und eigener Datenbank (MySql/Sqlite) und Userlogin für Eingabe von Daten und Abfrage von Kategorien
- Android App
Was mir hier noch fehlt wäre wie ich die Webseite mit dem Java Server verbinde und wie ich in Java eine GUI erzeuge, am besten in Eclipse. Aber vielleicht kommt ja von euch etwas ganz anderes.
Du brauchst bei Java einen Tomcat Server.
nouseforname hat geschrieben:Ich bin hier im übrigen auch offen für eine Zusammenarbeit mit jemandem. Aber ich weiss, keiner Hat Zeit uns Lust.
Alleine ist es halt doch recht viel Arbeit. Bin gespannt auf eure Ideen.
Du beschreibst vorrangig die Verwendung von möglichen Techniken.
Ich schreibe ein Wiki für proggen.org. Wobei ich eigentlich kein Wiki will, sondern ein CMS, was man in Form eines Wikis füttern kann.
Warum schreibe ich ein CMS? Ich möchte geführte Tutorials, ich möchte Quizzes, Achievements, Diskussionen an Wiki-Seiten, mehr Kontrolle über die Gestaltungsmöglichkeiten der Website.
Ich habe Probleme, die ich mit der gegenwärtigen Software auf der proggen.org läuft nicht lösen kann.
Darum schreibe ich neue Software. Welches Problem hast Du, soviele technische Anforderungen zu stellen?
nouseforname hat geschrieben:nouseforname hat geschrieben:
Warum nicht einfach Serverseitig eine API schaffen, die JSON oder SOAP oder ähnliches kann?
Warum das Rad neu erfinden?! Mit JSON habe ich schon gearbeitet, auch in Verbindung mit Datenbanken.
Weil es kein neues Rad wäre, sondern nur eine Übergabe an einen Server.
nouseforname hat geschrieben:
Im gegensatz zu Java hat es der Browser geschafft eine einigermaßen einheitliche Laufzeitumgebung für Javascript, AJAX, CSS und HTML zu liefern, daher würde sich eine Website anbieten.
Ein Java-Programm, dass du unter und für Windows programmiert hast, wird nicht auf Android laufen, weil Android eine eigene Laufzeitumgebung hat. Zudem sollte eine App fürs Smartphone auch für die Bedienung auf einem Smartphone programmiert sein. Es ist schon ein gewaltiger Unterschied, ob man Maus und Tastatur hat, oder nur einen Touchscreen.
Selbst das portieren von Java-Programmen von Windows auf Linux kann gewaltige Probleme bereiten.
Browser fällt raus, wie bereits erwähnt. Mir ist auch bewusst dass eine Android App etwas anders aufgebaut wird. Aber manches Bausteine sind eben definitiv wiederverwendbar.
Ein Android-Händi ist in der Regel online.
Ich würde mir über den Wert der Möglichkeit offline zu arbeiten Gedanken machen. Du schaffst Dir damit sehr viele zusätzliche Probleme. Alternativ machst Du die Sache (erstmal) nur online als Website, Android präsentiert Dir die Website, fertig aus.
Später kannst Du dann überlegen, ob sich der doch recht große Aufwand eine lokale Kopie zu halten und zu synchronisieren überhaupt lohnt.
nouseforname hat geschrieben:
Wie gesagt, ich kann mit Server-Client, MySql, Sqlite, Java, Android, C++ , und auch Gui erstellen umgehen und weiß dass es keine einfache Aufgabe ist. Ich will auch nicht dass hier jemand irgendetwas für mich macht. Einzig andere Seiten hören von Leuten die Ahnung haben und sowas vielleicht auch schon gemacht haben und wissen worauf man reinfallen kann. Von der Aufgabe her traue ich mir das alles zu, ich möchte es nur "richtig" machen.
Es gibt kein "richtig". Es ist immer ein Kompromiss zwischen verschiedenen Prioritäten: Zeit, Geld und Möglichkeiten.
Eine Möglichkeit wäre zum Beispiel sich eine Flatrate für Dein Händi zu kaufen, das spart Zeit bei der Umsetzung. Und vermutlich auch Geld. Man muss da abwägen und begründen. Und da fängt es an kompliziert zu werden.
Ich denke, Du solltest erstmal Deine Ziele priorisiseren. Was ist von den Zielen wichtig und warum verfolgst Du sie?
Anschließend solltest Du mit sogenannten 'Proof of Concept'-Implementierungen beginnen. So hat mein Wiki bereits eine Struktur und kann Wiki-Seiten als Webseite rendern. Die können nicht viel: Links, Fettdruck, Überschriften... sowas. Es ist ein Plugin-System, ich weiß, dass es funktioniert und nun kann ich mich auf andere Dinge konzentrieren.
Versuch Dir einen Überblick über die einzelnen Punkte zu schaffen und über deren Aufwand.
Spezifiziere das Problem, dass Du lösen willst, suche dann nach geeigneten Techniken, die einzelnen Probleme für sich zu lösen und gucken dann, welche von den Lösungen gut zusammen passen. Gibt es Frameworks, die Dir Arbeit abnehmen. Vielleicht legen die dann auch gleich die Sprache fest, die Du dafür nutzen musst, um die Frameworks zu verbinden, die Dir am meisten Arbeit abnehmen.
Das kann bedeuten, dass die besten Frameworks für die einzelnen Probleme rausfallen, weil nur die zweit- oder drittklassigen Lösungen sich sinnvoll miteinander verbinden lassen.
Oder Du machst es "richtig" und implementierst alles selbst und zwar so, dass es perfekt ineinander greift. Da spielen dann der Zeit und der Geld-Faktor die große Rolle und da muss man dann auf seine Liste schauen und überlegen, welche von den Features vielleicht doch nicht so wichtig sind, damit man irgendwann mal was vorzeigen kann.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.