Webanwendung Backend

flashbox

Ensign
Registriert
März 2013
Beiträge
147
Hey,
ich soll demnächst eine Webanwendung entwickeln mit Anbindung an eine Datenbank. Sowohl die Webanwendung, als auch die Datenbank sollen auf einem Apache-Webserver laufen und bei der Datenbank handelt es sich um ein HANA Datenbanksystem auf das man mit SQL zugreifen kann. Ich hab jetzt keine große Erfahrung in der Webentwicklung und hatte noch nie mit Backend zutun und weiß nicht so recht wie ich da rangehen soll um die Schnittstelle zwischen Webanwendung und Datenbank zu realisieren. Durch googeln bin ich auf Ajax/PHP gestoßen, ist das eine gute Lösung?

LG
 
Falls die Datenbank über die Hana Cloud Plattform bereitgestellt wird, kannst du dir da einen Odata Service anlegen.

Dann eignet sich OpenUI5 / SAPUI5 wunderbar als Frontend Framework (JavaScript).
 
Welche Erfahrungen hast Du denn überhaupt in Sachen Programmierung (Ausbildung, Berufsjahre, Sprachen, Frameworks)? Vielleicht wäre das zunächst mal interessant.

Dann wäre interessant, in welchem Umfeld das Ganze eingesetzt und welche Skalierung
es haben soll.

Und : entwickeln andere mit?

Grundsätzlich ist PHP für Backend recht verbreitet, im Enterprise-Umfeld nimmt man hier aber gerne auch JAVA (damit arbeite ich z.B. bei der Entwicklung von Webshop-Backends im professionellen Umfeld).
 
PHP wäre sicher eine Variante.

Wenn Du neu anfängst, solltest Dir aber sicher vorher einige grundlegende Programmiergrundlagen aneignen wie z.B.:
- Sauberer Code schreiben
- Sicherheit (wichtig)
- Validierung von Daten (sehr wichtig)
- Datenbank Design (saubere Datenstrukturen aufbauen)

Und nicht zuletzt brauchst Du natürlich auch HTML/CSS und Javascript Kenntnisse.
Falls es erfahrerne Entwickler in deinem Umfeld gibt, lass Dich nach Möglichkeit von so jemanden coachen - das hilft gerade beim Einstieg enorm um die grössten Stolpersteine zu umgehen.
 
Noch weiß ich nicht, ob die Datenbank über die Hana Cloud Plattform bereitgestellt wird, glaube es aber nicht. Falls aber doch, nehme ich deine Vorschläge (@blablub1212) gerne an :)

OK, vielleicht hätte ich ein paar mehr Informationen geben sollen.
Bin kein totaler Anfänger was Programmierung bzw. Softwareentwicklung angeht. Bin Winfo-Student im Master und hab auch schon ein wenig (auch außerhalb der Uni) an Programmiererfahrung in Java, C# und im Web (Frontend, JQuery) gesammelt.
Die Webanwendung soll im Rahmen eines Forschungsprojektes realisiert werden, weshalb erstmal Aspekte wie Sicherheit keine Rolle spielen.

Leider sind in meinem Team nur WIWIs oder BWLer die mir da nicht wirklich weiterhelfen können, daher bin ich zum Teil aufs Internet und auf Foren (euch) angewiesen :D

Also wenn ihr mir sagt, dass ich mit PHP und Ajax (Ajax braucht man doch um PHP Scripte in JavaScript auszuführen oder?) nichts falsch mache und alle Möglichkeiten und keine großen Nachteile habe, werde ich es damit versuchen :)
 
Zuletzt bearbeitet:
Ich kann zwar beim Weg nicht behilflich sein, aber wenn Du am Ende weißt, was Du brauchst, findest Du bei stackoverflow.com sicherlich einiges an Hilfe, wenn Du mal nicht weiterkommst. Einfach mal "x y stackoverflow" in der Suchmaschine deiner Wahl können Wunder vollbringen. Viel Erfolg :daumen:
 
Ajax nennt man das dynamische Nachladen von Inhalten. Ob das nun statische Dokumente sind, eine API oder sonst was ist erstmal egal. Hat mit PHP nichts zu tun.

Ich würde mir erst einmal Gedanken über die Architekur machen. Was genau soll entwickelt werden? Welche Softwarekomponenten benötigt ihr?
Grundsätzlich empfehle ich den Einsatz eines Frameworks. Bei PHP z.B. Laravel o.ä., bei Java Spring (Boot), aber da gibt's bestimmt auch noch viele andere. Frontend würde ich dann als klassische HTML Seite machen, hier auch mit einem passenden CSS Framework wie Bootstrap o.ä. Single Page wäre sicherlich Overkill.

Edit: da ihr anscheinend im SAP Umfeld entwickelt, habt ihr dann nicht auch Zugriff auf die Web IDE? https://help.hana.ondemand.com/webide/frameset.htm?6284a94889db4f3cad001ba674282f20.html

Falls ihr das damit entwickeln sollt müsste man die Daten wohl über SAP Rest/odata Services übergeben, wie oben angesprochen
 
Zuletzt bearbeitet:
Erstmal danke an alle für die Antworten und Ideen.

@Aconite: Werde mir auf jeden Fall Laravel anschauen. Mit Bootstrap habe ich schon gearbeitet.
Es wird eigentlich nichts großartig komplexes, im Grunde geht es darum Daten aus der Datenbank gefiltert anzuzeigen oder neue Daten anzulegen.
Wegen AJAX: Habe nur gelesen, dass man mithilfe von AJAX PHP Scripte in JS ausführen kann. Und ich dachte mir, dass wenn man z.B. über die Webanwendung Daten in die Datenbank schreiben möchte, dazu ein Formular mit Inputfeldern ausfüllt und zum Schluss einen "Submit" Button betätigt, ja i-wie in der JS "click-Event-Funktion" des Submit-Buttons per PHP die values der Inputfelder über einen SQL Insert in die Datenbank geschrieben werden müssen. Darum dachte ich, dass AJAX deswegen Notwendig sei, aber ich glaube da gibt es noch mehrere andere Möglichkeiten :D

Ich schau mir das alles mal an.
 
Zuletzt bearbeitet:
nein man kann mit ajax kein php in js ausführen!? oder??? wär mir ganz neu


also daten empfangen ist ganz einfach das geht über post oder get.
also du gibst im formular post oder get an und dann hast du die variablen schon im php.
kannst sie dann mit $_GET['name_der_übergabe'] oder $_POST['name_der_übergabe'] abrufen.
Das ist dann synchron... das bedeutet das webserver angefragt, abgearbeitet, html, css, js, ... rausgegeben werden.

Bei asynchron z.b. wird nur ein TEIL vom html geupdatet also nicht alles synchron ausgeliefert...seite lädt NICHT erneut.
Ergänzung ()

wenn du daten länger speichern möchtest verwende $_SESSION. Ansonsten wird alles wieder vergessen sobald das Skript einmal durch ist.
 
Mit ajax kannst du per Javascript einen Request an den Server senden, dieser wertet den Request aus (z. B. per PHP) und liefert einen Rückgabewert und den bekommst du dann wieder im Javascript und kannst damit arbeiten. Man kann damit also nicht PHP-Skripte in Javascript ausführen, sondern von der Seite aus PHP-Skripte im Hintergrund anstoßen und ausführen lassen und mit deren Ergebnissen arbeiten.

Bei asynchron z.b. wird nur ein TEIL vom html geupdatet also nicht alles synchron ausgeliefert

Das stimmt, wenn überhaupt, nur teilweise. Asynchrone Requests bedeuten nicht zwangsläufig, dass irgendetwas geupdatet wird oder so, sondern lediglich, dass auf den Request nicht gewartet wird. Einen Ajax-Request kann man synchron oder asynchron nutzen.

Nutzt man ihn synchron, wartet Javascript mit seiner weiteren Abarbeitung, bis dieser Request beendet ist. Das kann zwar mitunter praktisch sein, aber wenn man einen Request startet, der z. B. 15 Sekunden lang dauert (auf PHP-Seite), dann hängt der Browser 15 Sekunden lang unnutzbar rum, weil er auf den Server wartet.

Nutzt man einen asynchronen Request, sendet Javascript den Request ab und arbeitet schon mal weiter. Dabei hängt der Browser nicht, allerdings muss man seinen Code entsprechend designen, damit man das Request-Ergebnis sinnvoll verwenden kann.

Beispiel 1 (mit jquery):

Code:
var testvariable = "test 1";

$.ajax({
  url: "test.php",
  async: false // der Request wird synchron ausgeführt
}).done(function() {
  testvariable = "test 2";
});

alert(testvariable);

Hier wird auf den Request gewartet. Man sendet also den Request, während der läuft, ist der Browser nicht wirklich nutzbar und danach (z. B. nach 15 Sekunden, wenn der Request so lange dauert) wird per alert "test 2" ausgegeben.

Beispiel 2 (mit jquery):

Code:
var testvariable = "test 1";

$.ajax({
  url: "test.php",
  async: true // der Request wird asynchron ausgeführt
}).done(function() {
  testvariable = "test 2";
});

alert(testvariable);

Hier wird nicht gewartet. Der Request wird abgesendet und in den Hintergrund geschoben und direkt danach kommt schon der alert, allerdings wird er diesmal "test 1" ausgeben, weil der Request ja noch nicht fertig ist. In diesem Beispiel würde die Variable also viel später mit "test 2" belegt, lange nachdem sie per alert() ausgegeben wurde. Das meine ich damit, dass man seinen Code entsprechend strukturieren muss, um mit dem Ergebnis zu arbeiten.
 
Zuletzt bearbeitet:
Wenn man Java beherrscht, dann bietet sich Vaadin an. Damit kann man eine Web-Anwendung fast wie eine Desktop Anwendung entwickeln und hat mit der Kommunikation zwischen Browser und Server nichts zu tun. Die Anwendung ist dadurch auch viel sicherer, weil man als Anfänger idR wenig über SQL-Injection und Cross-Site-Scripting weiss.
 
Zurück
Oben