Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Welche Programmiersprache(n) für Web-DB-Projekt? (https://www.delphipraxis.net/41540-welche-programmiersprache-n-fuer-web-db-projekt.html)

urs.liska 4. Mär 2005 21:56


Welche Programmiersprache(n) für Web-DB-Projekt?
 
Hallo DP,

ich habe das Problem, dass ich einem potenziellen Auftraggeber ein Projekt schmackhaft machen muss und bin nun bei der Überlegung, welche Sprachen/Technologien dafür am besten geeignet wären.
Daher frage ich Euch mal um Eure Meinung bzw. Erfahrungen.

Es geht um eine wissenschaftliche Datenbank, die z.T. für interne Zwecke, z.T. auch nach außen hin zur Recherche im Internet gebraucht werden soll.
Die Anforderungen sehen ungefähr wie folgt aus:

1)
Die Datenbank selbst existiert noch nicht, es gibt lediglich Daten in verschiedensten Formaten von Schreibmaschine bis Word-Dokument (was sich in 40 Jahren so angesammelt hat).

2)
Es müssen Wege gefunden werden, die vorhandenen Daten so automatisiert wie möglich in die Datenbank zu bringen.

3)
Die Daten sollen zukünftig auf verschiedenen Ebenen bearbeitet werden:
a)
"Hausintern", also eine DB-Anwendung mit weitreichender Flexibilität
b)
Teile der Daten sollen über das Internet öffentlich recherchierbar sein.
c)
Evtl. sollen später registrierte Benutzer über das Internet Daten in die DB einfügen können (möglicherweise mit verschiedenen "Rollen", d.h. abhängig von einem Login können verschiedene Bereiche der DB bearbeitet werden).
d)
Von verschiedenen Mitarbeitern an verschiedenen Orten, die sporadisch mit der DB arbeiten und auch nur gelegentlich neue Daten einspielen. Das kann sowohl auf Laptops geschehen als auch auf Arbeitsrechnern, die irgendwo stehen und nicht unbedingt konstanten Internetzugang haben.

Der Server würde wohl irgendwo in einem Uni-Netzwerk laufen, also wahrscheinlich auf einem Unix-OS.
Die hausinternen Mitarbeiter arbeiten auf Mac.
Es ist sicher möglich, auch (mindestens) einen Windows-Rechner im Haus-Netz unterzubringen.


Zu 1) Als Datenbank selbst möchte ich Firebird nehmen, da ich ihn (?) recht gut kenne und er bezüglich der Dimensionen des Projektes sicher gut geeignet ist.

Zu 2)
Das kann ich (auf Grund meiner Erfahrungen) vorläufig nur mit Delphi realisieren, da ich mich damit am besten auskenne.

Zu 3)
a)-c) Dafür erscheint mir eine Webserver-Architektur geeignet.
Vorstellbar wäre eine Lösung mit einer Delphi-Webserver-Anwendung, die die verschiedenen Anwendungsfälle realisiert.
Nachteil: Plattformabhängigkeit.
Wieweit kann ich davon ausgehen, mein Webserver-Programm zumindest auch für Linux zum Laufen zu bekommen (womit ich noch überhaupt keine Erfahrung habe)?
Daher dachte ich an eine PHP-Anwendung, mit der die verschiedenen Programm-Modi auch realisierbar wären.

Durch d) wird das aber schwierig, da ja auf den Laptops und Heim-Rechnern nicht überall PHP-fähige Webserver und DB-Server installiert werden können.

Daher hatte ich die Idee, das ganze (bis auf Punkt 2) auf Java-Basis zu realisieren.

für 3a) denke ich dabei an eine selbständige Java-Applikation, wahrscheinlich dreischichtig.
Für 3b) und c) an eine Browseranwendung mit JavaServerPages. Evtl. könnte auch 3a) so gelöst werden
3d) könnte wiederum mit einer selbständigen Java-Applikation und lokalen Datenbanken (Firebird embedded) sowie Replikationsmechanismen gelöst werden.

Den Vorteil dieses Ansatzes erhoffe ich mir darin, dass ich große Teile der ganzen Geschäftslogik mit Java-Klassen realisieren kann, die in allen verschiedenen Anwendungsformen wiederverwendet werden können (sowohl für die selbständigen Anwendungen als auch für die JSP).

Der Haken daran ist, dass ich mich mit Java nur in den Grundlagen auskenne und kaum praktische Erfahrung habe.
Das ist wiederum nicht ganz so katastrophal, da ich nicht eigentlich als Informatiker gefragt bin, sondern "nur" als Wissenschaftler im relevanten Fach, der gleichzeitig in der Lage ist, die entsprechenden Programme zu entwickeln; Einarbeitungszeit ist also kein k.o.-Kriterium.


Die Fragen sind nun vor allem:
- Ist meine Vorstellung von der Java/JSP-Architektur einigermaßen richtig?
- Oder könnte ich das alles doch genausogut mit Delphi realisieren (wo ich mich eher zuhause fühle)?
- Oder wäre doch etwas wie PHP eine gangbare Lösung?

Danke für Eure Meinungen
Urs

P.S.
Ich bin nicht interessiert an einer ausufernden Diskussion über die "beste" Programmiersprache.
Nur an geeigneten Techniken für meine Aufgabenstellung und meinen Hintergrund

Phoenix 4. Mär 2005 22:15

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Klingt alles ganz eindeutig nach ASP.NET (aspx).

1.) Webservices
Damit kannst Du so gut wie jede Kommunikation realisieren. Also sowohl von einer Applikation zur Datenbank als auch von einer Webanwendung selber zur Datenbank: Du musst die Schnittstellen nur einmal machen.

2.) ASP.NET ist Portabel.
Mit dotGNU kannst Du eine in Delphi.NET geschriebene DLL 1:1 auch unter Linux/Unix laufen lassen.

3.) ADO.NET
Bietet Dir die Provider um auf Firebird zuzugreifen.

Du kannst für Anforderung D) auch einen kleinen Winforms - Client schreiben (sollte inzwischen dank dotGNU auch schon unter Linux / Unix laufen) der die Daten - bis er online kommt - lokal in XML ablegt (trotzdem ADO.NET verwendet, Du kannst also den gleichen Code wie beim Server verwenden) und erst dann über die Webservices synchronisiert.


Lass die Finger weg von Java. .NET ist (in egal welcher Sprache) für sowas deutlichst besser geeignet und vor allem performanter und portabler (wenn ich nur an die verschiedenen runtimes / VM's denke *schauder*).

ak1 4. Mär 2005 22:34

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
JSP's und Servlets sind eine feine Sache. Evtl. auch ein Framework wie Struts.
Delphi und Linux bzw. Unix würde ich vergessen.

Robert_G 4. Mär 2005 23:23

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Java 1.5 und .Net nehmen sich da nicht sooo viel. Beises Technologien, die aufgrund ihrer VM perfekt an diese Anfordeungen geschneidert sind.
VMs wissen einfach mehr darüber was du da machst, deshlab können sie dich auch auf so geniale Art unterstützen (Reflection!!!).
.Net implementiert aber viele Dinger noch eine Ecke hübscher, sicherer und vor allem performanter. Deshalb bin ich .Net Entwickler und nicht Java-entwickler. ;)
JDO ist aber zum Bleistift verflucht cool. :) Dafür ist .Nets Reflection einfach genialer. :) :)

ak1 5. Mär 2005 09:50

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
.NEt und Unix, das passt nicht wirklich. Aber wenn du genug Zeit hast, dann kanst du ja mal testen wie gut Mono im Webumfeld wirklich ist. Würde mich echt interessieren.

urs.liska 5. Mär 2005 10:08

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Hallo,

danke erstmal für Eure Kommentare.
Zitat:

Zitat von Phoenix
Klingt alles ganz eindeutig nach ASP.NET (aspx)...
Lass die Finger weg von Java. .NET ist (in egal welcher Sprache) für sowas deutlichst besser geeignet

Zitat:

Zitat von ak1
JSP's und Servlets sind eine feine Sache.

Zitat:

Zitat von Robert_G
Java 1.5 und .Net nehmen sich da nicht sooo viel. Beises Technologien, die aufgrund ihrer VM perfekt an diese Anfordeungen geschneidert sind.

Interessant. So ungefähr hatte ich das befürchtet...

@Phoenix:
Könnte ich das alles mit Delphi (8 oder 2005) realisieren?
Und bin ich dann, was den Webserver betrifft, auf Windows angewiesen? Oder bezieht sich Dein Kommentar zu den DLLs auch darauf (kann ich also mit Delphi.NET erstellte WebServices unter einem Linux-Webserver ausführen)?
Und was ist mit Mac? läuft das auch dort?
(Sorry, ich habe noch keine Vorstellung von .NET)

@Robert_G:
Wo sind denn die - für meine Belange - wesentlichen Unterschiede von Java 1.5 zu den früheren Versionen?
Inwiefern ist für mein Projekt Reflection von Bedeutung?

Danke nochmals
Urs

P.S. @ak1: Ich kenne Mono leider nicht, werde mal schauen, was das ist.

Marcel Gascoyne 5. Mär 2005 10:18

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Deine Problembeschreibung deckt sich ziemlich mit den Möglichkeiten die ein Dokumentenmanagement System bietet.

Ich bin vor kurzem auf ein freies Dokumentenmanagement System gestossen. Das System verwendet Java und den Tomcat Application Server. Schau es Dir doch einfach mal an: Contineo.

Gruß,
Marcel

urs.liska 5. Mär 2005 10:54

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Hallo Marcel,

danke für den Tipp. Aber das trifft nicht meine Aufgabenstellung. Vielleicht habe ich mich unklar ausgedrückt, aber es geht nicht um die Verwaltung von Dokumenten.

Die Informationen sind zwar bislang in zahllosen Dokumenten gespeichert. Aber es geht nicht darum, Dokumente zu verwalten, sondern die Inhalte. Und die gehören eindeutig in eine Datenbank (das ist sicher).
Ich muss also nicht Dokumente in der Datenbank speichern, sondern den Inhalt auslesen und in eine DB eintragen. Das ist alles andere als trivial, aber ich denke, es ist machbar. Nicht vollautomatisch, aber in der Art einer weitestmöglichen (am besten lernfähigen) Unterstützung von Menschen, die die Übertragung letztlich überwachen.
Das ist aber der Teil, den ich einfach in Delphi realisieren würde. Das ist letztlich eine ganz klassische Datenbankanwendung.

Urs

P.S. aber contineo könnte für mich anderweitig höchst interessant sein. Also nochmals danke für den Tipp!

Chewie 5. Mär 2005 11:17

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Nochmal was zu .NET unter anderen Plattformen:
Ich hab zwar damit noch keine Erfahrungen, aber es gilt als allgemeiner Tenor, dass ASP.NET und Webforms unter Mono bereits vollständig implementiert und lauffähig sind.
Natürlich darf man dann keine OS-spezifischen und exotischen APIs des .NET-Frameworks aufrufen...

ak1 5. Mär 2005 12:29

Re: Welche Programmiersprache(n) für Web-DB-Projekt?
 
Wenn du Inhalte verwalten möchtest, dann brauchst du auch eine gute suchfunktion, da bietet sich Apache Lucene an, ein Framework für Suchmaschinen. Java hat halt den Vorteil, dass es sich in großen und kleinen Projekten bewährt hat und für so gut wie alle Probleme freie Frameworks (Klassenbibliotheken) zur Verfügung stellt (siehe Apache Softwarefoundation). Wenn du Delphi.NET (ASP.NET) verwenden möchtest
, dann nur auf Windows-Servern.


Gruß

P.S. Reflection wirst du kaum selbst anwenden müssen, das wird von diversen Klassen automatisch verwendet.
P.P.S. Java 1.5 bietet ein paar Neuerungen die aber für einen Anfanger nicht sooo Weltbewegend sind, ich verwende selbst noch Version 1.4.2


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:41 Uhr.
Seite 1 von 2  1 2      

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