Die richtige Technologie finden

NemesisCro

Newbie
Registriert
Nov. 2018
Beiträge
7
Hi zusammen

Ich habe in letzter Zeit nach einer bestimmten, (meiner Meinung nach) relativ simplen Software gesucht und bin schlichtweg nicht fündig geworden. Da ich genau weiss, was ich brauch und schon sehr konkrete Vorstellungen vom GUI etc. habe, wollte ich mich selbst am Programmieren probieren.

Ich habe während meinem Studium, das eine halbe Ewigkeit her ist, bereits programmiert - hauptsächlich Java - daher ist mir die ganze Thematik nicht absolut fremd.

Ich sollte in der Lage sein mit dieser Software Daten in eine relationale DB zu schreiben. Die Software soll, vorerst, lokal auf der gleichen Maschine laufen wie auch die Datenbank selbst - dass evtl. eines Tages aber eine klassische Client-Server-Version via Netzwerk daraus wird, sollte trotzdem möglich sein.

Nun aber zu meiner eigentlichen Frage:
Gemäss eurer Erfahrung, mit welcher Programmiersprache/Technologie sollte man eine solche Software programmieren? Ich möchte hier vor allem eigentlich auf eine bewährte Umgebung setzen, bei welcher man sich nicht zu viel Gedanken bzgl. Kompatibilität des OS o.ä. machen muss; primär sollte die SW auf den gängigen Windows-Versionen funktional sein. Auch das Thema Security (vor Fremdmanipulationen schützen etc.) ist in einem ersten Schritt nicht allzu relevant.

Der Grund warum ich hier etwas kryptisch schreibe: Wenn ich dann doch durch dieses Forum herausfinde, dass es eine solche Software gibt, nimmt mir das gleich die Motivation eine solche selbst zu schreiben und ich möchte das unbedingt mal versuchen :-)


Viele Grüsse
Neme
 
Danke für die extrem rasche Antwort :-)
Kann man also weiterhin sagen, dass Java immer noch das Steckenpferd für Homemade-SW ist?

Sorry für die wahrscheinlich extrem doofe Frage, aber wie gesagt, habe ich mich seit einem guten Jahrzehnt NULL mit Programmierung auseinandergesetzt...
 
Ich würde auch mit C# vorgehen. Gängig, relativ verständlich, viele Tutorials vorhanden.
 
C# verzeiht vor allem einiges an Fehlern bzw ist recht intelligent.
 
Ich mache solche Sachen immer in Visual Studio und habe als logische Basis einfach .Net. Im Wesentlichen gibt dir das den Vorteil, dass du dann bei der Sprache ein bisschen Auswahl hast (vor allem C# oder VB) und es auf allen Windows-Versionen lauffähig ist.
 
Danke vielmals für eure Antworten!
VB ist mir an sich auch kein fremder Begriff, das liegt aber noch weiter zurück als meine Java-Kenntnisse... .

Handelt sich wohl um ein Kopf-an-Kopf-Rennen zwischen Java und C# hier.
Wie sieht es denn aus, wenn folgende Faktoren noch mit einfliessen:
- Gescheite Entwicklungsumgebung (anno dazumals z.B. Eclipse bei Java)
- möglichst kostenlose Umgebung (die SW möchte ich ja für mich privat schreiben; generiere also keinen Umsatz damit o.ä. und dann will ich auch nicht hunderte von Euro in die Hand nehmen - Fachliteratur ausgeschlossen)


Sorry für die Fragen, aber ich möchte es gerne von Beginn weg "richtig" angehen, da ich wirklich nicht der Programmier-Guru bin...
Ergänzung ()

Ach ja, was ich gar ned geschrieben habe:
Es wäre ebenfalls wichtig, dass ich die SW quasi als Paket verteilen kann.
Hintergrund: die SW möchte ich für meinen Hobbyverein eschaffen. Es sollte also möglich sein, dass die SW relativ einfach auf verschiedene Rechner verteilt werden kann, wobei jede Installation dann auch eine eigene, frische Datenbank hat, ohne dass der Benutzer dann "mühsam" SQL-Server runterladen muss etc. Somit soll also auch die Konfiguration für die Serververbindung etc. automatisch vorgegeben sein (gibts sowas überhaupt?)
 
Zuletzt bearbeitet:
NemesisCro schrieb:
Handelt sich wohl um ein Kopf-an-Kopf-Rennen zwischen Java und C# hier.
Vermutlich auch C# und Java durchaus große Ähnlichkeiten haben.

NemesisCro schrieb:
ohne dass der Benutzer dann "mühsam" SQL-Server runterladen muss etc. Somit soll also auch die Konfiguration für die Serververbindung etc. automatisch vorgegeben sein (gibts sowas überhaupt?)
SQLite könnte da ein geeigneter Kandidat sein. Du hast dann nur eine Datenbankdatei, die lediglich über eine Clientbibliothek angesprochen wird.
Für beide Varianten (Java als auch C#) gibt es gute Anbindungen dazu.
Und mit SQLitebrowser ( http://sqlitebrowser.org/ ) gibt es auch keine kleine nette GUI, was gerade beim entwickeln sehr praktisch ist (sofern man nicht andere Datenbanktools nimmt die direkt via JDBC und Co an die Datenbank gehen).
 
NemesisCro schrieb:
Gemäss eurer Erfahrung, mit welcher Programmiersprache/Technologie sollte man eine solche Software programmieren?
Auch das Thema Security (vor Fremdmanipulationen schützen etc.) ist in einem ersten Schritt nicht allzu relevant.
Spezifische Empfehlungen benötigen spezifische Angaben. Das dir Java und C# empfohlen wird liegt in der Regel daran, dass dies die ersten Sprachen sind die die Leute lernen und bei der man sich nicht um jedes einzelne Bit selber kümmern muss. Irgendwie wirst du damit dein Ziel erreichen können, aber ob es wirklich sinnvoll ist lässt sich ohne ein genaues Profil deiner Anforderungen nicht sagen. Die Grundsätzliche Anbindung von Datenbanken an Eingabemasken kann man ansonsten mit fast jeder Programmiersprache abbilden. Oder gleich mit Microsoft Access oder LibreOffice Base.

Ebenso wie sich keine Empfehlung für eine Datenbank aussprechen lässt. Denn so toll SQlite auch ist, so hat diese DB-Engine auch klare Einschränkungen (die von den Entwicklern samt best Practice ohne jedweden Marketing Bullshit sauber dokumentiert wurden!).

Security machst du entweder von Anfang an oder garnicht. Nachträglich bekommst du Security nicht in einmal bestehenden Code ohne den Kram komplett über den Haufen werfen zu müssen.
 
Wenn ich dich richtig verstehe, geht es um keine speziellen GUI-Anforderungen, sondern vielmehr um graphische Präsentation + Logik irgendwelcher Daten, die selbst in eine relationale DB sollen, mit der man dann auf einfache Art und Weise durch dein Front-End arbeiten kann?!

Das hört sich, speziell wenn du Kompatibilität, Einfachheit, Wartbarkeit, Sicherheit, ... haben möchtest, besonders im 21. Jahrhundert, nach einem Fall für eine Webseite an.

Oder gibt es spezielle Anforderungen an die GUI, die auf einfache Art und Weise nicht mit Webtechnologien umsetzbar sind?

Front-End dort ist mit CSS/JS schnell erstellt. Einen Server bereitstellen + DB darauf und dann kannst mit PHP, Python oder auch Java, wenn du es altbacken haben möchtest, ein Back-End schreiben.

Dann muss niemand etwas installieren, es läuft auf jedem Browser, jedem Betriebssystem, jedem Endgerät mit Browser, ...
 
  • Gefällt mir
Reaktionen: psYcho-edgE und Sparta8
Hi all

Vielen Dank für all eure Antworten. Speziell ascers Antwort hat mich ziemlich doof reinschauen lassen - eigentlich stimmt alles, was du hier sagst :-) Schon lustig wie ich den Wald vor lauter Bäumen nicht gesehen habe (Tunnelblick)...

Heutzutage wird ja eigentlich der Grossteil der Websites mit einem CMS betrieben, wenn ich nicht absolut falsch liege; zu meiner "Webmaster"-Zeit durfte alles noch von 0 auf gecoded werden. Ich habe mich vor 2 Jahren mal an WIX probiert, habe aber durch die meines Erachtens extrem eingeschränkte Funktionalität und den überaus schlechten Support das ganze Experiment verworfen.

Habe mich die letzte Stunde durch ein paar Seiten gelesen um das für meine Bedürfnisse richtige CMS zu finden. Neben CMS wie Joomla!, Drupal, und Co. haben sich vor allem Django CMS und natürlich TYPO3 stark hervorgehoben. Habt ihr Erfahrungen mit diesen beiden CMS? Ich weiss, mit genug Aufwand kann man mit (fast) jedem CMS das gewünschte Resultat hinkriegen, aber ich hätte gerne von Beginn weg ein CMS, auf welches ich dank euren Erfahrungswerten bauen kann.

Ich versuche etwas konkreter zu werden mit meinen Anforderungen:
- DB-Dateneingabe via Maske (Benutzer- und Admin-Sicht)
- Daten natürlich auch aus der DB lesen und anzeigen
- Benutzermanagement (Benutzerrechteverwaltung) sehr wünschenswert
- Möglichkeit zum Interpretieren von XML-Daten ("ich erhalte von XYZ ein XML, was stelle ich damit an")
- Absolute Zukunftsmusik: Daten via Mobile App schreiben und lesen

Was ich mit Sicherheit sagen kann, ist, dass das CMS nicht als Blog o.ä. genutzt werden soll; da wäre ja WordPress, nehme ich an, das Richtige für.

PS. Ich werde mich trotzdem noch an C# mit SQLite probieren, da ich gestern Abend noch eine kleine Idee hatte, welche hier passen würde. Also auch nochmals danke an alle anderen!


Gruss
Neme
 
Ich würde von Typo3 die Finger lassen. Wenn ich das machen müsste würde ich es mit Drupal machen.
 
  • Gefällt mir
Reaktionen: psYcho-edgE und CitroenDsVier
Ich habe von einem Bekannten vor ein paar Jahren mal gehört, TYPO3 Kenntnisse seien super hilfreich bei Bewerbungen, selten und sehr gefragt, usw.

Habe mich anschließend in den Semesterferien aus Interesse hingesetzt und mich in die Materie eingelesen (bzw es versucht). Bin ebenfalls auf ein paar Threads hier im Forum gestoßen, habe hier und dort was darüber gelesen. Fazit meiner Recherche war: extrem kompliziert, ziemlich schwierig zum Einarbeiten, teilweise überholt.

Die Relevanz des Ganzen sieht man vermutlich auch am hohen Marktanteil von 1,3%. (Quelle)


Ich persönlich würde das Ganze selbst coden, ist ja Front-End-mäßig nicht viel. Eine Tabelle, ein paar Inputs zum Hinzufügen von Daten.

Das Ganze kannst du je nachdem wie es zu den Anforderungen an die Software besser passt entweder offline mit offline-DB oder eben über einen Webserver online laufen lassen. In letzterem Fall würde ich über einen login nachdenken, just in case.
 
NemesisCro schrieb:
Und zwar weillll...?
Typo3 - sehr hohe Lernkurve, Du braucht passenden Webspace, m. E. ein CMS das mittlererweile sehr schräg geworden ist, intuitiv ist anders, es gibt sehr viele Erweiterungen
Drupal - m. E. einfach zu erlernen, hat nicht so hohe Anforderungen an den Webspace, sehr flexibel, es gibt für fast alles passende Erweiterungen
 
CitroenDsVier schrieb:
Ich persönlich würde das Ganze selbst coden, ist ja Front-End-mäßig nicht viel. Eine Tabelle, ein paar Inputs zum Hinzufügen von Daten.

Das Ganze kannst du je nachdem wie es zu den Anforderungen an die Software besser passt entweder offline mit offline-DB oder eben über einen Webserver online laufen lassen. In letzterem Fall würde ich über einen login nachdenken, just in case.

Habe ich mir auch schon überlegt (back to the roots), aber ehrlich gesagt möchte ich mich mit dem ganzen CSS, JS etc. nicht herumschlagen bzw. von null auf damit anfangen. Da bietet sich ein CMS natürlich schon an, welches mir das ganze Thema Design (es soll ja auch halbwegs gescheit aussehen) abnimmt.
 
Wenn du ein CMS nimmst musst du dich in PHP einarbeiten, in das CMS einarbeiten und dann musst du dich trotzdem mit CSS und JS herumschlagen, außer jemand hat genau 1:1 die gleiche Software die du willst bereits gebaut und du kopierst dann nur noch das Template. Aber dann kannst du auch gleich die fertige Software nutzen.
NemesisCro schrieb:
Da bietet sich ein CMS natürlich schon an, welches mir das ganze Thema Design (es soll ja auch halbwegs gescheit aussehen) abnimmt.
Das CMS hat nichts mit dem Design zu tun.
 
Zurück
Oben