Ícono del sitio Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Delphi lidera WPF y Electron en hardware de bajo nivel y acceso periférico

wp1 hdaccess

¿Cómo funcionan Delphi, WPF .NET Framework y Electron en comparación entre sí, y cuál es la mejor manera de hacer una comparación objetiva? Embarcadero encargó un documento técnico para investigar las diferencias entre Delphi, WPF .NET Framework y Electron para crear aplicaciones de escritorio de Windows. La aplicación de referencia, un clon de la Calculadora de Windows 10, fue recreada en cada marco por tres voluntarios de Delphi Most Valuable Professionals (MVP), un desarrollador experto independiente de WPF y un desarrollador experto independiente Electron. En esta publicación de blog, vamos a explorar la métrica de acceso de hardware, que es parte de la comparación de flexibilidad utilizada en el documento técnico. La aplicación de la calculadora en sí no hace uso del acceso al hardware en cada marco, por lo que la comparación se realiza entre los marcos en sí.

Acceso a hardware específico del dispositivo

¿El marco facilita el acceso a los datos de los sensores del dispositivo (GPS, micrófono, acelerómetros, cámara, etc.) y la acción física a través de dispositivos similares? Los marcos que “abren las puertas” a la gran cantidad de sensores y actuadores disponibles en los dispositivos inteligentes en la actualidad crean oportunidades comerciales y soluciones novedosas para el dolor del consumidor.

Las bibliotecas estándar de Delphi brindan un fácil acceso a casi todos los tipos de bases de datos disponibles y permiten a los desarrolladores acceder a la funcionalidad del sistema operativo en cada plataforma, así como interactuar con dispositivos de E / S y sensores de hardware. WPF puede acceder a la funcionalidad del sistema operativo Windows y a los dispositivos de E / S a través de bibliotecas .NET pero con código administrado después de la compilación en lugar de código nativo. Electron proporciona acceso al hardware desde su proceso node.js y puede acceder a algunas, pero no a todas, las funciones del sistema operativo a través de las bibliotecas de node.js.

Después de revisar los tres marcos, Delphi lidera la categoría de flexibilidad debido a su implementación flexible y automatizada en todas las plataformas principales, escalabilidad a todos los niveles de desarrollo y sistema de diseño visual. WPF con .NET Framework es competitivo en la plataforma Windows, pero carece de la capacidad de competir en macOS o dispositivos móviles. Finalmente, Electron tiene la menor cantidad de barreras de entrada y la mayor cantidad de opciones de herramientas de desarrollo, pero depende en gran medida de las implementaciones manuales, no puede apuntar directamente a los dispositivos móviles de forma predeterminada, es el menos escalable y carece del mismo hardware y acceso al sistema operativo de sus competidores.

Echemos un vistazo a cada marco.

Acceso al hardware de Delphi

El marco FMX de Delphi incluye bibliotecas que permiten la interacción con los sensores y componentes periféricos de un dispositivo independientemente de la plataforma. Estas bibliotecas se compilan en código nativo. El Delphi RTL, el acceso directo a la memoria y otras características de bajo nivel le brindan acceso completo a la plataforma de hardware, incluido el código de ensamblaje en línea en las plataformas de escritorio x86.

Ensamblaje en línea en Delphi

Aquí hay dos ejemplos que presentan compilación condicional y ensamblaje en línea (entre asm y end; etiquetas).

[crayon-673fad77866ca810627355/]
[crayon-673fad77866d4636001565/]

Controlador de modo kernel

Es posible crear controladores en modo kernel para Windows en Delphi. Los controladores en modo kernel son definidos por Microsoft como “Los controladores en modo kernel se ejecutan en modo kernel como parte del ejecutivo, que consta de componentes del sistema operativo en modo kernel que administran E / S, memoria Plug and Play, procesos e hilos, seguridad y pronto. Los controladores en modo kernel suelen estar en capas. Por lo general, los controladores de nivel superior suelen recibir datos de las aplicaciones, filtrar los datos y pasarlos a un controlador de nivel inferior que admita la funcionalidad del dispositivo “.

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

Instrumental de administración de Windows (WMI)

Delphi ofrece un fácil acceso a WMI y hay un proyecto de código abierto que generará rápidamente el código que necesita. Según Microsoft, WMI se define como “es la infraestructura para la gestión de datos y operaciones en sistemas operativos basados ​​en Windows”.

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

Bluetooth

El RTL proporciona un componente,  TBluetooth , que le da acceso a todas las funciones clásicas de Bluetooth del RTL. Arrastre un  TBluetooth componente de la  paleta de herramientas  a un formulario o módulo de datos de su aplicación.

Sensores de hardware

Un sensor mide una cantidad física y la convierte en una señal que una aplicación puede leer. System.Sensors.Components  proporciona a sus aplicaciones componentes que le permiten obtener información de muchos tipos diferentes de sensores de hardware.


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.

Acceso a la cámara

Este proyecto de muestra muestra cómo usar y manipular la cámara de un dispositivo. El ejemplo demuestra el uso de  TCameraComponent .

Acceso al hardware de WPF .NET Framework

WPF .NET Framework puede acceder a numerosas bibliotecas de Windows para sensores, dispositivos de E / S y otros periféricos para PC. El acceso de WPF al hardware se realiza mediante código administrado en lugar de código nativo, pero hay una interfaz nativa (no administrada) a través de P / Invoke. Este puente limita algunos accesos.

Acceso al hardware de electrones

Electron puede acceder a las funciones del sistema operativo y los periféricos de hardware a través de las bibliotecas node.js. Su base Chromium multiplataforma facilita el acceso al hardware de alto nivel en las principales plataformas de escritorio. El acceso de Electron al hardware se realiza a través de código administrado en lugar de código nativo y solo puede acceder a funciones expuestas a través de bibliotecas.

Explore todas las métricas en el documento técnico “Descubriendo el mejor marco para desarrolladores a través de la evaluación comparativa”:

Descargue el documento técnico gratuito de Delphi vs.WPF vs.Electron para equipos de escritorio con Windows

Salir de la versión móvil