Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiResearch

Delphi лидирует с WPF и Electron в области аппаратного и периферийного доступа низкого уровня

wp1_hdaccess

Как работают Delphi, WPF .NET Framework и Electron по сравнению друг с другом и как лучше всего провести объективное сравнение? Embarcadero заказал технический документ для исследования различий между Delphi, WPF .NET Framework и Electron для создания настольных приложений Windows. Тестовое приложение — клон калькулятора Windows 10 — было воссоздано в каждой структуре тремя волонтерами Delphi Most Valuable Professionals (MVP), одним экспертом-фрилансером WPF-разработчиком и одним экспертом-фрилансером Electron. В этом сообщении блога мы собираемся изучить метрику доступа к оборудованию, которая является частью сравнения гибкости, используемого в техническом документе. Само приложение-калькулятор не использует аппаратный доступ в каждой платформе, поэтому сравнение проводится между самими платформами.

calc

Доступ к аппаратному обеспечению для конкретного устройства

Облегчает ли структура доступ к данным с датчиков устройства (GPS, микрофон, акселерометры, камера и т. Д.) И физическое воздействие через аналогичные устройства? Структуры, которые «открывают двери» множеству датчиков и исполнительных механизмов, доступных сегодня на интеллектуальных устройствах, создают возможности для бизнеса и новаторские решения проблем потребителей.

Стандартные библиотеки Delphi обеспечивают легкий доступ практически ко всем доступным типам баз данных и позволяют разработчикам получать доступ к функциям операционной системы на каждой платформе, а также взаимодействовать с устройствами ввода-вывода и аппаратными датчиками. WPF может получить доступ к функциям операционной системы Windows и устройствам ввода-вывода через библиотеки .NET, но с управляемым кодом после компиляции, а не с собственным кодом. Electron предоставляет аппаратный доступ из своего процесса node.js и может получить доступ к некоторым, но не всем функциям операционной системы через библиотеки node.js.

После проверки всех трех фреймворков, Delphi удерживает лидирующую позицию в категории гибкости благодаря гибкому и автоматизированному развертыванию на всех основных платформах, масштабируемости на всех уровнях разработки и системе визуального дизайна. WPF с .NET Framework конкурентоспособен на платформе Windows, но не может конкурировать на macOS или мобильных устройствах. Наконец, у Electron наименьшее количество барьеров для входа и наибольшее количество инструментов разработки, но он в значительной степени полагается на развертывание вручную, не может напрямую ориентироваться на мобильные устройства по умолчанию, наименее масштабируем и не имеет такого же доступа к оборудованию и операционной системе, что и его конкуренты.

wp1_hardware_access-3822451-2

Давайте посмотрим на каждый фреймворк.

Аппаратный доступ Delphi

Фреймворк Delphi FMX включает библиотеки, которые позволяют взаимодействовать с периферийными датчиками и компонентами устройства независимо от платформы. Эти библиотеки компилируются в собственный код. Delphi RTL, прямой доступ к памяти и другие низкоуровневые функции предоставляют ему полный доступ к аппаратной платформе, включая встроенный ассемблерный код на настольных платформах x86.

Встроенная сборка в Delphi

Вот два примера с условной компиляцией и встроенной сборкой (между тегами asm и end;).

Драйвер режима ядра

В Delphi можно создавать драйверы режима ядра для Windows. Драйверы режима ядра определяются Microsoft как «драйверы режима ядра выполняются в режиме ядра как часть исполнительной системы, которая состоит из компонентов операционной системы режима ядра, которые управляют вводом-выводом, памятью Plug and Play, процессами и потоками, безопасностью и скоро. Драйверы режима ядра обычно многоуровневые. Как правило, драйверы более высокого уровня обычно получают данные от приложений, фильтруют данные и передают их драйверу более низкого уровня, который поддерживает функциональность устройства ».

https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/

Инструментарий управления Windows (WMI)

Delphi предлагает легкий доступ к WMI, и есть проект с открытым исходным кодом, который быстро сгенерирует нужный вам код. Согласно Microsoft WMI определяется как «инфраструктура для управления данными и операций в операционных системах на базе Windows».

https://docs.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page

Bluetooth

RTL предоставляет компонент  TBluetooth , который дает вам доступ ко всем классическим функциям Bluetooth RTL. Перетащите  TBluetooth компонент из  палитры инструментов  на форму или модуль данных вашего приложения.

Аппаратные датчики

Датчик измеряет физическую величину и преобразует ее в сигнал, который может считывать приложение. System.Sensors.Components  предоставляет вашим приложениям компоненты, позволяющие получать информацию от различных типов аппаратных датчиков.


TBiometricSensor
TBiometricSensor is a wrapper for TCustomBiometricSensor.
TElectricalSensor TElectricalSensor is a wrapper for TCustomElectricalSensor.
TEnvironmentalSensor Wrapper for TCustomEnvironmentalSensor.
TLightSensor Wrapper for TCustomLightSensor.
TLocationSensor TLocationSensor is a wrapper for TCustomLocationSensor.
TMechanicalSensor Wrapper for TCustomMechanicalSensor.
TMotionSensor Wrapper for TCustomMotionSensor.
TOrientationSensor Wrapper for TCustomOrientationSensor.
TScannerSensor Wrapper for TCustomScannerSensor.

Доступ к камере

В этом примере проекта показано, как использовать и управлять камерой устройства. Пример демонстрирует использование  TCameraComponent .

Доступ к оборудованию WPF .NET Framework

WPF .NET Framework может получить доступ к многочисленным библиотекам Windows для датчиков, устройств ввода-вывода и других периферийных устройств для ПК. Доступ WPF к оборудованию осуществляется через управляемый код, а не через собственный код, но есть собственный (неуправляемый) интерфейс через P / Invoke. Этот мост ограничивает некоторый доступ.

Доступ к электронному оборудованию

Electron может получить доступ к функциям операционной системы и аппаратной периферии через библиотеки node.js. Эта кроссплатформенная база Chromium обеспечивает доступ к высокому уровню оборудования на всех основных настольных платформах. Доступ Electron к оборудованию осуществляется через управляемый код, а не через собственный код, и он может получить доступ только к функциям, предоставляемым через библиотеки.

Изучите все показатели в техническом документе «Обнаружение лучшей среды разработки с помощью сравнительного анализа»:

Загрузите официальный документ Free Delphi vs. WPF vs. Electron для настольных ПК с Windows

RAD Studio 13.2 Florence Now Available! Kai 1.1.1 Now Available! What's Coming in RAD Studio 13.2 Florence

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Об авторе

Директор Delphi Consulting компании GDK Software USA. Множество патентов, связанных с программным обеспечением, в том числе разблокировка с помощью смахивания и графического ключа и поисковые системы. Первые серебряные и золотые значки Delphi на переполнение стека Бывший адвокат разработчиков Embarcadero Technologies. Давний поклонник программирования, особенно Delphi. Автор, подкастер/ютубер, импровизатор, оратор, отец и друг.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES