Autor Beitrag
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 28.08.16 21:07 
Zitat:
Was genau ist eine Webanwendung? Einfach ein Programm, was 24/7 auf dem Server läuft und dann die Daten abspeichert, oder wie?


Das Ding das da 24/7 läuft ist ein Webserver. Der würde deine Webseite hosten. Aber genauso wie ein Webserver anfragen annehmen und html ausliefern kann um sie im Browser anzuzeigen kann der auch irgendwelche anfragen annehmen und irgendwas ausliefern um irgendwas anderes zu tun es müssen nicht Webseiten sein. Alles was hauptsächlich auf einem Webserver läuft und nicht primär in einem Client(egal ob dort in einem Webbrowser oder irgendeinem anderen Clientprogram) bezeichne ich als Webanwendung. Die genaue Definition kannst du aber auch einfach in der Wikipedia nachlesen.

Zitat:
muss ich im Quellcode ja das Passwort für den Server mitgeben


Ab dem Punkt ist eh alles unsicher egal was du tust. Da ist es egal ob FTP/HTTP/Datenbankprotokol etc. nimm näherungsweise an das du mit einem offenen Geheimnis unterwegs bist. Du kannst das Risiko nur minimieren indem man einfach nichts wirklich schlimmes machen kann wenn man die Credentials aus deiner Anwendung raus puhlt. Mit dem FTP Protokoll und einem Datenbank Protokoll darf man meist eigentlich schon viel zu viel. Eine simpler Http Endpunkt in einem Webserver der genau nur das kann was benötigt wird (z.b. irgendeine simple Anfrage mit Kundendaten annehmen) ist da relativ ungefährlich und schwer zu missbrauchen.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 28.08.16 22:27 
Okay. Ich habe mich mal ein bisschen über HTTP informiert. Also brauche ich den Apache HTTP Server?

Aber wie schreibe ich den Endpunkt so, dass er Daten an einen Server vermittelt? Läuft dann auf dem Endpunkt nicht einfach eine normale Website?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: So 28.08.16 23:03 
Eine Website ist auch nichts anderes als ein Servide, der eben HTML-Code zurück gibt.
Das kann eine HTML-Datei sein oder eine PHP-Datei, die dann geparst wird.
Als Webserver kenne ich XAMPP, was aber nicht für den produktiven Einsatz gedacht ist - sagt ubuntuusers.de
Ander Webserver kenne ich aber nicht, kann also nur von dem ausgehen.

Wie man das einrichtet ist ganz einfach: Installieren und starten
Die Standard-Konfiguration reicht, damit der Webserver richtig funktioniert.
Eventuell muss man ihn noch starten.

Windows: blog.udemy.com/xampp-tutorial/
Ubuntu: wiki.ubuntuusers.de/XAMPP/
Ich persönlich finde es auf Linux angenehmer.

In der einfachsten Form reicht es dann im DocumentRoot-Verzeichnis des Werbservers die Dateien, die zugreifbar sind, anzulegen.
Das kann HTML oder PHP sein, ein Bild würde beispielsweise angezeigt werden.
HTML-Code wird vom Browser geparst und angezeigt, PHP-Code wird vom Webserver geparset und gibt das raus, was das Script produziert.

Da liegt normalerweise auch schon eine html-Datei mir einer Vorschau-Seite von XAMPP drin.
Da kann aber auch eine index.php rein, die wird dann aufgerufen, wenn Du localhost aufrufst.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 28.08.16 23:30 
Zitat:
Also brauche ich den Apache HTTP Server?


Nein. du brauchst einen Webserver. Das kann ein Apache sein muss aber nicht. Apache bekommt man häufig bei den günstigen nicht Windows basierten Hostern. Meist in Form von XAMPP das Apache mit PHP, MySql und ein paar anderen Tools bundelt. Wenn du an .Net und Windows denkst wäre der IIS die Wahl. Windows/IIS Hosting ist jetzt aber nicht gerade das was man günstig nennen würde.
Andere Webserver wäre der Google eigene den man bekommt wenn man bei google hostet oder nginx.

Zitat:
Aber wie schreibe ich den Endpunkt so, dass er Daten an einen Server vermittelt?


Man sendet einen Http Request? Du solltest hier mal ein wenig Hintergrundbildung betreiben. Du bist an einem Punkt wo wir dich aufgrund des Umfangs nicht einfach an die Hand nehmen können das große ganze mußt du dir erstmal selbst erarbeiten, Bei den Details könen wir dann wieder weiterhelfen.

Dinge die du dir erarbeiten solltest/könntest
* Was genau jetzt http bedeutet
* was ist ein Get/Post/Put und was brauche ich davon
* was macht ein Browser und was müßte ich anderes ähnliches tun
* welche höheren Protokolle/Konzepte gibt es jenseits von http die man hier braucht bzw. brauchen könnte
* was bedeuten REST, SOAP, Webservice,
* welche serverseitigen (auf/im Webserver) Programmiertools/Kenntnisse brauche ich
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 29.08.16 08:59 
Hallo,

ich kann mich Ralf nur anschließen, daß WebServer-Installation und -Programmierung einiges an Wissen verlangt, daß du dir ersteinmal selber aneignen solltest (denn es unterscheidet sich von normaler Desktop-Programmierung schon sehr - sieht man u.a. auch an entsprechenden Stellenangeboten).
Als Ergänzung noch:
Wenn du eh C# als Backend (AppServer) verwendest, um auf die DB oder FTP oder ... zuzugreifen, dann wäre evtl. auch ASP.NET MVC von Interesse (da du dann nicht nur reines HTML oder PHP benutzen müßtest). Hier noch die Homepage mit Tutorial: Learn About ASP.NET MVC.
Dann wäre allerdings der IIS als WebServer zu bevorzugen (falls die anderen überhaupt Plugins dafür anbieten).

Eines der wichtigsten inhaltlichen Themen für dein Projekt wäre dabei die Authentifizierung, s. z.B. Walkthrough: Using Forms Authentication in ASP.NET MVC.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mo 29.08.16 15:42 
Also ich habe die ganze Sache jetzt so verstenden, dass ich mir einen Webserver installiere und auf diesem dann unter anderen eine PHP Datei hochlade. In dem Programm wird das PHP dann angefunkt und die Daten werden an diesen Script übergeben. Dann sorgt der PHP Script dafür, dass die übergebenen Daten auf einem Server gespeichert oder abgerufen werden, oder?

Nun hatte ich die Idee, mir einen Raspberry Pi zu kaufen, auf dem ich dann den Webserver (Apache 2 + PHP5) installiere. Dann hätte ich den Vorteil, dass die Website eine eigene Domain hat (und kein .weebly), und auf dem Pi dann gleich alle Kundendaten gespeichert werden und das alles dann für einmaliges Geld. Wie seht ihr das? Schafft der Pi diese Aufgabe?

Zum Thema WebRequest habe ich mir schonmal ein paar C# Videos angesehen, wie Kontakt mit dem PHP Script aufgenommen wird und dann Daten ausgegeben werden. Das war (glaube ich) über die POST Methode.

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 29.08.16 16:03 
Zitat:
Nun hatte ich die Idee, mir einen Raspberry Pi zu kaufen, auf dem ich dann den Webserver (Apache 2 + PHP5) installiere. Dann hätte ich den Vorteil, dass die Website eine eigene Domain hat (und kein .weebly), und auf dem Pi dann gleich alle Kundendaten gespeichert werden und das alles dann für einmaliges Geld. Wie seht ihr das? Schafft der Pi diese Aufgabe?


Du mußt dir, neben dem RasPi und einem Speichermedium, eine Dömane kaufen(eher mieten) und auch ein RasPi braucht Strom. Ansonsten ja das wäre eine Möglichkeit. Wobei mieten eines entsprechenden Systems (aus Webserver&Datenbank&Domäne) gibt es vermutlich schon im Bereich von Cents pro Monat. Es aus monetären Gründen selbst zu machen ist da eher nicht sinnig. Der Lerneffekt wäre aber natürlich ein ganz anderer wenn man es selbst macht ;)
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mo 29.08.16 16:17 
Aber jetzt mal ehrlich. Wozu muss man eine Domain mieten? Ich meine letzendlich wird ja nur auf dem DNS Server ein neuer Eintrag vorgenommen. Zum Mieten habe ich auch schonmal geguckt, aber ich weiß nicht, worauf ich da achten muss. Oder ich behalte die Website von Weebly und richte den RasPi als Server ein, der die Kundendaten speichert. Dann bräuchte er ja keine Domain, wenn er nur von dem Programm angefunkt wird, oder?

Und meine "Theorie", wie das mit dem http Endpunkt funktioniert, ist richtig?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 29.08.16 16:27 
Zitat:
Aber jetzt mal ehrlich. Wozu muss man eine Domain mieten? Ich meine letzendlich wird ja nur auf dem DNS Server ein neuer Eintrag vorgenommen.


Genau und diese DNS Server verbrauchen keinen Strom, die Hardware fällt kostenfrei vom Himmel und diejenigen die die pflegen sind vom Roten Kreuz und machen das ehrenamtlich wieso muss das also was Kosten :roll:

Zitat:
Und meine "Theorie", wie das mit dem http Endpunkt funktioniert, ist richtig?


Habe ich nicht verstanden. Du benennst zu prominent PHP. Womit ein Stück Software geschrieben ist ist doch eher egal. Du sprichst per Http mit einem Webserver. Der muss diese Anfrage irgendwie verarbeiten und anhand der Anfrage irgendwas sinnvolles ausführen(z.B. sich die Daten die in einem Http Request gekapselt sind nehmen und in einer DB ablegen). Das kann man z.B. mit PHP implementieren ist aber nebensächlich. Das ein Stück Software das sich auf deinem Rechner befindet in C# geschrieben ist ist ja auch erstmal egal für den Benutzer (jemand der eine Http Anfrage schickt ist für mich erstmal auch nur ein Benutzer). Wie er das Program bedient ist davon unabhängig. Das gleiche gilt beim Webserver auch.


Zuletzt bearbeitet von Ralf Jansen am Mo 29.08.16 16:34, insgesamt 1-mal bearbeitet
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mo 29.08.16 16:29 
Ohh sorry. Stimmt, daran habe ich jetzt gar nicht gedacht :oops:

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Blup
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 173
Erhaltene Danke: 43



BeitragVerfasst: Mi 31.08.16 10:49 
Du solltest mal nach "webservice" suchen, vieleicht ist das der richtige Weg für deinen Anwendungsfall.
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 04.09.16 20:53 
Okay, ich habe mich jetzt informiert, wie ein WebBrowser funktioniert und weiß nun, dass er nicht nur eine Website darstellt. In Hintergrund laufen auch sehr viel andere Kommunikationen zwischen dem Browser und den Servern. HTTP steht für Hyper Text Transport Protocoll und und ist ein Protokoll zum Transport von Websites und deren Diensten.

Nun würde ich auf meinem PI einen SQL Datenbankserver und einen Webserver installieren. Der Webserver beinhaltet eine .php-Datei, die Daten ein - und ausliest, und das 24/7. Desweiteren möchte ich einen SQL Server auf dem PI installieren (soweit das geht). Wird von der C# Anwendung eine Anfrage an den Webserver auf dem PI rausgeschickt, analysiert der PHP Script diese Anfrage, schaut eventuell in der Datenbank nach und liefert dann eventuelle Daten zurück. Und diese Daten stellt die C# Anwendung dann dar. Soweit habe ich das jetzt verstanden.

Nun habe ich einen Jungen angeschrieben, der auch 15 ist und gut PHP kann. Dieser meinte, man kann dieses Problem mit einer Socket-Netzwerkprogrammierung lösen. Das kann ich jetzt leider nicht einschätzen, ob das richtig oder falsch ist.

Das große Problem ist nun, dass ich keine Zeit habe, mir noch PHP beizubringen. Ich habe gerade mit dem Hauptprogramm und der Schule sehr sehr sehr viel zu tun. Das Programm muss fertig werden, dabei darf Schule nicht vernachlässigt werden. Und nun möchten wir noch ein Netzerk aufbauen. Ich möchte deshalb freundlich darum bitten, dass Leute, die das Problem verstehen und Lösungen dafür haben, mich per PN anschreiben, ich meine man muss das alles ja nur einmal einrichten, danach habt ihr dann auch Ruhe vor mir.

Also wer Ahnung von PHP hat, soll mich bitte per PN anschreiben. Das wäre echt nett.
Danke schonmal im Vorraus.

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 11.09.16 21:16 
Also nun habe ich einen gefunden, der sich bereit erklärt, mir mit PHP zu helfen.

Ich habe mir nun dieses Video angesehen: www.youtube.com/watch?v=n1vS2_-Xz9o
Da wird auf dem Pi ein Webserver (der die PHP Dateien bereithält) und ein SQL Server drauf installiert. Dann wird in der SQL Datenbank via PHP Script alle Daten gespeichert.
Das würde ich auch nachmachen, aber ichbin mir nicht 100% sicher, ob der Pi dann nur in Heimnetzwerk hängt, oder ob er für jeden Pc zugänglich ist, der mein Programm installiert hat?

Und noch eine Frage zu dem Pi. Ich weiß nicht, welches Betriebssystem ich auf ihm installieren muss, damit ich genau das selbe wie im Video machen kann. Ich hätte an Raspbian gedacht, aber bin mir nicht ganz sicher.

Was meint ihr zu diesem Vorhaben?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: So 11.09.16 22:10 
Zitat:
Das würde ich auch nachmachen, aber ich bin mir nicht 100% sicher, ob der Pi dann nur in Heimnetzwerk hängt, oder ob er für jeden Pc zugänglich ist, der mein Programm installiert hat?


Natürlich sind die Rechner bei dir zu Hause nicht einfach so einfach aus dem Netz zu erreichen. Wär ja der totale Security Horror wenn das einfach so wär.

a.) Die hängen garantiert hinter einer Firewall (der in deinem Router und das ist auch richtig so). Die Firewall müsstest du so einrichten das Daten auf bestimmten Ports (z.B. https) an diesen Rechner weitergeleitet werden. Wenn du in betracht ziehst die Firewall auszuschalten das ist wie seinen Türschlüssel von außen auf der Tür stecken lassen, vergiss den Gedanken. Das Netz ist böse.
b.) Einfach so ist dieser Rechner nicht dauerhaft zu finden. Du brauchst eine Domäne die auf deine IP Adresse gemappt ist und du brauchst einen DynDNS Dienst der wenn sich deine IP Adresse ändert, Home Anschlüsse haben keine garantiert fixe IP Adresse, die Registrierung nachzieht.
c.) Wenn du verschlüsselten Datenaustausch willst brauchst du auch noch ein SSL Zertifikat. Wenn das wie echte Sicherheit aussehen soll kein selbst ausgestelltes.

Zitat:
Was meint ihr zu diesem Vorhaben?


Ich hab es vermutlich schon mal irgendwo in diesem Thread gesagt, Sinn hat es nur wenn du es Lernprojekt siehst. Aus ökonomischen und sicherheitstechnischen Aspekten macht es keinen Sinn. Du musst Leute von außen in dein Netz lassen was ein Security Problem mit sich bringt und du musst dich dabei um alle Aspekte der Sicherheit selbst kümmern. Du musst das Ding am laufen halten, heißt von der Stromversorgung über Backups über Erreichbarkeit etc. Stell dich darauf ein das du viel basteln wirst. Und geh davon aus, erst recht wenn man nicht genau weiß was man tut, das das fixen von Problemen (und die werden garantiert regelmäßig auftreten) länger dauern wird. Du solltest also eine gewisse Ausfallzeit von dem Ding annehmen(Schonmal darüber nachgedacht was passiert wenn etwas passiert während du im Urlaub bist?). Wen du denn Aufwand nicht scheust und alle Beteiligten damit leben können ist das eine super Sache um zu lernen. Das ist aber auch der einzige Sinn denn das hat.
Früchstückskaffee
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 11.09.16 22:23 
Wie wäre es mit einem Webhosting Angebot?
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: So 11.09.16 22:29 
@Ralf Jansen. Hm vermutlich hast du dann doch recht

@Früchstückskaffee Da habe ich auch schonmaö dran gedacht, aber ich verstehe die Preis nicht. Bei einem Anbieter steht 2,46 im Monat. Wenn ich dieses Paket dann auswählen, steht dort auf einmal irgendwas mit 35 Euro

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Blup
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 173
Erhaltene Danke: 43



BeitragVerfasst: Mo 12.09.16 10:07 
Da wir das Angebot nicht kennen, können wir dir wohl kaum Details erklären.

- einmalige Einrichtungsgebühr
- monatliche Pauschale
- Kosten für den Domännamen
- Kosten für die übertragene Datenmenge (in der Regel gibt es eine Freigrenze)

Mach dir aber erst einmal klar, welche Leistungen du vom Anbieter überhaupt erwartest.
Einen vom Anbieter administrierten PHP + MySql-Server?
Oder eine leere virtuelle Maschine in der du alles selbst installierst und administrierst?
Oder ...
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Mo 12.09.16 14:45 
Unsere Website ist ja im Moment noch kostenlos. Jetzt habe ich aber (Meiner Meinung nach) ein tolles Angebot gefunden. 80GB Webspace, 10 MySQL Datenbanken, eigene Email Adressen, FTP Zugänge für nur 3,99€ im Monat. Dann hätten wir eine eigene Domain, Datenbanken, eigene Emails, FTP Zugänge und weiteres. Was meint ihr zu diesem Angebot [Multi XL, ohne SSD] alfahosting.de/webho...ionell/?diskType=ssd?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 13.09.16 01:58 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Csharp-programmierer Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 696
Erhaltene Danke: 10

Windows 8.1
C# (VS 2013)
BeitragVerfasst: Do 15.09.16 14:17 
SO ich habe mir erstmal einen Testaccount angelegt. Dazu habe ich eine Datenbank angelegt und unseren PHP Programmierer beauftragt, einen Script zu schreiben. Das ist dabei rausgekommen:
ausblenden PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
<?php

$Server = "";
$Username = "";
$Password = "";
$Database = "";

$con = mysqli_connect($Server,$Username,$Password,$Database);
if($con)
{
$sqlquery = "SELECT * FROM TABLE";
$result = mysqli_query($sqlquery);
while($row = myssqli_fetch_ssoc($result))
{
echo $row['row name'];
}
}
?>


Nun habe ich eine Frage. Das ist ja jetzt ein Code, der alle Datensätze aus der DB rausschickt. Aber wie sieht nun die C# Anfrage aus, die eine Anfrage rausschickt und die empfangenen Daten darstellt?

_________________
"Wer keinen Sinn im Leben sieht, ist nicht nur unglücklich, sondern kaum lebensfähig" - Albert Einstein