Как работают Delphi, WPF .NET Framework и Electron по сравнению друг с другом и как лучше всего провести объективное сравнение? Embarcadero заказал технический документ для исследования различий между Delphi, WPF .NET Framework и Electron для создания настольных приложений Windows. Тестовое приложение — клон калькулятора Windows 10 — было воссоздано в каждой структуре тремя волонтерами Delphi Most Valuable Professionals (MVP), одним экспертом-фрилансером WPF-разработчиком и одним экспертом-фрилансером Electron. В этом сообщении блога мы собираемся изучить метрику доступа к базе данных, которая является частью сравнения гибкости, используемого в техническом документе. Сама сборка калькулятора не использует базу данных, поэтому оценки здесь, как правило, относятся к самим фреймворкам.
Table of Contents
Доступ к базе данных
Содержит ли фреймворк собственные библиотеки, поддерживающие доступ к базе данных? Сохранение данных имеет решающее значение для многих приложений и должно быть удобным для пользователя и интегрированным с любой хорошей средой разработки.
Основное преимущество Delphi перед WPF и Electron заключается в том, что его структура FMX может развертывать одну часть исходного кода в виде двоичного кода на любой основной настольной или мобильной платформе, максимально увеличивая доступ бизнеса к клиентам и сводя к минимуму дублирование кода и проблемы с обслуживанием / обновлением. Он может поддерживать проекты любого размера, от логических контроллеров для промышленной автоматизации до управления запасами по всему миру, и разрабатываться для каждого уровня — от серверной части с тяжелыми базами данных до клиентской части приложения с графическим интерфейсом. Наконец, стандартные библиотеки Delphi обеспечивают легкий доступ почти ко всем доступным типам баз данных и позволяют разработчикам получать доступ к функциям операционной системы на каждой платформе, а также взаимодействовать с устройствами ввода-вывода и аппаратными датчиками.
WPF с .NET Framework напрямую нацелен на компьютеры Windows. Платформа в первую очередь ориентирована на клиентские настольные приложения, но может включать бизнес-логику на C # для функций среднего или внутреннего уровня и доступа к ADO .NET Entity Framework для баз данных. WPF может получить доступ к функциям операционной системы Windows и устройствам ввода-вывода через библиотеки .NET, но с управляемым кодом после компиляции, а не с собственным кодом.
Electron — это платформа с открытым исходным кодом, нацеленная на три основные настольные операционные системы через базу браузера Chromium. Он ориентирован на клиентские приложения, обычно веб-ориентированные, но использует node.js для промежуточных и внутренних служб. Electron предоставляет аппаратный доступ из своего процесса node.js и может получить доступ к некоторым, но не всем функциям операционной системы через библиотеки node.js.
Давайте посмотрим на каждый фреймворк.
Delphi
Delphi поставляется с несколькими библиотеками баз данных, которые подключаются практически ко всем типам баз данных на рынке. Доступ к базе данных, запросы и отображение данных легко интегрируются с помощью компонентов, доступных в бесплатной версии Community Edition и на первом уровне коммерческой лицензии. В то время как Delphi и WPF получили одинаковые оценки в техническом документе, Delphi поставляется с более интегрированной цепочкой инструментов и большим количеством поддерживаемых баз данных.
FireDAC — это универсальная библиотека доступа к данным для разработки приложений для нескольких устройств, подключенных к корпоративным базам данных. Благодаря своей мощной универсальной архитектуре FireDAC обеспечивает собственный высокоскоростной прямой доступ из Delphi и C ++ Builder к InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap и многое другое, включая базу данных NoSQL MongoDB.
FireDAC — это мощный, но простой в использовании уровень доступа, который поддерживает, абстрагирует и упрощает доступ к данным, предоставляя все функции, необходимые для создания реальных приложений с высокой нагрузкой. FireDAC предоставляет общий API для доступа к различным серверным компонентам базы данных, не отказываясь от доступа к уникальным функциям, специфичным для базы данных, и без ущерба для производительности. Используйте FireDAC в приложениях Android, iOS, Windows и Mac OS X, которые вы разрабатываете для ПК, планшетов и смартфонов.
Ниже вы можете найти список всех баз данных FireDAC, поддерживаемых RAD Studio. Список включает минимальную и максимальную версию, поддерживаемую каждым выпуском RAD Studio.
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 |
Дополнительные подключения к базе данных, протестированные с использованием драйвера FireDAC ODBC Bridge:
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 |
Помимо FireDAC, Delphi и RAD Studio имеют обширную стороннюю экосистему, которая предоставляет множество различных коммерческих решений для доступа к базам данных с открытым исходным кодом. Вы даже можете получить доступ к .NET-библиотекам из Delphi и C ++ с помощью сторонних решений, таких как CrossTalk от ATOZED Software .
WPF .NET Framework
WPF поставляется с доступом к библиотекам баз данных, включая ADO .NET Entity Framework, которые позволяют подключаться к базе данных, запросы и записи через код C #. Согласно Microsoft .NET Framework поставляется только со следующими поставщиками данных ( источник ):
- Поставщик данных .NET Framework для SQL Server
- Поставщик данных .NET Framework для OLE DB
- Поставщик данных .NET Framework для ODBC
- Поставщик данных .NET Framework для Oracle
- Поставщик данных .NET Framework для SQL Server Compact 4.0
Платформа WPF .NET Framework получила высокую оценку в техническом описании доступа к базе данных из-за поддержки ODBC. Другие поставщики данных доступны у третьих лиц. Однако требуется время, чтобы отследить каждую необходимую библиотеку базы данных, установить ее и поддерживать в актуальном состоянии.
Электрон
При первой установке Electron не включает в себя собственную библиотеку доступа к базе данных. Поэтому это не единичный пакет, содержащий все функции, необходимые для доступа к базам данных. Он может получать доступ к базам данных через NodeJS, и доступны несколько библиотек с открытым исходным кодом для использования серверных и бессерверных баз данных, включая реализации JavaScript. Однако требуется время, чтобы отследить каждую необходимую библиотеку базы данных, установить ее и поддерживать в актуальном состоянии.
Вот пример усилий, необходимых для подключения к базе данных Oracle из NodeJS для использования в Electron:
https://docs.oracle.com/en/cloud/paas/exadata-express-cloud/csdbp/connect-node-js.html
Пакеты подключения к базе данных также доступны через диспетчер пакетов, как показано здесь:
https://www.npmjs.com/package/mssql
У всех трех фреймворков есть хоть какой-то способ доступа к большинству баз данных. Однако Delphi и RAD Studio поставляются с большинством поддерживаемых баз данных из всех трех фреймворков. Кроме того, поскольку эти компоненты доступа к базе данных поставляются с Delphi, нет необходимости в дополнительном времени для отслеживания и поддержки сторонних библиотек. У Delphi действительно есть богатая экосистема сторонних компонентов доступа к базе данных, которые необязательно использовать. WPF .NET Framework — это устаревшая платформасогласно Microsoft и поставляется только с 5 поставщиками данных (хотя, честно говоря, вы можете получить доступ ко многим базам данных через ODBC). Electron не поставляется с какими-либо компонентами доступа к базе данных, но они легко доступны через экосистему NodeJS и требуют дополнительных усилий для поиска и поддержки, что делает решение хрупким. В целом, Delphi предоставляет более гибкий и интегрированный набор инструментов с большим количеством поддерживаемых баз данных по сравнению с двумя другими фреймворками.
Изучите все показатели в техническом документе «Обнаружение лучшей среды разработки с помощью сравнительного анализа»:
Загрузите официальный документ Free Delphi vs. WPF vs. Electron для настольных ПК с Windows
Дополнительное чтение…
Молниеносное развертывание магазина приложений в Delphi Trounces WPF и Electron
Delphi предлагает значительный прирост производительности по сравнению с WPF и Electron
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition