Pro und Kontra der Erstellung von Apps mit proprietären Datenbanksystemen

8

Ich war schon lange an 4D SAS Datenbankprodukt interessiert, habe es aber in Äonen kaum berührt.

Bei der Frage, welche Tools für die Anwendungsentwicklung zu verwenden sind, insbesondere, wenn eine Datenbankkomponente benötigt wird, sollte bei Open-Source-Tools wie MySQL und PostgreSQL nach proprietären Lösungen wie 4D oder Pervasive SQL gesucht werden?

Welche guten (und schlechten!) Erfahrungen hatte die SO-Community mit verschiedenen DB-Tools wie 4D, Pervasive, FilemakerPro, etc.?

Irgendwelche schlechten Erfahrungen?

    
warren 26.06.2014, 16:01
quelle

10 Antworten

2

4D ist ein MacOS / Windows nur plattformübergreifendes, proprietäres Datenbanksystem mit sowohl eigenständigen als auch Client-Server-Varianten. Sie würden es gut machen, es mit Alphafive.com-Software zu vergleichen, die nur Windows ist. Ich habe 17 Jahre damit gearbeitet und es hat mir und meiner Abteilung sehr gut getan. Von meinem Kopf ...

Pros:

  1. Schnittstelle & amp; Der Code ist eng mit der Daten-Engine verknüpft, was die Entwicklung von umfangreichen, plattformübergreifenden Benutzeroberflächen sehr schnell und einfach macht.
  2. Proprietäre relationale Daten-Engine wird nativ auf beiden Plattformen zusammen mit nativen Client-Schnittstellen ausgeführt (erfordert jedoch Lizenzen für mehrere Benutzer). Auto-Relationen sind hilfreich (aber manchmal im Weg).
  3. Kann über SOAP und ODBC- und SQL-Treiber (begrenzt) auf externe Systeme zugreifen.
  4. Zugriff auf 4D von externen Systemen über SOAP oder http Anfragen & amp; Webseiten.
  5. Native prozedurale Programmiersprache basierend auf Pascal und leicht zu erlernen.
  6. Hervorragendes Werkzeug für kleine bis mittlere Abteilungen.
  7. Die neueste Version akzeptiert einen Teil der SQL-Befehle und den Zugriff auf die ursprünglichen Daten, so dass der Rückwärtskompatibilitätsdatensatz sehr gut war.
  8. Sicherheit ist EASY in 4D.
  9. Sie können Lösungen zur Bereitstellung auf verschiedene Arten erstellen und sind nicht darauf beschränkt, ob MS Access installiert ist oder nicht.

Nachteile:

  1. Schnittstelle & amp; Code ist eng mit der Daten-Engine verbunden, was zu einer begrenzten Verwendung von Abstraktion und "Black-Box" -Codierung führen kann, wenn Sie es nicht zum Ziel Ihrer Entwicklung machen.
  2. Kompiliert zu einer monolithischen Strukturdatei, die den Neustart für einzelne Fixes erzwingt.
  3. Sprache ist immer noch nur prozedural - was es objektorientierten Programmierern schwerer macht, sie zu akzeptieren. Jede Methode benötigt eine separate "Datei" in 4D, so dass Sie nicht mehr als eine Funktion oder Prozedur in eine einzige Routine einfügen können - es wird einige Gewöhnung brauchen.
  4. Während das Unternehmen in einem guten Zustand zu sein scheint, wächst und entwickelt es sich einfach nie, da es seinen Zustand für sich behält.
  5. Das Unternehmen hat sich nie wirklich vermarktet - auf seine Entwicklerbasis vertraut, um das Wort zu verbreiten und das Produkt durch Standortbereitstellungen und Produkt-Upgrades wachsen zu lassen. Die Website ist eindeutig nur für Entwickler nützlich, die das Produkt bereits verwenden - es schafft einfach keine neuen Nutzer.
  6. Produkt-Upgrades scheinen sich immer darauf zu konzentrieren, wie das Tool besser für die ENTWICKLER als für die KUNDEN dieser Entwickler ist.
  7. In SQL fehlen Sichten, zusammengesetzte Indizes und andere gängige SQL-Funktionen.
  8. Wenn ein Benutzer einen Bericht bestimmter Datenspalten anfordert, muss ich oft noch ein anderes Programm schreiben, nur um diese spezifischen Daten bereitzustellen - ich kann nicht immer nur die Daten abfragen und eine Textdatei erzeugen.
  9. Behandelt keine neuen Betriebssystemversionen mit der Leichtigkeit von Webbrowser-basierten Anwendungen. Die ältere Version ist unter Mac OS 10.6 defekt, und die neueste Version benötigt das neueste Mac OS 10.6. Unter Windows 7 ist noch keine Version zertifiziert.

Ich war fast ein Jahr beim Lernen von ASP.NET und ein paar Wochen bei Ruby on Rails. Während SQL-Datenspeicher EASY sind, ist die Benutzeroberfläche HARD - aber es lohnt sich, wenn Ihre Anwendung noch immer über OS-Upgrades funktioniert. Sie können immer einen älteren Browser verwenden, wenn die neueste Version etwas kaputt macht.

Ich würde empfehlen, dass Sie beide in Betracht ziehen, abhängig davon, wie viel Geld Sie für die Umsetzung des Projekts zur Verfügung haben - Rails ist der günstigere der beiden. Dann kann JEDES System mit einem Webbrowser auf die Daten zugreifen, und Sie können die Schnittstellenseiten im laufenden Betrieb nach Bedarf reparieren, anstatt das gesamte System für ein einziges, einfaches Update ein paar Minuten herunterzufahren. Diese Fähigkeiten könnten in der Zukunft marktfähiger sein.

    
Mark Smith 31.12.2009, 14:40
quelle
3

Es ist schwierig, eine relevante Liste von Vor- und Nachteilen ohne Kontext zu erstellen.

Mein Rat wäre folgender: Wenn Sie sich für eine proprietäre Datenbank entscheiden, stellen Sie sicher, dass diese Entscheidung auf starken Fakten basiert und nicht nur auf einem technischen Interesse für ein exotisches Werkzeug. Stellen Sie die Vorteile für die Verwendung der proprietären Datenbank und die Vorteile einer nicht proprietären Lösung in den Vordergrund.

Die Antwort unterscheidet sich von System zu System.

Voraussetzung ist, dass Ihr System gut identifiziert ist, mit einem klaren Umfang, einer recht vorhersehbaren Entwicklung, so dass die Ergebnisse Ihrer Analyse robust sind. Wenn Ihre proprietäre Lösung dann einen echten Vorteil für Ihr System bringt, dass Sie mit der Unterstützung zufrieden sind und Sie sich die Gesamtkosten leisten können, sollten Sie ein guter Kandidat für die proprietäre Lösung sein.

    
Chris 04.03.2010 21:12
quelle
2

Ich werde nur eine Sache sagen .. Beobachten Sie die "tatsächlichen" Kosten Ihrer Entscheidung .. Die meisten proprietären Datenbanksysteme sind nur Windows .. oder manchmal nur Mac / Windows.

Dies bedeutet, dass Sie neben dem Bezahlen von ziemlich viel Geld für das Datenbanksystem auch eine gute Menge an Geld auf einem Server-Betriebssystem bezahlen müssen, um es auszuführen ...

Vergleichen Sie auch das Datenbanksystem mit aktuellen Open-Source-Lösungen. Ist es das wirklich wert? Nach dem Umzug von Microsoft Sql Server (die eine kostenlose Ausgabe hat, aber trotzdem) zu PostgreSQL wurde ich weggeblasen, dass die Leute so viel für SQL Server zahlen .. Ich meine, Postgres zu mir ist viel sauberer, und das meiste funktioniert genau wie Sie es erwarten würden (im Gegensatz zu bestimmten SQL-Server-Syntaxen) und dass es mehr Funktionen eingebaut hat (Programmierung gespeicherter Prozeduren in Ruby)?

Vergleichen Sie also im Grunde genommen das proprietäre mit der Open-Source-Software und entscheiden Sie, welches Paket Sie für die Gesamtpreisgestaltung (einschließlich Betriebssystem) und den Funktionsumfang verwenden möchten.

    
Earlz 31.12.2009 15:17
quelle
1
  • Pro auf jede DB auf Null setzen: es hat gute nicht-portable Funktionen, die Ihnen helfen, Dinge zu erledigen
  • Con des Einschießens auf einen beliebigen DB: manchmal ist ein anderer DB geeignet (z. B. Ausführen Ihrer Tests mit In-Memory-SQLite-Instanzen), aber diese Option ist jetzt geschlossen
  • Con einer proprietären kommerziellen Datenbank: Wenn Sie viele Instanzen benötigen, können Sie die Lizenzkosten töten
orip 23.09.2009 06:43
quelle
1

Betrachten Sie die folgenden Fragen:

  • Wie einfach (oder schwierig) ist es, Änderungen in der Wartung vorzunehmen? Anwendungen werden wahrscheinlich viel mehr Zeit in Wartung investieren als in der Entwicklung. Wenn Änderungen schwierig sind, sind langfristige Schmerzen garantiert.
  • Was ist die Qualität der Unterstützung? Ein System, das gut dokumentiert, proprietär oder anderweitig ist, wird einfacher zu handhaben sein.
  • Wie groß (oder klein) ist die Benutzergemeinschaft? Systeme mit größeren Benutzergemeinschaften bedeuten, dass mehr Menschen Hilfe benötigen, wenn etwas schief geht.
  • Wie robust sind die Import- / Exportfähigkeiten dieses proprietären Datenbanksystems?

Ich fand den letzten Punkt besonders nützlich bei meinem ersten Vollzeitjob. Unser Kunde verwendete CA-Ingres, und niemand in der Firma wusste es gut genug, um Abfragen zu schreiben, um die Daten zu validieren. Also kam ich auf die Idee, die Daten von Ingres zu exportieren und sie in MS SQL Server zu importieren (was ich von einem kurzen Abstecher bei Sybase Professional Services wusste), damit wir dort unsere Validierungsabfragen schreiben konnten. Wenn es wirklich schwer gewesen wäre, Daten von Ingres zu exportieren, wäre meine Idee keine Option gewesen.

    
Scott Lawrence 23.09.2009 21:18
quelle
1

Von der 4D-Webseite entnehme ich, dass wir uns eine vollständige Entwicklungs- und Implementierungsumgebung anschauen, keine eigenständige Datenbank als solche. Also die Alternativen, die Sie betrachten könnten, gehören Dinge wie Django, Ruby-on-Rails, Winterschlaf und andere. Die eigentliche Frage ist natürlich, ob das proprietäre System Ihnen genug Geld sparen kann, um die Produktlebensdauer zu rechtfertigen, um die Kosten des Produkts zu rechtfertigen. Und das hängt von der Art der verfügbaren Humanressourcen ab.

    
Esben Mose Hansen 28.09.2009 08:26
quelle
1

4D ist eine gute Option für vertikale Anwendungen. Ich habe für eine Firma gearbeitet, die 4D verwendet hat, um eine Krankenakten- und Abrechnungsanwendung für Allgemeinmediziner und Spezialisten zu erstellen. Die schnellen Design- und Deployment-Funktionen von 4D ermöglichten es der Anwendung, sich schnell mit den Marktanforderungen und gesetzlichen Änderungen an den Speicher für medizinische Aufzeichnungen zu bewegen. Die Umgebung selbst war nicht auf dem neuesten Stand, aber integriert, plattformübergreifend und sehr produktiv.

Wenn Sie in einen Markt mit hohem Anbieter-Lock-in und einer hohen Eintrittsbarriere einsteigen, dann halte ich proprietäre Entwicklungsumgebungen für eine gute Option.

    
John 28.09.2009 12:56
quelle
1

Zu verschiedenen Zeitpunkten meiner Karriere habe ich FileMaker Pro, FoxPro, 4D und einige andere kommerzielle Produkte sehr gut genutzt. Jetzt verwende ich hauptsächlich PHP / MySQL und habe nicht die neuesten Versionen der Produkte verwendet.

Ich habe FileMaker schon immer gemocht, weil die meisten Leute, die einen Computer benutzen können, FileMaker aufheben und ihre eigenen Systeme entwerfen können. Sie müssen weder Programmieren noch Datenbankdesign kennen. Sie können FileMaker aber auch "programmieren", ein Web-Front-End erstellen oder bei Bedarf weitere ausgefeiltere Setups ausführen. Oft wurde mir ein System übergeben, das in FileMaker von einer nicht-technischen Person erstellt wurde, die zu einem vollwertigen Datenverwaltungssystem gemacht werden musste. Der gute Teil war, dass alle "Spezifikationen" und der Datenfluss bereits in einem System entworfen wurden. Der Prototyp wurde bereits erstellt!

4D und FoxPro Ich fand immer eine gewisse Menge an zusätzlicher Programmierung und / oder Datenbankwissen, um wirklich etwas damit zu tun. 4D & amp; FileMaker sind wirklich komplette in sich geschlossene Systeme, nicht nur Datenbanksysteme. Obwohl sie alle die Möglichkeit haben, sich in andere Backend-Datenbanksysteme (d. H. MySQL, Oracle) einzuklinken, ist das nicht ihre Stärke.

Auf der anderen Seite können komplexere, dynamische Systeme in 4D und Filemaker schwierig sein, da alles eng gekoppelt ist. Aufgrund ihrer Kosten möchten Sie wirklich mehrere Systeme mit ihnen erstellen. Was bedeutet, dass Sie wirklich "kaufen" müssen, um Ihr Geld wert zu sein.

    
Brent Baisley 28.09.2009 13:25
quelle
1

Das Schlüsselkonzept ist immer die Einhaltung von Standards: Wenn Sie beabsichtigen, die benutzerdefinierten und / oder speziell entwickelten Funktionen von 4D zu verwenden (aber die Diskussion könnte viel allgemeiner sein und jedes andere freie oder kommerzielle Tool in der freien Natur abdecken), benutze es einfach und nimm deinen Vorteil.

Nicht überraschend, das ist der Grund, warum riesige DB-Systeme wie Oracle oder DB2 von IBM in der Vergangenheit für bestimmte Geschäftsbereiche, wie z. B. kommerzielle Transaktionen, akzeptiert wurden.

Der andere Hauptgrund, eine sehr geschlossene Lösung anzunehmen, ist die Legacy-Unterstützung. Eines der von Ihnen zitierten Produkte (Pervasive SQL) fungierte Ende der 90er Jahre als No-Effort-Port für BTrieve-basierte Anwendungen und wurde dank der großen BTrieve-Community auf der ganzen Welt populär.

Schließlich sollten Sie nicht zuletzt die TCO (Total Cost of Ownership) nicht nur in Bezug auf den Lizenzpreis (Einzelsitz, Netzwerkumgebung, Standortlizenzen usw.) bewerten, sondern auch in Bezug auf den technischen Support, Updates und Verfügbarkeit für Ihre Plattform. Viele Geschäftseinheiten, die ich kenne, waren verpflichtet, ihr Basisbetriebssystem für DB-bezogene Probleme zu ändern.

Tipp: Fügen Sie einen Bonus für eine benutzerdefinierte Lösung hinzu, die sich für die Verwendung in virtualisierten Umgebungen bewährt oder unterstützt, wenn Sie nicht nach extremen Leistungen suchen. Es wird mehr als einen Kopfschmerz für Ihren DB-Manager sparen.

In allen anderen Fällen sollten Sie sich auf opsource / freesoftware DBs verlassen. MySql und Postgres für große Projekte, SQLite für einzelne Anwendungs-Persistenzebene. Ziemlich Standard und sehr gute (Community) Unterstützung. Guter Wert für keinen Preis.

    
ZZambia 28.09.2009 13:26
quelle
-1

Ich habe keine Erfahrungen mit den von Ihnen aufgeführten proprietären Datenbankprodukten: 4D, Pervasive, FilemakerPro.

Ich würde gerne wissen, was diese Produkte für Sie attraktiver machen als die Open-Source-Alternativen, die Sie aufgelistet haben: MySQL und PostgreSQL.

Ich würde mich dafür interessieren, was diese für Sie attraktiver macht als die viel populäreren proprietären Alternativen: Oracle, SQL Server, DB2, etc.

Ohne Ihnen genauere Informationen zu geben, ist es schwierig, Sie zu beraten.

Ich persönlich fühle mich sicherer bei der Verwendung einer weit verbreiteten Open-Source-Lösung als bei einer eng verwandten Closed-Source-Lösung. Je mehr es verwendet wird, desto besser wird es für den Kampfeinsatz sein. Je offener, desto mehr Kontrolle über mein eigenes Schicksal habe ich, falls ich auf einen Fehler stoße.

Ich habe Fehler bei Open-Source-Projekten gemeldet und eine schnelle Lösung erhalten. Ich habe Fehler bei Unternehmen gemeldet, die gewinnorientierte proprietäre Software herstellen und nichts bekommen haben.

    
Corey Trager 27.09.2009 03:31
quelle

Tags und Links