Wie verhalten sich Delphi, WPF .NET Framework und Electron im Vergleich zueinander und wie lässt sich ein objektiver Vergleich am besten durchführen? Embarcadero gab ein Whitepaper in Auftrag , um die Unterschiede zwischen Delphi, WPF .NET Framework und Electron beim Erstellen von Windows-Desktopanwendungen zu untersuchen. Die Benchmark-Anwendung – ein Windows 10 Calculator-Klon – wurde in jedem Framework von drei freiwilligen Mitarbeitern von Delphi Most Valuable Professionals (MVPs), einem freiberuflichen WPF-Experten und einem freiberuflichen Electron-Entwickler neu erstellt. In diesem Blog-Beitrag werden wir die Datenbankzugriffsmetrik untersuchen, die Teil des im Whitepaper verwendeten Flexibilitätsvergleichs ist. Der Taschenrechner selbst verwendet keine Datenbank, daher beziehen sich die Bewertungen hier im Allgemeinen auf die Frameworks selbst.
Table of Contents
Datenbankzugriff
Enthält das Framework native Bibliotheken, die den Datenbankzugriff unterstützen? Die Datenpersistenz ist für viele Anwendungen von entscheidender Bedeutung und muss benutzerfreundlich und in jedes gute Entwicklungsframework integriert sein.
Der Hauptvorteil von Delphi gegenüber WPF und Electron besteht darin, dass das FMX-Framework einen Quellcode als Binärdatei für alle wichtigen Desktop- oder Mobilplattformen bereitstellen kann, wodurch die Reichweite eines Unternehmens für Kunden maximiert und die Duplizierung von Code sowie die Probleme bei Wartung und Upgrade minimiert werden. Es kann Projekte jeder Größe unterstützen, von Logik-Controllern für die industrielle Automatisierung bis hin zur weltweiten Bestandsverwaltung, und für jede Ebene vom datenbankintensiven Back-End bis zur GUI-Client-Seite einer Anwendung entwickelt werden. Schließlich bieten die Standardbibliotheken von Delphi einfachen Zugriff auf nahezu alle verfügbaren Datenbanktypen und ermöglichen Entwicklern den Zugriff auf Betriebssystemfunktionen auf jeder Plattform sowie die Interaktion mit E / A-Geräten und Hardwaresensoren.
WPF mit .NET Framework zielt direkt auf Windows-Computer ab. Das Framework ist in erster Linie auf clientseitige Desktopanwendungen ausgerichtet, kann jedoch Geschäftslogik in C # für Middle-Tier- oder Back-End-Funktionen integrieren und auf das ADO .NET Entity Framework für Datenbanken zugreifen. WPF kann über .NET-Bibliotheken auf Windows-Betriebssystemfunktionen und E / A-Geräte zugreifen, jedoch mit verwaltetem Code nach der Kompilierung anstelle von nativem Code.
Electron ist ein Open-Source-Framework, das über seine Chromium-Browser-Basis auf die drei wichtigsten Desktop-Betriebssysteme abzielt. Es konzentriert sich auf clientseitige Anwendungen, die normalerweise webzentriert sind, verwendet jedoch node.js für Middle-Tier- und Back-End-Dienste. Electron bietet Hardwarezugriff über den Prozess node.js und kann über die Bibliotheken node.js auf einige, aber nicht alle Betriebssystemfunktionen zugreifen.
Werfen wir einen Blick auf jedes Framework.
Delphi
Delphi wird mit mehreren Datenbankbibliotheken geliefert, die mit nahezu jedem Datenbanktyp auf dem Markt verbunden sind. Datenbankzugriff, Abfragen und Datenanzeige werden reibungslos über Komponenten integriert, auf die in der kostenlosen Community Edition und auf der ersten kommerziellen Lizenzstufe zugegriffen werden kann. Während Delphi und WPF im Whitepaper ähnlich abschnitten, wird Delphi mit einer stärker integrierten Toolchain und besser unterstützten Datenbanken ausgeliefert.
FireDAC ist eine universelle Datenzugriffsbibliothek zum Entwickeln von Anwendungen für mehrere Geräte, die mit Unternehmensdatenbanken verbunden sind. Mit seiner leistungsstarken universellen Architektur ermöglicht FireDAC den nativen direkten Hochgeschwindigkeitszugriff von Delphi und C ++ Builder auf InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix und DataSnap und mehr, einschließlich der NoSQL-Datenbank MongoDB.
FireDAC ist eine leistungsstarke und dennoch benutzerfreundliche Zugriffsebene, die den Datenzugriff unterstützt, abstrahiert und vereinfacht und alle Funktionen bietet, die zum Erstellen realer Hochlastanwendungen erforderlich sind. FireDAC bietet eine gemeinsame API für den Zugriff auf verschiedene Datenbank-Backends, ohne den Zugriff auf eindeutige datenbankspezifische Funktionen aufzugeben und ohne die Leistung zu beeinträchtigen. Verwenden Sie FireDAC in Android-, iOS-, Windows- und Mac OS X-Anwendungen, die Sie für PCs, Tablets und Smartphones entwickeln.
Unten finden Sie eine Liste aller von RAD Studio unterstützten FireDAC-Datenbanken. Die Liste enthält die minimale und maximale Version, die in jeder Version von RAD Studio unterstützt wird.
Database | FireDAC driver ID | Seattle (10.0) | Berlin (10.1) | Tokyo (10.2) | Rio (10.3) | Sydney (10.4) |
---|---|---|---|---|---|---|
SAP Advantage Database | ADS | v 8.0 – 10.1 | v 8.0- 12.0 | v 8.0 – 12.0 | v 8.0 – 12.0 | v 8.0 – 12.0 |
SAP SQL Anywhere | ASA | v 5.0 – 12.0 | v 5.0 – 16.0 | v 5.0 – 16.0 | v 5.0 – 16.0 | v 5.0 – 16.0 |
IBM DB2 Server | DB2 | v 8.2 – 9.7 | v 8.2 – 9.7 | v 8.2 – 9.7 | v 8.2 – 9.7 | v 8.2 – 9.7 |
Firebird | FB | v 1.5 – 2.5 | v 1.5 – 2.5 | v 1.5 – 2.5 | v 1.5 – 3.0 | v 1.5 – 3.0 |
InterBase | IB | v 6.0 – XE7 | v 6.0 – XE7 | v 6.0 – 2017 | v 6.0 – 2017 | v 6.0 – 2020 |
IBM Informix | Infx | v 8.0 – 11.7 | v 8.0 – 11.7 | v 8.0 – 12.1 | v 8.0 – 12.1 | v 8.0 – 12.1 |
MongoDB | Mongo | v 3.0 | v 3.0 | v 3.0 | v 3.0 | v 3.0 |
Microsoft Access | MSAcc | 95 – 2010 | 95 – 2010 | 95 – 2015 | 95 – 2015 | 95 – 2015 |
Microsoft SQL Server | MSSQL | 2000 – 2008 | 2000 – 2008 | 2000 – 2016 | 2000 – 2017 | 2000 – 2017 |
MySQL Server | MySQL | v 3.21 – 5.5 | v 3.21 – 5.6 | v 3.21 – 5.7 | v 3.21 – 6.x | v 3.21 – 8.0 |
MariaDB | MySQL | n/a | n/a | v 5.5 – 10.1 | v 5.5 – 10.3 | v 5.5 – 10.3 |
Oracle Server | Ora | v 8.0 – 11.2 | v 8.0 – 12.1 | v 8.0 – 12.1 | v 8.0 – 12.1 | v 8.0 – 12.1 |
PostgreSQL | PG | v 7.4 – 9.1 | v 7.4 – 9.5 | v 7.4 – 9.5 | v 7.4 – 10.0 | v 7.4 – 12.0 |
PostgreSQL Enterprise Server | PG | v 9.2 | v 9.2 | v 9.2 | v 9.2 | v 9.2 |
SQLite | SQLite | v 3.0 – 3.8.7 | v 3.0 – 3.9.2 | v 3.0 – 3.9.2 | v 3.0 – 3.23.1 | v 3.0 – 3.31.1 |
Teradata | TData | v 13.0 – 15.0 | v 13.0 – 15.0 | v 13.0 – 15.0 | v 13.0 – 15.0 | v 13.0 – 15.0 |
Generic ODBC sources | ODBC | v 2.0 – 3.0 | v 2.0 – 3.8 | v 2.0 – 3.8 | v 2.0 – 3.8 | v 2.0 – 3.8 |
Zusätzliche Datenbankverbindungen, die mit dem FireDAC ODBC Bridge-Treiber getestet wurden:
Database | Version |
---|---|
SAP Adaptive Server Enterprise | v 15.0 |
IBM DB2 AS/400 | n/a |
QuickBooks | v 16.0 |
InterSystems Cache | 2014 |
Pervasive SQL | v 10.0 |
DBase | n/a |
Excel | n/a |
MicroFocus Cobol | n/a |
Ingres Database | n/a |
SAP MaxDB | n/a |
Clarion | n/a |
SolidDB | n/a |
Unify SQLBase | n/a |
Zusätzlich zu FireDAC verfügen Delphi und RAD Studio über ein umfangreiches Ökosystem von Drittanbietern, das viele verschiedene kommerzielle und Open-Source-Datenbankzugriffslösungen bietet. Sie können sogar über Lösungen von Drittanbietern wie CrossTalk von ATOZED Software auf .NET-Bibliotheken von Delphi und C ++ zugreifen .
WPF .NET Framework
WPF wird mit Zugriff auf Datenbankbibliotheken geliefert, einschließlich ADO .NET Entity Framework, die Datenbankverbindungen, Abfragen und Einträge über C # -Code ermöglichen. Laut Microsoft .NET Framework werden nur folgende Datenanbieter ( Quelle ) ausgeliefert:
- .NET Framework-Datenprovider für SQL Server
- .NET Framework-Datenprovider für OLE DB
- .NET Framework-Datenprovider für ODBC
- .NET Framework Data Provider für Oracle
- .NET Framework-Datenprovider für SQL Server Compact 4.0
WPF .NET Framework erhielt im Whitepaper für den Datenbankzugriff aufgrund der ODBC-Unterstützung eine hohe Punktzahl. Andere Datenanbieter sind von Dritten erhältlich. Es ist jedoch Zeit erforderlich, um jede benötigte Datenbankbibliothek aufzuspüren, zu installieren und auf dem neuesten Stand zu halten.
Elektron
Electron enthält bei der Erstinstallation keine native Datenbankzugriffsbibliothek. Daher handelt es sich nicht um eine einzelne Paketinstallation, die alle für den Zugriff auf Datenbanken erforderlichen Funktionen enthält. Es kann über NodeJS auf Datenbanken zugreifen, und es stehen mehrere Open Source-Bibliotheken zur Verfügung, um Server- und serverlose Datenbanken, einschließlich JavaScript-Implementierungen, zu nutzen. Es ist jedoch Zeit erforderlich, um jede benötigte Datenbankbibliothek aufzuspüren, zu installieren und auf dem neuesten Stand zu halten.
Hier ist ein Beispiel für den Aufwand, der erforderlich ist, um eine Verbindung zu einer Oracle-Datenbank von NodeJS zur Verwendung in Electron herzustellen:
https://docs.oracle.com/de/cloud/paas/exadata-express-cloud/csdbp/connect-node-js.html
Datenbankkonnektivitätspakete sind auch über einen Paketmanager verfügbar, wie hier dargestellt:
https://www.npmjs.com/package/mssql
Alle drei Frameworks haben zumindest eine Möglichkeit, auf die meisten Datenbanken zuzugreifen. Delphi und RAD Studio werden jedoch mit den am meisten unterstützten Datenbanken aller drei Frameworks ausgeliefert. Da diese Datenbankzugriffskomponenten mit Delphi geliefert werden, ist keine zusätzliche Zeit erforderlich, um Bibliotheken von Drittanbietern aufzuspüren und zu warten. Delphi verfügt über ein umfangreiches Ökosystem an Datenbankzugriffskomponenten von Drittanbietern, deren Verwendung optional ist. WPF .NET Framework ist ein Legacy-FrameworkLaut Microsoft und nur mit rund 5 Datenanbietern ausgeliefert (obwohl Sie fairerweise über ODBC auf viele Datenbanken zugreifen können). Electron wird nicht mit Datenbankzugriffskomponenten geliefert, diese sind jedoch über das NodeJS-Ökosystem leicht verfügbar und erfordern zusätzlichen Aufwand bei der Suche und Wartung, wodurch die Lösung spröde wird. Insgesamt bietet Delphi eine flexiblere und integrierte Toolchain mit mehr Datenbanken, die sofort unterstützt werden als die beiden anderen Frameworks.
Entdecken Sie alle Metriken im Whitepaper „Ermitteln des besten Entwickler-Frameworks durch Benchmarking“:
Laden Sie das Whitepaper Delphi vs. WPF vs. Electron für Windows-Desktops herunter
Zusätzliche Lektüre…
Blitzschnelle App Store-Bereitstellung in Delphi Trounces WPF und Electron
Delphi bietet einen massiven Produktivitätsschub gegenüber WPF und Electron
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition