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/)
-   -   Womit zukunftssichere Datenbankanwendungen erstellen? (https://www.delphipraxis.net/156505-womit-zukunftssichere-datenbankanwendungen-erstellen.html)

Matze 4. Dez 2010 15:02

Womit zukunftssichere Datenbankanwendungen erstellen?
 
Hi zusammen,

eine Frage aus reinem interesse:
Womit sollten heutzutage Datenbankanwendungen geschrieben werden, die zukunftssicher sind?
Wichtig wäre, dass ohne große Kosten kommerzielle Software damit geschrieben werden kann. Ich kenne mich mit den Lizenzen da nicht so gut aus. Beispielsweise, ob man das kostenlose Visual Studio Express kommerziell nutzen darf.

Programmiersprachen/Frameworks

Zum Einen gibt es da verschiedene "Umgebungen" wie:

- .NET-Framework
- Win32
- Win64

Dann natürlich Programmiersprachen:

- Delphi
- C++
- C#, Visual C++, Visual Basic, J# (alles für .NET)
- Java
- ...

Und dann noch verschiedene Frameworks oder was das genau ist

- WinForms (veraltet)
- WPF (neuer als WinForms, doch vermutlich auch bald veraltet)
- Silverlight (glaub das ist noch recht aktuell, aber zukunftssicher?)
- LightSwitch (momentan in der Betaphase, aber wer weiß, wie lange es bestehen wird)

Gerade bei den ganzen MS-Entwicklungen wie den letzten genannten Punkten stehe ich sehr kritisch gegenüber. Diese sind dermaßen kurzlebig, dass ich bei soetwas vorsichtig wäre.
Die klassische Programmiersprache C++ besteht seit Jahrzehnten und wird heute immer noch gerne eingesetzt. Daher sehe ich hier auch in den nächsten Jahrzehnten so schnell kein Ende dieser Sprache. Ich weiß jedoch nicht, wie es hier mit der grafischen Oberfläche aussieht. Wenn das so ein Krampf ist wie bei Java, wäre das schlecht.
Aber es gibt viele professionelle Anwendungen mit ansprechenden GUIs, die in C++ geschrieben sind.

Datenbanken

Jo, da gibt es auch nicht weniger Auswahl:

- MySQL
- MSSQL
- Firebird
- Access
- ...

Welche Programmiersprache mit den verschiedenen Datenbanken umgehen kann, muss dann natürlich auch noch untersucht werden.
Das Ganze sollte unter Windows laufen, aber es wäre sicher kein Fehler, wenn es zusätzlich leicht nach Linux portierbar wäre.

Ich bin sehr auf sachliche Beiträge gespannt und möchte kein Diskussionen, die aus dem Ruder laufen.

Grüße
Matze

Mithrandir 4. Dez 2010 15:13

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Zitat:

Zitat von Matze (Beitrag 1066131)
Beispielsweise, ob man das kostenlose Visual Studio Express kommerziell nutzen darf.

Darf man, steht in den AGB.

Die Kombination Visual Studio 2010 Professional, C# und MSSQL 2008 läuft bei mir eigentlich ordentlich. Mit der Expressversion kommst du Datenbankmäßig imho nicht weit...

Ich wäre momentan vorsichtig, mich auf ein bestimmtes grafisches Framework festzulegen. WPF ist sicherlich nicht am Aussterben, auch Microsoft hat die Aussage mittlerweile revidiert. Windows Forms wird momentan immer stärker vernachlässigt. LightSwitch ist imho eine Mischung aus Access und Visual Foxpro. Die SQL-Abfragen sind grottig, beim 3-Schichten-Modell wird (momentan) zwingend ein IIS benötigt, ebenso ein DBMS von Microsoft. Ich arbeite damit und werde jedesmal leicht grünlich im Gesicht. Es ist halt doch mehr für den versierten Abteilungsleiter, der sich seine Arbeitnehmerverwaltung zusammenbauen will.

Momentan scheint es für mich, als wolle Microsoft immer mehr in die Cloud gehen bzw. ins Web. Ob HTML 5 den heiligen Gral darstellt... Ich weiß nicht. Silverlight ist ein guter Ansatz, Beta 5 kommt im Frühjahr 2011. Momentan würde ich auf WPF und/oder Silverlight setzen. Allerdings ist die Lernkurve massiv. Frust ist vorprogrammiert. Wenns dann aber funktioniert, isses geil. :mrgreen:

DBMS? Hmm. Von Oracle würde ich die Finger lassen, Microsoft kocht sein eigenes Süppchen. Ggf MySQL, da ist nur der Support kostenpflichtig.

stahli 4. Dez 2010 15:19

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Man sollte sicherlich als erstes klären, wo die DB laufen soll und wie darauf zugegriffen werden soll (Desktop, Internet, Browser).
Außerdem ist sicher wichtig wie groß und komplex die DB werden muss.

Ich denke, so pauschal kann man da kaum sinnvoll etwas zu sagen...

Matze 4. Dez 2010 15:21

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Danke für deinen Beitrag Daniel.

Dann gehe ich noch eine Stufe weiter, wo ich gerade "Cloud" lese.
Die Anwendungen müssen eigenständig auf einem PC lauffähig sein, der nicht ans Internet angeschlossen ist.

Wenn es eine Möglichkeit gibt, so eine Anwendung zusätzlich über den Browser bedienen zu können, dann ist das evtl. nett aber (noch) nicht erforderlich.

Edit @Stahli: Auch dir dankeschön. Es können schon einige Millionen Datensätze sein. Also große Datenbanken sollten ohne Einschränkungen verwendet werden können. Die Anwendungen selbst laufen auf einem PC und die Datenbank muss nicht unbedingt an dem PC laufen. Diese könnte auch auf einem externen Server oder einem zweiten Rechner liegen.

Insider2004 4. Dez 2010 15:21

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
MS ist immer gross im Einführen on neuen Dingen. Leider sind sie dann wie ein kleines Kind. Das Spielzeug ist langweilig und wird in die Ecke geworfen sprich vernachlässigt und nicht mehr gepflegt. Sie lassen dann die Entwickler im Regen stehen. Siehe Visual Basic Native oder J# oder Silverlight. Alles mehr oder weniger tot. Es gibt bestimmt noch 20 andere Techniken, die ich zum Glück nie gelernt/gekauft habe und vergessen habe!!! :-D Das Einzige, was bei MS Bestand hat ist die Win32 API.

Lemmy 4. Dez 2010 15:25

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Zitat:

Zitat von Matze (Beitrag 1066131)

Womit sollten heutzutage Datenbankanwendungen geschrieben werden, die zukunftssicher sind?

am besten gar nicht. Schau dir nur mal die letzten 10 Jahre an was aus VB (nicht .Net), Kylix und Interbase wurde.


Zitat:

Zitat von Matze (Beitrag 1066131)
Wichtig wäre, dass ohne große Kosten kommerzielle Software damit geschrieben werden kann. Ich kenne mich mit den Lizenzen da nicht so gut aus. Beispielsweise, ob man das kostenlose Visual Studio Express kommerziell nutzen darf.

Was soll das? Die 1000€ für eine IDE bzw. 5.000-7.500€ (einfach mal ins blaue geschätzt) für einen Arbeitsplatz sind Peanuts! Was ins Geld geht sind die Personalkosten! Diese kann man mit sinnvollen Arbeitsumgebungen zwar nicht reduzieren aber wesentlich mehr herausholen! Wenn du "billig" programmieren willst, dann verwende [Übertreibung] Turbo Pascal 5.5 oder Vb 6.0 [/Übertreibung] ;-) Oder verwende Notepad und einen Kommandozeilencompiler. Sehr billig, die Entwicklung wird aber ewig dauern....

Zitat:

Zitat von Matze (Beitrag 1066131)
Programmiersprachen/Frameworks

Kommt auf deinen Geschmack und auf die vorhandenen Ressourcen an. Wenn du ein großes Entwicklerteam hast, die an einer Anwendung arbeiten müssen, ist .NET durch das Assembly-Konzept jeglichen Win32-Sprachen im VOrteil. Weiterhin wirst Du einfach wesentlich schneller genügend Mitarbeiter finden.


Zitat:

Zitat von Matze (Beitrag 1066131)
- WPF (neuer als WinForms, doch vermutlich auch bald veraltet)

OT:
??? Habe ich was nicht mitbekommen? In den letzten WOchen wird als Gerücht in div. Blogs immer von Silverlight gesprochen, das eingestellt werden soll, aber warum denn WPF? Dann kann Microsoft mit .Net endgültig einpacken....


Zitat:

Zitat von Matze (Beitrag 1066131)
Datenbanken

Wie bei den Programmiersprachen: Es kommt darauf an. Div. Firmen lassen kein Oracle auf ihre Server, andere keine MS SQL usw. Das ändert sich aber auch immer i.d.R: mit dem Personalwechsel bei Systemadmin ;-) Da werden schon mal eben kurz eine Serverfarm mit funktionierendem Linux-Mailserversystem auf Exchange umgestellt :-)

Was wichtig wäre:
* Die Businnesslogik sollte getrennt von allem erarbeitet werden, d.h. Einsatz einer entsprechenden Beschreibungssprache (UML) um bei einem ggf. notwendigen Systemwechsel zumindest das Businessmodell retten zu können.
* schlägt in die selbe Kerbe: Schichtenaufbau der Anwendung, d.h. die Schichten GUI, Businessmodell und Datenbank greifen nicht direkt aufeinander zu sondern über definierte Schnittstellen (da gibts auch jede Menge Patterns dazu). Damit lässt sich zum einen die Datenbank relativ "einfach" austauschen, zum anderen gäbe es ggf. die Möglichkeit eine andere GUI anzusprechen (z.B. mit einem Delphi-BOM eine .NET Oberfläche "bedienen")
* Vergiss auf übermorgen zu schauen: Du weißt nicht mal was morgen passiert. Meine Bekannten, die sich in der Branche auch auskennen, machen mich immer dumm an: Wer mit Delphi programmiert, der gehört vor Gericht. War aber vor 10 Jahren auch schon so. Je vorsichtiger Du irgenwelche Entscheidungen angehst, je länger (und teurer) wird im Endeffekt deine Entwicklung werden. Das heißt jetzt nicht renn blind durch die Gegend, sondern es gehört einfach ein gesundes Maß dazu. Und Fehlentscheidungen gehören hier wie überall einfach dazu....

GRüße

stahli 4. Dez 2010 15:28

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Zitat:

Zitat von Matze (Beitrag 1066142)
Wenn es eine Möglichkeit gibt, so eine Anwendung zusätzlich über den Browser bedienen zu können, dann ist das evtl. nett aber (noch) nicht erforderlich.

Edit @Stahli: Auch dir dankeschön. Es können schon einige Millionen Datensätze sein. Also große Datenbanken sollten ohne Einschränkungen verwendet werden können. Die Anwendungen selbst laufen auf einem PC und die Datenbank muss nicht unbedingt an dem PC laufen. Diese könnte auch auf einem externen Server oder einem zweiten Rechner liegen.

Dann werden Dir wohl 90% aller DP-User (und ich) zu Firebird raten (zumindest würde ich damit mal anfangen). Zugriffsmöglichkeiten von Delphi aus gibt es dann mehrere (am einfachsten IBX).
Ein Tool wie IBExpert vereinfacht die Organbisation der Datenbanken.

alzaimar 4. Dez 2010 15:43

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Zitat:

Zitat von Mithrandir (Beitrag 1066137)
...MSSQL 2008 ...Mit der Expressversion kommst du Datenbankmäßig imho nicht weit...

Wenn das auf MSSQL bezogen ist, kann ich das nicht teilen.
Zitat:

Zitat von Mithrandir (Beitrag 1066137)
DBMS? Hmm. Von Oracle würde ich die Finger lassen, Microsoft kocht sein eigenes Süppchen. Ggf MySQL, da ist nur der Support kostenpflichtig.

Wie bitte? Wenn Zukunftssicher, dann PostGres, MSSQL oder Oracle. Auf jeden Fall entweder eine Datenbank, die es schon ewig gibt, eine von einem sehr großen Anbieter, der mit der DB ordentlich Schotter macht, oder alles zusammen. Da ist ja wohl Oracle und MSSQL ganz weit vorne. Andere natürlich auch.

Ansonsten würde ich persönlich C#, aber ohne dickes Framework verwenden und der DB-Anbindung ein hohes Abstraktionsniveau spendieren, d.h. so vieles wie möglich (und sinnvoll) in 'Stored Procedures' packen, die entweder im SQL-Server oder in einem Applikationsserver ausgeführt werden.

Dann würde ich mir noch überlegen, wie lange die Anwendung den leben soll. Wir reden ja hier nicht von 100 Jahren, sondern von vielleicht 10-15. Wenn Du heute in C# entwickelst, bist du auf der sicheren Seite. Mit Fortran und Cobol übrigens auch, das gibt es alles noch und wird es immer geben. Auch wenn Du den Riesenfehler gemacht hättest, und vor 10 Jahren in VB entwickelt hättest, wärst du heute nicht am Ende. Man muss ja wohl nicht immer die neuesten Compiler kaufen.

Eine Anwendung von mir ist in D6 geschrieben und da der Kunde die Migration zu einem modernen Delphi nicht bezahlen will, bleibt es dabei. WTF. Dem Programm ist es doch nicht peinlich, das es mit einer alten IDE entwickelt wurde.

Was ich garantiert nicht und auf keinen Fall machen würde, ist:
* Irgendwelchen neumodischen Schnickschnack
* Irgendwelche OpenSource oder Freeware-Komponenten (selbst bei einer DB wäre ich zurückhaltend)
verwenden.

Nachhaltig = Konservativ und Simpel.

Du kannst ja jederzeit eine total abgefahrene GUI rüberstülpen. Da holt man sich ein paar Freaks, die einem die GUI designen und tauscht die alle paar Jahre aus. Im Hintergrund werkelt, wenn gut geschrieben, immer die gleiche gute alte Engine.

Macht MS doch genau so und verdienen sich einen Wolf (Siehe Word, nur das da bis vor Kurzem keine 'gute alte Engine' werkelte, die gut geschrieben war).

Bernhard Geyer 4. Dez 2010 15:45

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Zitat:

Zitat von Matze (Beitrag 1066131)
- MySQL

Da wird in die nächsten Jahre "interessant" inwieweit MySQL von Oracle "an die Leine" genommen wird. Die günstiges Lizenzversion wurde von Oracle schon gestrichen so das man hier schon eine verdreifachung der Kosten hat. Inwieweit die Embedded/libmysql-Kosten bei Closed-Source steigt weis ich nicht. War ja schon vor Oracle-Zeiten mit 30 k€/a nicht gerade günstig für kleinere Firmen

Matze 4. Dez 2010 15:53

AW: Womit zukunftssichere Datenbankanwendungen erstellen?
 
Zitat:

Zitat von Lemmy (Beitrag 1066146)
Was soll das? Die 1000€ für eine IDE bzw. 5.000-7.500€ (einfach mal ins blaue geschätzt) für einen Arbeitsplatz sind Peanuts! Was ins Geld geht sind die Personalkosten!

Ich meinte nicht die einmaligen Kosten, sondern eher die laufenden (Lizenzgebühren für Datenbanken, die Rechnerbezogen sind o.ä.)

Zitat:

Zitat von Lemmy (Beitrag 1066146)
* Vergiss auf übermorgen zu schauen: Du weißt nicht mal was morgen passiert.

Muss man heutzutage aber, wenn man nicht alle paar jahre die Anwendungen in irgendwelche SPrachen portieren möchte.
Ziel ist es, eine Art Standard in der Firma zu schaffen, der zukünftig genutzt werden kann.

z.B. eine Klasse zum Lesen und Schreiben in die Datenbank, eine zum Durchsuchen der Datenbank etc.

Wenn die Klassen mal ausgereift sind, möchte ich die auch in 10 Jahren noch nutzen können im Idealfall.
Das können natürlich auch DLLs werden, die angesprochen werden können.
Alles andere verursacht sonst immense Kosten. Also die Zukunft muss ich im Auge behalten.

@Mark: Zu C# tendiere ich momentan auch oder zu C++. Bei MSSQL muss ich mir die Lizenzkosten einmal ansehen. Momentan wird Access verwendet und wenn die Kosten nicht viel teurer sind, wäre das sicherlich in Ordnung.

Wie kann man denn eine GUI "rüberstülpen"?
Du meinst, man trennt natürlich Logik von der GUI und bei einer neuen GUI werden entsprechende Klassen für die Datenverarbeitung aufgerufen und eben an neuen Controls angezeigt?


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