Anwendung Netzwerkfähig machen

Alle Fragen zur Netzwerkkommunikation
5woho19
Beiträge: 9
Registriert: Fr 12. Jul 2013, 02:56

Anwendung Netzwerkfähig machen

Beitrag von 5woho19 »

hallo,und guten tag.
ich möchte eine anwendung netzwerkfähig machen. os-system: windows7, IDE:lazarus 09.x
ich denke es muß irgendwie mit server / client gearbeitet werden (sind mir nur als "schlagwörter" bekannt) ??
hier im forum (ich bin neu hier) sind ja viele experten und ich bin sicher, eine menge leute sind bereit mir zu helfen, danke schon jetzt .....

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Anwendung Netzwerkfähig machen

Beitrag von af0815 »

Nachdem die Frage sehr allgemein war, kann ich nur allgemein auf das Lazarus-CCR mit TSimpleIPC und Client-Server-Kommunikation. Lazarus und LNet. Einfaches Beispiel mit der TCP-Komponente als Anfang verweisen.

Von dort sollte Google weiterhelfen :-)
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Anwendung Netzwerkfähig machen

Beitrag von hde »

5woho19 hat geschrieben:hallo,und guten tag.
ich möchte eine anwendung netzwerkfähig machen.


Das kann ja nun sehr viel bedeuten.
Was soll denn im Netz passieren? Programm vom Server starten? Zentrale Datenhaltung? Kommunikation? Datenaustausch?
Also was soll das Programm im Netz? :?:

5woho19
Beiträge: 9
Registriert: Fr 12. Jul 2013, 02:56

Re: Anwendung Netzwerkfähig machen

Beitrag von 5woho19 »

Die Anwendung soll auf einem Rechner im Netz liegen und von den am Netz angeschlossenen Stationen aufgerufen werden können.Es ist ein Spiel....
Auf jeden Fall mal danke für Euer Interesse an meinem Anfänger-Problem....

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Anwendung Netzwerkfähig machen

Beitrag von mschnell »

5woho19 hat geschrieben:aufgerufen werden können


Wenn das Netzwerk File-Sharing macht, brauchst Du eigentlich nicht viel zu beachten um die Anwendung "aufzurufen". Im Betrieb muss natürlich der gemeinsame Zugriff auf Bewegungs-Daten entsprechend organisiert werden.

Wenn Du mit "Aufrufen" im "Browser anzeigen" meinst, wird es mit Lazarus so schwierig dass es fraglich ist, ob Du nicht besser ein anderes Programmier-System nehmen solltest. (Es geht aber.) z.B. PHP ist genau dafür gemacht.

(Wir (Firma) haben schon solche Browser-Anwendungen" mit Delphi gemacht. Da kamen aber jede Menge Tools zum tragen. Für ein Spiel lohnt das nicht.)

-Michael

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Anwendung Netzwerkfähig machen

Beitrag von m.fuchs »

mschnell hat geschrieben:Wenn Du mit "Aufrufen" im "Browser anzeigen" meinst, wird es mit Lazarus so schwierig dass es fraglich ist, ob Du nicht besser ein anderes Programmier-System nehmen solltest. (Es geht aber.) z.B. PHP ist genau dafür gemacht.


Höh? Wo sind denn die Schwierigkeiten beim erstellen von Webanwendungen? Gerade Anfängern würde ich PHP eben nicht empfehlen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Anwendung Netzwerkfähig machen

Beitrag von mschnell »

m.fuchs hat geschrieben:Wo sind denn die Schwierigkeiten beim erstellen von Webanwendungen?

Man kann bei der Applikations-Entwicklung keine "visuellen Objekte" "grafisch Platzieren".

Das ist ja eigentlich das, weswegen man sich unter all den verfügbaren IDE's für Lazarus (oder Delphi) entscheidet. Will man die Benutzer-Oberäche mit irgendwelchem Code basteln, kann man ohne Nachteile auch ein anderes System nehmen,

-Michael

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Anwendung Netzwerkfähig machen

Beitrag von m.fuchs »

mschnell hat geschrieben:
m.fuchs hat geschrieben:Wo sind denn die Schwierigkeiten beim erstellen von Webanwendungen?

Man kann bei der Applikations-Entwicklung keine "visuellen Objekte" "grafisch Platzieren".

Das ist ja eigentlich das, weswegen man sich unter all den verfügbaren IDE's für Lazarus (oder Delphi) entscheidet. Will man die Benutzer-Oberäche mit irgendwelchem Code basteln, kann man ohne Nachteile auch ein anderes System nehmen

Klar gibt es einen Nachteil, es ist ein anderes System mit einer anderen Sprache. Das ist übrigens meine Entscheidung für Lazarus: die Sprache Pascal. Nicht die Tatsache, dass ich da mit RAD schnell einer Oberfläche zusammenbastele. Ein Großeil meiner Programm hat gar keine GUI.

Und aus der Tatsache dass man mit anderen Sprachen keine Nachteile hätte von Lazarus abzuraten ist schon etwas seltsam. Abgesehen davon, dass man gerade mit PHP viele Nachteile hat.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Anwendung Netzwerkfähig machen

Beitrag von mschnell »

m.fuchs hat geschrieben:...Abgesehen davon, dass man gerade mit PHP viele Nachteile hat.

Tschuldigung, ich habe php nicht "empfohlen" (ich habe php selbst noch nie benutzt) ich habe nur gesagt, dass php extra für Web-Anwendung gemacht ist (das habe ich gelesen). Web-Oberflächen steuern und Datenbank-Zugriffe soll damit besonders einfach sein. Die Zielrichtung von Lazarus dagegen sind primär Applikationen mit lokaler GUI (fpc selbst dagegen ist natürlich absolut allgemeingültig).

-Michael

hde
Beiträge: 556
Registriert: Mi 11. Aug 2010, 02:56

Re: Anwendung Netzwerkfähig machen

Beitrag von hde »

Vergleicht ihr da nicht Äpfel mt Birnen :wink:
Und eine Webanwendung nur mit PHP, ohne HTML und/oder Javascript .. viel Spaß
hde

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2636
Registriert: Fr 22. Sep 2006, 19:32
OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
CPU-Target: x86, x64, arm
Wohnort: Berlin
Kontaktdaten:

Re: Anwendung Netzwerkfähig machen

Beitrag von m.fuchs »

mschnell hat geschrieben:
m.fuchs hat geschrieben:...Abgesehen davon, dass man gerade mit PHP viele Nachteile hat.

Tschuldigung, ich habe php nicht "empfohlen" (ich habe php selbst noch nie benutzt) ich habe nur gesagt, dass php extra für Web-Anwendung gemacht ist (das habe ich gelesen).

Entschuldigungen sind doch nicht notwendig in einer fachlichen Diskussionsrunde. :) Ich hatte das nur so aus deinem Text herausgelesen.

mschnell hat geschrieben:Web-Oberflächen steuern und Datenbank-Zugriffe soll damit besonders einfach sein.

Ja, diese Aufgaben kann man damit sehr leicht lösen. Weil es nämlich Millionen fertiger Skripte im Internet zu finden gibt, die diese Aufgaben lösen. Leider ist diese "Einfachheit" auch eines der großen Probleme von PHP. Der "glückliche Finder" eines solchen Skiptes kopiert das Ding und freut sich. Lerneffekt = 0. Und damit kann er auch nicht einschätzen, wie gut und sicher der Code ist. Und der ist meistens Grützengülle, weil unser erfolgreicher Finder jetzt dynamic PHP-Web 2.0 Master-Developer ist und diesen Mist (erweitert um sein persönliches Copyright) gleich auf seine neue Homepage stellt. Und genau so haben es schon generationen vor ihm gemacht.

Zwei Wochen später wird er bei seinem Provider anrufen und den Supporter anschreien. Die Worte "technische Abteilung" und "unfähig" werden in einem Satz fallen. Was ist passiert? Irgendjemand hat seine Super-Duper-Web-2.0-Seite übernommen und verteilt über den Webspace fröhlich Pornos. Dass ihm der Supporter sagt dass es an einer SQL-Injection (hervorgerufen durch Dreckscode [tm]) liegt, nimmt er gar nicht wahr.

Man kann mit PHP auch vernünftig programmieren, es ist alledings eine gewissen Selbstdisziplin erforderlich. Pascal hingegen zwingt den Entwickler dazu, sauberere Wege zu gehen. Mit starker Typisierung, Deklaration von Variablen, etc. Daher bei Webanwendungen: lieber Finger weg von PHP.

mschnell hat geschrieben:Die Zielrichtung von Lazarus dagegen sind primär Applikationen mit lokaler GUI (fpc selbst dagegen ist natürlich absolut allgemeingültig).

Das magst du so sehen, ich halte das aber nicht für richtig. Lazarus bietet eine sehr gute Möglichkeit zum RAD. Es beitet aber genauso gute Möglichkeiten um Konsolen- und Webanwendungen zu schreiben. IDE ist ja nicht nur der GUI-Editor. IDE bedeutet auch Toolsammlungen, Eingabeunterstützung, Projektverwaltung. Das alles kann Lazarus und auch nicht schlechter als andere.

Ansonsten bitte ich den emotionalen Ton beim Thema PHP zu entschuldigen, ich sehe oft genug die Auswirkungen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: Anwendung Netzwerkfähig machen

Beitrag von Achtzig »

mschnell hat geschrieben:... ich habe nur gesagt, dass php extra für Web-Anwendung gemacht ist (das habe ich gelesen). Web-Oberflächen steuern und Datenbank-Zugriffe soll damit besonders einfach sein. Die Zielrichtung von Lazarus dagegen sind primär Applikationen mit lokaler GUI (fpc selbst dagegen ist natürlich absolut allgemeingültig).


Ich programmiere mit FPC/Lazarus ausschließlich Web-Anwendungen. Die HTML-Elemente kann man doch gut mit Objekten kapseln, sodaß die Anwendung leicht wird. Für Anwendungen die dauerhaft auf dem Desktop laufen sollen nutze ich WebKit. Bei Zugriffen auf die Datenbank ist FP nicht umständlicher als PHP. Es werden ja sogar dieselben Bezeichner verwendet.

Aber eigentlich hast Du ja schon alles mit "fpc selbst dagegen ist natürlich absolut allgemeingültig" gesagt - HTML-Ausgaben und Datenbanken gehören selbstverständlich dazu :)

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Anwendung Netzwerkfähig machen

Beitrag von mschnell »

Achtzig hat geschrieben:Aber eigentlich hast Du ja schon alles mit "fpc selbst dagegen ist natürlich absolut allgemeingültig" gesagt - HTML-Ausgaben und Datenbanken gehören selbstverständlich dazu :)


Genau.

Bei Lazarus ist das (leider) nicht so (umfassend).

Mit der IDE kann man natürlich prima Konsolen- uns andere Anwendungen bauen und debuggen.

Aber bei "Web-Applikationen" wird es schwierig.

1) da die Web-Applikation (als cgi) "hinter" einem Webserver läuft, ist das Debuggen mit Lazarus schwierig (falls es überhaupt irgendwie möglich ist).
2) Die Benutzer-Oberfläche muss man mit HTML "von Hand" ausprogrammieren.
3) "Normale" Programmierung mit so hübschen Dingen wie TTimer und Threads, (die (z.B.) auf TCP-IP-Sockets warten und dem Mainthread über (z.B.) TThread.Queue oder TThread.Synchronize mitteilen, wenn etwas zu tun ist), sind "out of the box" nicht möglich, weil es ohne GUI Anbindung keine standardmäßig laufende Event-Queue gibt (Delphi und mse ide sind da besser).
4) Aus demselben Grund - und zusäztlich weil das vom HTTP Protokoll nicht auf unproblematische Weise unterstützt wird -, ist es nicht ohne weitere (z.B. Java Script polling) möglich, spontane Rückmeldungen das Programms an die Web-Oberfläche zu machen. Ein Debuggen durch Einbau von "Show"-Code ist also auch nicht so einfach drin.


Aus diesen Gründen haben meine Kollegen (die ein riesiges Delphi Programm-Paket gebaut haben und pflegen) ihre Web-Applikationen so gebaut:
- Ein kleines Progrämmchen arbeitet als "Router" hinter dem Weserver (hier als ISAP DLL für einen Microsoft IIS )
- Ein normales Delphi-Programm (das nach dem Debuggen auch als Dienst gestartet werden kann) macht sie eigentliche Arbeit
- Die Kommunikation zwischen den Programmen (und auch zwischen dem "Router" und dem IIS) wird vom kommerziellen Tool "RemObjects" abgewickelt.

So lässt sich das Zugs wenigstens ordentlich debuggen.

Keine Ahnung, ob es Systeme gibt, mit denen es deutlich komfortabler ist "quasi-embedded" Web-Applikationen zu bauen.

-Michael

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Anwendung Netzwerkfähig machen

Beitrag von mschnell »

m.fuchs hat geschrieben:IDE bedeutet auch Toolsammlungen, Eingabeunterstützung, Projektverwaltung.


Und für mich vor allem: Debugger mit (z.B.) Single-Step direkt im Source-Code-Editor und komfortablem Anzeigen von Variablen-Inhalten.

m.fuchs hat geschrieben:Das alles kann Lazarus und auch nicht schlechter als andere.


Natürlich ! (Sonst wären wir nicht hier :D )

Aber grafisches Erstellen einer Browser-basierten GUI und Debuggen von Web-Anwendungen (CGIs etc) ist mit Lazarus - soweit ich weiß - quasi nicht möglich. Ob es da besseres gibt, weiß ich aber auch nicht. (Siehe auch obiger Beitrag.)

m.fuchs hat geschrieben:Ansonsten bitte ich den emotionalen Ton beim Thema PHP zu entschuldigen, ich sehe oft genug die Auswirkungen.


So etwas ähnliches hatte ich befürchtet :evil:

-Michael

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Anwendung Netzwerkfähig machen

Beitrag von Christian »

Das debuggen von Webanwendungen kann man wunderbar mit Lazarus.
Es gibt auch Tools um Formulare in html umzuwandeln, somit stimmt die Aussage mit den GUIś auch nicht ganz.
Das halte ich aber für wenig sinnvoll, oberflächen baun sich im Browser besser mit html und css.

Die Aussage das irgendwas im Webanwendungsbereich mir Lazarus nicht so umfangreich ist ist schlichweg humbug.
Du hast mit Lzarus mehr Möglichkeiten als mit php.
Du kannst selbst deinen Webserver direkt mit in deine Anwendung kompilieren.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Antworten