Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Webanwendung wie, womit? (https://www.delphipraxis.net/188035-webanwendung-wie-womit.html)

Jens Hartmann 25. Jan 2016 18:56

Webanwendung wie, womit?
 
Hallo zusammen,

ich muss das o.g. Thema erneut aufgreifen. Ich habe einen Desktop DB-Anwendung entwickelt, welche ich gerne erweitern möchte. Die DB-Anwendung greift, wie bereits in einem anderen Beitrag erwähnt auf eine Access DB zu.

Ich möchte die Anwendung jetzt gerne um einen WebClient und später um eine AndroidApp erweitern.

Bezüglich der Android App, kann ich mir aktuell die Umsetzung mittels Android Studio vorstellen. Aktuell versuche ich ein Gesamt-Konzept zu entwickeln. Hierbei habe ich jetzt schon Bücher über Java, PHP, Android und ASP.NET gelesen. Leider fehlt mir aktuell echt die Einschätzung, welcher weg hier der richtige wäre.

Es wäre daher schön, wenn Ihr mir hier ein paar Vorschläge/Ideen vermitteln könntet.

Daher mal kurz meine aktuell Meinung:

1. Weiterenwicklung meiner Desktop Anwendung mit Delphi XE2 - Eventuell Umstellung der DB auf einen SQL-Server wie SQLite oder Firebird
2. Entwicklung der Weabanwendung über/mit ??? - (???Visual Studio Community 2015??? - Azure???) Hier bin ich aktuell total unschlüssig.
3. Entwicklung der Android App mittels Android Studio...

Auf/Über Eure Antworten/Meinungen bin ich sehr gespannt. Schon mal vielen Dank...

Gruß Jens

Bernhard Geyer 25. Jan 2016 19:21

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jens Hartmann (Beitrag 1328184)
...Eventuell Umstellung der DB auf einen SQL-Server wie SQLite oder Firebird

Nicht evtl. sondern die Umstellung auf eine anderen Speicherung ist eines der ersten Sachen die Du durchführen musst.
MS Access heißt Windows, heißt Destop-Anwendung und sonst nix!

BenjaminH 25. Jan 2016 19:25

AW: Webanwendung wie, womit?
 
Am besten: Klare Trennung Frontend und Backend.

Z.b. einen Datenbankteil in PHP(ich würde lieber was anderes, z.b. python mit flask nehmen)
dieser kommuniziert mittels JSON Requests mit dem jeweiligen Frontend.
Dann kannst du relativ schnell verschiedene Frontends basteln, z.b. eine Weboberfläche mit Bootstrap und Javascript, das sieht ziemlich schnell schick aus.

Luckie 25. Jan 2016 19:35

AW: Webanwendung wie, womit?
 
Ich würde mir erst mal ein Konzept überlegen und dann entscheiden welche Werkzeuge ich benutze. Ich will ein Bild an die Wand hängen. Dazu will ich einen Hammer benutzen. Verdammt, jetzt habe ich eine Schraube. :shock: :mrgreen:

Zu aller erst muss die DB ja auf einen Server, damit sie erreichbar ist. Da verbietet sich schon mal Access, weil es meines Wissens nicht dafür geeignet ist. Da gibt es bessere Lösungen. (My)SQL und ähnliches.

Aus den Überlegungen ergeben sich dann die Entwicklungsumgebungen.

nahpets 25. Jan 2016 19:53

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1328187)
Zitat:

Zitat von Jens Hartmann (Beitrag 1328184)
...Eventuell Umstellung der DB auf einen SQL-Server wie SQLite oder Firebird

Nicht evtl. sondern die Umstellung auf eine anderen Speicherung ist eines der ersten Sachen die Du durchführen musst.
MS Access heißt Windows, heißt Destop-Anwendung und sonst nix!

Nein, nicht unbedingt.
Mit Delphi kann man wunderbar ISAPI-DLLs schreiben (und wenn man will, auch 'nen Webserver ;-))
Oder auch Apache-Module (zumindest bei Delphi 7 ging das).
MS-Access heißt von daher mit Nichten und Neffen Desktop-Anwendung.
Habe auch schon PHP-Foren gesehen, die gegen 'ne MS-Access-Datenbank liefen.
PHP kann mit ODBC umgehen (http://php.net/manual/de/faq.databases.php)
Java übrigens auch.

Die erste Frage, die zu beantworten wäre ist:
Auf was für einem System soll der Webserver laufen?
Windows oder Linux/Unix?

Wieviele Benutzer gleichzeitig?
MS-Access ist mehrbenutzerfähig, weiß aber nicht, wo da die Grenze ist.

Was soll der Webclient alles können?

Damit dann erstmal die Plattformen einschränken.
Dann die Auswahl der Datenbanken einschränken.
Dann die passenden Entwicklungsumgebung auswählen.

Luckie 25. Jan 2016 19:59

AW: Webanwendung wie, womit?
 
Auch wenn es mit Access möglich ist. Gehört habe ich, dass es nicht die ideale Lösung ist für so was. Versteht Access eigentlich SQL? Oder wieder nur so einen inkompatiblen MS Dialekt?

Aviator 25. Jan 2016 19:59

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jens Hartmann (Beitrag 1328184)
[...]
1. Weiterenwicklung meiner Desktop Anwendung mit Delphi XE2 - Eventuell Umstellung der DB auf einen SQL-Server wie SQLite oder Firebird
[...]

SQLite kannst du nur benutzen wenn du als einzelner Benutzer auf die Datenbank zugreifst. Ein Mehrbenutzersystem ist mit SQLite mit Boardmitteln nicht möglich. Es sei denn du erstellt dir deinen ganz eigenen Server der die Zugriffe handled. Bei MS Access ist es im Prinzip das Gleiche mit der zusätzlichen Einschränkung - wie Michael schon erwähnt hatte - dass du an Windows Systeme gebunden bist.

Solltest du jedoch nur ein Einzelplatzsystem benötigen, dann wäre SQLite keine schlechte Wahl. Läuft im Prinzip (so viel wie ich weiß) auf jedem OS. Das System hat zwar so seine Eigenheiten wie Typ-Affinitäten, aber wenn man das System wie eine normale Datenbank behandelt, dann sollte das keine Probleme bereiten. SQLite macht nur dann Probleme, wenn dir jemand anderes in eine Spalte einen Wert hineinschreibt, der nicht dort reingehört. Text in eine Integer Spalte ist bei SQLite nämlich kein Problem. Leider. :shock:

Bernhard Geyer 25. Jan 2016 20:00

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von nahpets (Beitrag 1328195)
Nein, nicht unbedingt.
Mit Delphi kann man wunderbar ISAPI-DLLs schreiben (und wenn man will, auch 'nen Webserver ;-))

Klar kann man sich freiwillig auf Windows-Server und IIS beschränken.
Will man das?
Und dann evtl. das Problem das Access eigentlich keine richtige DB
Mutiuserzugriff. Datenkonsistenz und Co. Alles nicht gerade Stärken von Access

nahpets 25. Jan 2016 20:14

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Luckie (Beitrag 1328197)
Auch wenn es mit Access möglich ist. Gehört habe ich, dass es nicht die ideale Lösung ist für so was. Versteht Access eigentlich SQL? Oder wieder nur so einen inkompatiblen MS Dialekt?

Access ist keine ideale Lösung, egal für was, aber wenn man es mit den Fähigkeiten nutzt, die es hat, dann geht das durchaus und auch dauerhaft stabil.

Ja es kann SQL. In einem WebClient, den es zusätzlich zu einer Desktop-Anwendung geben soll, ist nicht zu erwarten, dass dort andere SQL-Funktionen benötigt werden.
Habe schon viele Datenbanken kennengelernt, aber alle weichen mal mehr, mal weniger vom Standard ab und/oder bieten weitere Möglichkeiten.

nahpets 25. Jan 2016 20:23

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1328199)
Zitat:

Zitat von nahpets (Beitrag 1328195)
Nein, nicht unbedingt.
Mit Delphi kann man wunderbar ISAPI-DLLs schreiben (und wenn man will, auch 'nen Webserver ;-))

Klar kann man sich freiwillig auf Windows-Server und IIS beschränken.
Will man das?
Und dann evtl. das Problem das Access eigentlich keine richtige DB
Mutiuserzugriff. Datenkonsistenz und Co. Alles nicht gerade Stärken von Access

Also ISAPI-Dlls nutze ich ohne den IIS, aber auf Windows.
Natürlich ist Access für nichts optimal, aber wenn es für die Desktop-Anwendung reicht, könnte es auch für 'nen WebClient reichen.

Dort wo ich bisher Access nutzen musste und Multiuserbetrieb gefordert war, hat es ohne Dateninkonsitenzen problemlos funktioniert und zwar dauerhaft.

Natürlich bekomme ich dann kein hochperformantes System mit (annähernd) unbeschränkter Nutzerzahl.

Bevor es an die Auswahl einer Entwicklungsumgebung geht, müssen Zielplattform und -Datenbank feststehen.
Und für deren Auswahl müsste man eigentlich mehr wissen, als bisher bekannt ist.

Jens Hartmann 25. Jan 2016 21:09

AW: Webanwendung wie, womit?
 
Vorab schon mal vielen Dank. Ich will mal noch ein paar weitere Funktionen/Anforderungen nennen.

Die Grundanwendung läuft auf Windows. Es sind teilweise Mehrbenutzer aktiv, allerdings nur im kleinen Rahmen. Maximal 3-4 User gleichzeitig, wobei auch hier es fast unmöglich ist, dass zwei Nutzer die gleichen Daten verwenden. Bei dem System handelt es sich um ein Programm zur Verwaltung von Anlagendaten. Also ein paar Kundenstammdaten, Objekt bezogenen Stammdaten und Daten zu den einzelnen Systemen. Die Datenbank verfügt aktuell über eine größe von 10MB und 25 Tabellen. Viel mehr ist hier auch nicht zu erwarten.

Zusätzlich möchte ich jetzt gerne eine Webanwendung erstellen, die zum aktuellen Zeitpunkt nur Daten aus der DB lesen und zur Anzeige bringen soll. Ob später mal Eingabemasken dazukommen, kann ich aktuell noch nicht sagen, sollte aber Grundsätzlich mit in die Überlegungen einbezogen werden.

Die Android-App, steht in der aktuellen Zielsetzung noch ganz am Ende. Ob das überhaupt mal interessant ist und wenn in welchem Umfang kann ich noch nicht sagen. Aber da diese Gedanken schon mal in meinem Kopf sind, würde ich das halt gerne mit berücksichtigen.

Aus den vorausgegangenen Posts, habe ich zumindestens mal entnommen, das SQLite wegen dem Mehrbenutzerprinzip schon mal wegfällt.

Zu dem Thema Access. Die DB ist damals aus verschiedenen Gründen ausgewählt worden, ist aber nicht umbedingt erforderlich. Hier könnte auch jede andere DB Verwendung finden. Allerdings, läuft das ganze aktuell sehr stabil und auch fehlerfrei. Und z.B. mit ASP.NET ist der Zugriff eigendlich auch gut möglich. Als Serversystem, gibt aus auch keine Vorgaben. Da wir in unserem Betrieb einen Windowsserver in Betrieb haben, würde ich diesen natürlich verwenden wollen.

Aber wie man vieleicht sehen kann, mache ich mir schon länger Gedanken darüber aber dadaurch, dass ich viele der Möglichkeiten nicht wirklich kenne, sondern nur über Bücher mal was dazu gelesen habe, fällt es halt schwer hier eine zumindest mal voraussichtlich Gute Lösung zufinden.

Gruß Jens

HolgerX 26. Jan 2016 04:20

AW: Webanwendung wie, womit?
 
Hmm..

Du kannst es erstmal bei Access belassen, wenn es dann mehr Benutzer werden, ist ein wechsel auf Microsoft SQL-Server recht einfach zu machen, es brauch nur die Connection geändert werden.

Wir benutzen Access um eine Vorerfassung/Vorkonfiguration von Kundendaten zu machen und bei Auslieferung wird dann die Access-DB in den SQL-Server migriert. Oder, wenn der Kunde einen Einzel-Arbeitsplatz hat, dann kann er mit Access weiter arbeiten.

Je nach Anzahl der Arbeitsplätze und Daten aufkommen, kannst Du beim SQL-Server auch zur kostenlosen Express Version greifen.
Hier sind dann nur Einstellungen in der Firewall und das Starten weiterer (vorhandener) SQL-Server Dienste notwendig, damit auch User von anderen Rechnern darauf zugreifen können.

jaenicke 26. Jan 2016 04:49

AW: Webanwendung wie, womit?
 
Remobjects DataAbtract ist schön, aber teuer. Da du keine Enterprise Edition hast, fällt auch DataSnap weg, das wir einsetzen.

Mir fallen ansonsten noch ein:
mORMot, SOAP, RealThinClient, kbmMW (wird das noch aktiv weiter gepflegt? Die Seite sieht ziemlich im Koma aus...), ...

Angesichts dessen, dass du aktuell noch bei XE2 stehst, würde ich mORMot empfehlen. Da werden ältere Delphiversionen sicherlich am längsten gepflegt, weil OpenSource, und es ist kostenlos.
Nachteil ist, dass die Einarbeitung finde ich etwas länger dauert, aber es lohnt sich.

sh17 26. Jan 2016 06:44

AW: Webanwendung wie, womit?
 
Das hier hat auch grad einer wiederbelebt - XML-RPC:

http://sourceforge.net/p/delphixml-r.../branch-3-0-0/

hat aber keine Android-Client derzeit

Jens Hartmann 26. Jan 2016 07:02

AW: Webanwendung wie, womit?
 
Wie ist denn Grundlegend die Meinung zu Visual Studio Express (oder neu Communtity) und ASP.NET.
Sprache C# und SQL-Server Express...

mjustin 26. Jan 2016 07:04

AW: Webanwendung wie, womit?
 
Als low-Level Alternative wäre Indy zu nennen. Es arbeitet auf allen Delphi Versionen ab 5, ist für alle von Delphi unterstützten Plattformen verfügbar, kann i.d.R. mit Free Pascal benutzt werden, und enthält HTTP Server sowie Client Komponenten mit einigen fortgeschrittenen und nützlichen Features. (Auch ein WenSockets Aufsatz ist erhältlich, mit dem sich dann JavaScript anbinden läßt).

Lemmy 26. Jan 2016 07:08

AW: Webanwendung wie, womit?
 
Hallo,

ich würde an deiner Stelle mal VS mit WebAPI (ASP.NET) und für den Client AngularJS und co. anschauen. Damit kannst Du den Client in einem bel. Browser betreiben und über Cordova und co. mit dem chromium embedded auf alle Mobil-OS verteilt und ausgeführt werden können.

vagtler 26. Jan 2016 07:16

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jens Hartmann (Beitrag 1328227)
Wie ist denn Grundlegend die Meinung zu Visual Studio Express (oder neu Communtity) und ASP.NET.
Sprache C# und SQL-Server Express...

Damit macht man nichts falsch. Wobei wir bei relationalen Datenbanksystemen derzeit PostgreSQL bevorzugen, da wir einerseits so dem Plattform-Vendor-Lock-In als auch andererseits der berüchtigten MySQL-Lizenzproblematik entfleuchen. Beim MS-SQL-Server ist man halt grundsätzlich auf Microsoft-Plattformen beschränkt.

Auf der anderen Seite würde ich mich ergänzend auch mit node.js beschäftigen. Schneller haben wir noch nie Web-APIs entwickelt.

Jens Hartmann 26. Jan 2016 08:53

AW: Webanwendung wie, womit?
 
Zu dem Thema ASP.NET...

Macht es schon Sinn mit dem neuen VS Community das ganze zu testen. Ich finde das aktuell total unübersichtlich und Tutorials sind hierzu auch wendige zu finden.

Jumpy 26. Jan 2016 08:59

AW: Webanwendung wie, womit?
 
Bezüglich Android-Anwendung: Vielleicht gestalltest du die Web-Version so, dass sie auch auf kleineren Mobilgeräten ordentlich aussieht und benutzbar ist, dann kannst du dir u.U. die Android-Version sparen oder erstmal auf die lange Bank schieben. Bootstrap wurde hier schon mal genannte und wäre ein Framwork mit dem man sowas umsetzen könnte.

Jens Hartmann 26. Jan 2016 09:11

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jumpy
Bezüglich Android-Anwendung: Vielleicht gestalltest du die Web-Version so, dass sie auch auf kleineren Mobilgeräten ordentlich aussieht und benutzbar ist,

Die Anwendung würde andere Funktion benötigen. Es wäre nur der Zugriff auf die selben Daten erforderlich. Wo auch immer dieser gespeichert werden.

Daher ist das nicht umsetzbar...

Jumpy 26. Jan 2016 10:05

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jens Hartmann (Beitrag 1328264)
Zitat:

Zitat von Jumpy
Bezüglich Android-Anwendung: Vielleicht gestalltest du die Web-Version so, dass sie auch auf kleineren Mobilgeräten ordentlich aussieht und benutzbar ist,

Die Anwendung würde andere Funktion benötigen. Es wäre nur der Zugriff auf die selben Daten erforderlich. Wo auch immer dieser gespeichert werden.

Daher ist das nicht umsetzbar...

Seh ich jetzt nicht so. Eine Andoid-App bräuchte dann die Daten ja entweder lokal, somit SQL-Lite oder wie das heißt, oder müsste die Daten ebenfalls von einem Server ziehen, idealerweise vom selben Webservice wie die Webanwendung, dann könnte man doch alles in einem erledigen.

Das stimmt natürlich nicht mehr, wenn man Dinge von Android bzw. dem Mobilgerät nutzen möchte, die man "im Browser" nicht nutzen kann, keine Ahnung was das so sein könnte (Standortdienst, Kamera,...?) Oder kann man die mittleweile auch per Javascript oder sonstwie benutzen? Da muss dann wahrscheinlich wirklich eine "App" her.

Lemmy 26. Jan 2016 10:08

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jumpy (Beitrag 1328270)
Das stimmt natürlich nicht mehr, wenn man Dinge von Android bzw. dem Mobilgerät nutzen möchte, die man "im Browser" nicht nutzen kann, keine Ahnung was das so sein könnte (Standortdienst, Kamera,...?) Oder kann man die mittleweile auch per Javascript oder sonstwie benutzen?

schon mal was von HTML5 gehört? ;-)

Jumpy 26. Jan 2016 10:37

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Lemmy (Beitrag 1328271)
Zitat:

Zitat von Jumpy (Beitrag 1328270)
Das stimmt natürlich nicht mehr, wenn man Dinge von Android bzw. dem Mobilgerät nutzen möchte, die man "im Browser" nicht nutzen kann, keine Ahnung was das so sein könnte (Standortdienst, Kamera,...?) Oder kann man die mittleweile auch per Javascript oder sonstwie benutzen?

schon mal was von HTML5 gehört? ;-)

Gehört ja, aber hatte keine Ahnung, was man da alles mit machen kann. Kamerazugriff und GPS z.B. würde aber scheinbar gehen, wie ich gerade gegoogelt habe. Ist doch was.

Jens Hartmann 26. Jan 2016 13:15

AW: Webanwendung wie, womit?
 
Das mit dem HTML5 ist ja alles schön und Gut. Kostet aber Geld. Dafür müsste ich ja mindestens XE3 haben. Es geht mir auch vielmehr darum, welche Lösung/IDE machbar ist und über Gute und am besten deutschsprachige Tutorials verfügt.

Beim eigenen Stöbern/suchen gibt es soviel Möglichkeit, dass es schwer fällt hier zu einem Ergebniss zu kommen.

Mit ASP.NET habe ich unter VS2008 schon mal gearbeitet. Daher könnte ich mir halt vorstellen, dass es damit für mich und meine Kenntnisse lösbar sein wird. Bei der neuen Version von VS2015 habe ich aktuell schwierigkeiten die Zusammenhänge zu verstehen und es gibt halt nur wenig deutschsprachige Infos/Tutorials...(zumindest habe ich noch kene gefunden)

Als alternative steht mir für die WEB Anwenudng ja auch noch RAD PHP unter XE2 zur Verfügung.

Lemmy 26. Jan 2016 14:50

AW: Webanwendung wie, womit?
 
Zitat:

Zitat von Jens Hartmann (Beitrag 1328289)
Das mit dem HTML5 ist ja alles schön und Gut. Kostet aber Geld. Dafür müsste ich ja mindestens XE3 haben.

????? Wozu XE3 ????

Deinen CLient baust Du mit HTML5 und AngularJS und irgend einen Bootstrap (da gibts auch kostenlose die gut aussehen).

Den Server schreibst Du mit was auch immer - z.B. mit VS Community dann kannst Du die WebAPI nutzen und recht einfach JSON zum Client schaufeln, zusammen mit EntityFramework eine ziemlich schöne Sache...

Alternativ mit Delphi ein vergleichbares WebAPI nachbauen auf den Indys oder 41€ an Michael Justin überweisen und seine WebComponents nehmen:
https://www.habarisoft.com/habari_webcomponents.html

die nehmen dir hier einiges an Arbeit ab..

nevolab 26. Jan 2016 15:26

AW: Webanwendung wie, womit?
 
Für „Delphianer“ könnte vielleicht auch der "Elevate Web Builder" von Elevate Software interesant sein.
Kostet aber ~ 350$

http://www.elevatesoft.com/products?...y=ewb&type=web

erzeugt aus Pascal einen schnellen JAVAscript. Die IDE ist der von Delphi ähnlich.


Wir haben damit eine online Software Registierung realisiert.


Gruß

Martin


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:17 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