Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Formular einer exe per Browser im LAN anzeigen (https://www.delphipraxis.net/136245-formular-einer-exe-per-browser-im-lan-anzeigen.html)

Elcattivo83 26. Jun 2009 09:18


Formular einer exe per Browser im LAN anzeigen
 
Hallo zusammen,

ich habe folgende Aufgabenstellung bekommen und bisher keine brauchbare Lösung gefunden. Also:
Auf einem Server soll eine exe laufen, auf die bis zu 7 Rechner gleichzeitig zugreifen sollen. Deshalb hatte ich mir gedacht, dass man in der exe die einzelnen Formulare per Browser erreichbar machen sollte. Die 7 Rechner sind nämlich per WLAN angebunden, wodurch es immer wieder zu Abbrüchen kommen kann. Eine dezentrale Lösung kommt wegen ODBC-Verbindungen nicht in Frage. Alle Lösungen, die ich hier im Forum gefunden habe, bezogen sich auf TCP-Kommandos die einen Button-Click transferieren... ich muss aber eine scrollbare Listbox und einige Buttons zur Verfügung haben. Gibt es da eine gängige Lösung das gesamte Formular zu übertragen?
Auf eure Antworten bin ich schon sehr gespannt.
Danke im Voraus.

Stefan

Phoenix 26. Jun 2009 09:26

Re: Formular einer exe per Browser im LAN anzeigen
 
Da gibt es nur eine ganz einfache Antwort: Nein, das geht so überhaupt nicht.

Mögliche alternative Lösungen:
IntraWeb verwenden oder ASP.NET mit Delphi Prism benutzen. Für Webgeschichten würde ich letztere Lösung gegenüber ersterer stark präferieren.

Kompliziertere Lösungen: Mittels den Indy-Komponenten selber einen Webserver entwickeln der das Form dann eben in HTML generiert und die Antworten auswerten kann. Das würde ich mir persönlich aber nicht antun wollen.

Wenn es etwas teurer sein darf (aber weniger Aufwand verursachen soll): Die Exe auf einen Windows Terminal Server legen und die bis zu 7 Clients mittels Remote Desktop darauf zugreifen lassen. Braucht halt eine Win-Server Lizenz und 7 Zugriffslizenzen für die Terminal Services. Geht auch via Browser mit dem RDP-Webclient.

Das das gleichzeitig sein muss fällt VNC leider aus.

Alaitoc 26. Jun 2009 09:42

Re: Formular einer exe per Browser im LAN anzeigen
 
Nunja ich kann dir direkt keine Hilfe geben da ich mich damit bisher nicht beschäftigt habe,
also im Bereich der Datenbanken haben wir im Intranet einige Formulare die im Browser per EXE
aufgerufen bzw. erstellt werden. (z.b. CD-Ausleihe, alle CD's werden aufgelistet, ausgeliehen oder nicht etc...)

Jedoch würde ich trotz allem lieber eine Lösung wie ASP.net vorschlagen, dort habe ich z.b. schon ein Webformular
erstellt und im Endeffekt brauch es keine große Einarbeitungsphase.

MfG Alaitoc

Elcattivo83 2. Jul 2009 08:52

Re: Formular einer exe per Browser im LAN anzeigen
 
Erstmal danke für die Vorschläge, aber wie kann ich denn z.B. einen IntraWebServer oder eine ASP.net Komponente in mein Programm integrieren und über diesen die jeweiligen Formulare für die Clients verfügbar machen?
@Phoenix: Wie würde das denn mit dem Server funktionieren? Läuft dann die exe nicht "für jeden Client" separat? Wenn nicht, wäre diese Lösung auf jeden Fall meine Bevorzugte, da ich mein Programm nicht, oder kaum ändern muss.
Für weitere Vorschläge / Tutorials wäre ich sehr dankbar.
Gruß
Stefan

Bernhard Geyer 2. Jul 2009 08:57

Re: Formular einer exe per Browser im LAN anzeigen
 
Zitat:

Zitat von Alaitoc
... also im Bereich der Datenbanken haben wir im Intranet einige Formulare die im Browser per EXE
aufgerufen bzw. erstellt werden. (z.b. CD-Ausleihe, alle CD's werden aufgelistet, ausgeliehen oder nicht etc...)

Wirklich als Exe (ActiveX) im Browser (würde nur im IE gehen) oder als CGI-Anwendung bei der du in der Aufruf-URL zufälligerweise den Dateinamen der CGI-Anwendung sieht?

Phoenix 2. Jul 2009 09:12

Re: Formular einer exe per Browser im LAN anzeigen
 
Zitat:

Zitat von Elcattivo83
Erstmal danke für die Vorschläge, aber wie kann ich denn z.B. einen IntraWebServer oder eine ASP.net Komponente in mein Programm integrieren und über diesen die jeweiligen Formulare für die Clients verfügbar machen?

Auch hier wieder: Gar nicht. Die Vorgehensweise ist eigentlich komplett anders rum. Um Web-Seiten auszuliefern brauchst Du einen Web server. Du wirst nicht einfach so einen Webserver in Deine Anwendung bringen. Die Idee ist eher, Deine Anwendung in den Webserver zu integrieren.

Bei IntraWeb würdest Du eine ISAPI-Dll schreiben, in die Du die Business-Logik Deiner Anwendung einbaust. Die Web-formulare musst Du so oder so neu machen. Diese ISAPI-DLL wird dann in einem IIS oder einem Apache auf dem Rechner ausgeführt, der die Anwendung bereitstellen soll.

Bei ASP.NET wirst Du wohl nicht viel von Deiner Applikation wiederverwenden können, ausser Du stellst aus Deiner Anwendung heraus Funktionen zur Verfügung, mit denen die ASP.NET Webanwendung dann kommuniziert. Sei es durch Interprozess-Kommunikation (im Stile eines Application-Servers) oder Du baust aus Deiner Anwendung eine DLL die eben diese Funktionen zur Verfügung stellt.

Zitat:

Zitat von Elcattivo83
@Phoenix: Wie würde das denn mit dem Server funktionieren? Läuft dann die exe nicht "für jeden Client" separat? Wenn nicht, wäre diese Lösung auf jeden Fall meine Bevorzugte, da ich mein Programm nicht, oder kaum ändern muss.

Bei einem Terminal-Server läuft die Exe dann für jeden User einzeln. Bei 3 Zugriffen hast Du also drei mal die Anwendung laufen.


Du musst Dir bei dem ganzen Vorhaben im klaren sein, dass hinter Desktopanwendungen und Webapplikationen (im Sinne von 'läuft im Browser') so dermaßen unterschiedliche Konzepte liegen, dass das was Du vorhast in aller Regel nicht durchführbar ist, ohne Deine Anwendung in großen Teilen umzubauen. Eine Ausnahme von der Regel wäre, wenn Du Deine GUI von der Logik vollständig durch Interfaces getrennt hast. In dem Moment wo Du aber auch nur eine einzige Datenmanipulation in igrendeinem 'OnClick' Event etc. auf einem Formular implementiert hast ist das rum. Dann wirst Du nicht umhin kommen, Deine Anwendung mit Rücksicht auf die Beschränkungen der Technologie 'Web' neu zu entwerfenn und entsprechend umzubauen. Oder - und das ist dann mit an Sicherheit grenzender Wahrscheinlichkeit die einfachere und schnellere und zudem noch zukunftssicherere Version - die Anwendung für das Web in einer aktuellen Technologie die für Web auch wirklich geeignet ist (z.B. eben ASP.NET mit Delphi Prism oder zur Not auch C#, alternativ Java) neu zu implementieren und dabei darauf zu achten, dass Du Erweiterungen die Du hier machst auch aus Deiner bisherigen Anwendung (z.B. via Webservices oder mittels einem Plugin-Systems) auch nutzen kannst, ohne das dann doppelt implementieren zu müssen.

sx2008 3. Jul 2009 07:22

Re: Formular einer exe per Browser im LAN anzeigen
 
Zitat:

Zitat von Elcattivo83
ich habe folgende Aufgabenstellung bekommen und bisher keine brauchbare Lösung gefunden. Also:
Auf einem Server soll eine exe laufen, auf die bis zu 7 Rechner gleichzeitig zugreifen sollen.

Mit einem Terminalserver wäre das leicht möglich ohne dass an der Anwendung groß etwas geändert werden müsste.
Die Anwendung sollte ihre Daten aber nicht im Programmverzeichnis, sondern in den richtigen Windows-Verzeichnissen speichern (USERS, ALL_USERS).
Jeder Client braucht dann die Remote Desktop Client Software (http://www.microsoft.com/windowsxp/d...dclientdl.mspx).
Es ist sogar möglich, die Anwendung in einem Webbrowser anzuzeigen.
Dazu muss auf dem Client eine ActiveX-DLL registriert werden (Remote Desktop Web Connection ActiveX control).
Serverseitig muss der Microsoft IIS installiert sein.

Das Bild zeigt einen Windows Desktop "eingesperrt" im Internet Explorer.
http://www.petri.co.il/images/remote...web_2003_1.gif
Man kann das aber auch so konfigurieren, dass der Anwender ausschliesslich die Anwendung sieht.

QuickAndDirty 11. Sep 2009 11:22

Re: Formular einer exe per Browser im LAN anzeigen
 
Spricht viel dagegen Oberfläche und Businesslogik zu trennen und eine ThinClient-FatServer Anwendung daraus zu machen?
Wieviele Formulare enthält die Anwendung?


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz