Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Delphi dirige WPF et Electron pour l’accès matériel et périphérique de bas niveau

wp1 hdaccess

Comment Delphi, WPF .NET Framework et Electron se comparent-ils et quel est le meilleur moyen de faire une comparaison objective? Embarcadero a commandé un livre blanc pour étudier les différences entre Delphi, WPF .NET Framework et Electron pour la création d’applications de bureau Windows. L’application de référence – un clone de la calculatrice Windows 10 – a été recréée dans chaque cadre par trois bénévoles Delphi Most Valuable Professionals (MVP), un développeur WPF indépendant et un développeur indépendant d’Electron. Dans cet article de blog, nous allons explorer la métrique de l’accès matériel qui fait partie de la comparaison de flexibilité utilisée dans le livre blanc. L’application de calcul elle-même n’utilise pas l’accès matériel dans chaque framework, donc la comparaison se fait entre les frameworks eux-mêmes.

Accès au matériel spécifique à l’appareil

Le cadre facilite-t-il l’accès aux données des capteurs des appareils (GPS, microphone, accéléromètres, caméra, etc.) et l’action physique via des appareils similaires? Les cadres qui «ouvrent les portes» à la multitude de capteurs et d’actionneurs disponibles sur les appareils intelligents aujourd’hui créent des opportunités commerciales et des solutions novatrices aux problèmes des consommateurs.

Les bibliothèques standard de Delphi offrent un accès facile à presque tous les types de bases de données disponibles et permettent aux développeurs d’accéder aux fonctionnalités du système d’exploitation sur chaque plate-forme et d’interagir avec les périphériques d’E / S et les capteurs matériels. WPF peut accéder aux fonctionnalités du système d’exploitation Windows et aux périphériques d’E / S via des bibliothèques .NET, mais avec du code managé après compilation plutôt que du code natif. Electron fournit un accès matériel à partir de son processus node.js et peut accéder à certaines fonctions du système d’exploitation, mais pas à toutes, via les bibliothèques node.js.

Après avoir examiné les trois cadres, Delphi occupe la première place dans la catégorie de la flexibilité en raison de son déploiement flexible et automatisé sur toutes les principales plates-formes, de son évolutivité à tous les niveaux de développement et de son système de conception visuelle. WPF avec .NET Framework est compétitif sur la plate-forme Windows mais n’a pas la capacité de rivaliser sur macOS ou sur les appareils mobiles. Enfin, Electron a le moins d’obstacles à l’entrée et le plus grand nombre d’options d’outils de développement, mais s’appuie fortement sur des déploiements manuels, ne peut pas cibler directement les appareils mobiles par défaut, est le moins évolutif et n’a pas le même accès matériel et système d’exploitation que ses concurrents.

Jetons un coup d’œil à chaque cadre.

Accès matériel Delphi

Le framework FMX de Delphi comprend des bibliothèques qui permettent l’interaction avec les capteurs et les composants périphériques d’un appareil quelle que soit la plate-forme. Ces bibliothèques se compilent en code natif. Delphi RTL, l’accès direct à la mémoire et d’autres fonctionnalités de bas niveau lui donnent un accès complet à la plate-forme matérielle, y compris le code d’assemblage en ligne sur les plates-formes de bureau x86.

Assemblage en ligne dans Delphi

Voici deux exemples de compilation conditionnelle et d’assemblage en ligne (entre asm et end; tags).

[crayon-676d8da49cc56777595497/]
[crayon-676d8da49cc5c888483160/]

Pilote en mode noyau

Il est possible de créer des pilotes en mode noyau pour Windows dans Delphi. Les pilotes en mode noyau sont définis par Microsoft comme «Les pilotes en mode noyau s’exécutent en mode noyau dans le cadre de l’exécutif, qui se compose de composants du système d’exploitation en mode noyau qui gèrent les E / S, la mémoire Plug-and-Play, les processus et les threads, la sécurité et bientôt. Les pilotes en mode noyau sont généralement superposés. En règle générale, les pilotes de niveau supérieur reçoivent généralement des données des applications, filtrent les données et les transmettent à un pilote de niveau inférieur prenant en charge les fonctionnalités du périphérique.

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

Instrumentation de gestion Windows (WMI)

Delphi offre un accès facile à WMI et il existe un projet open source qui générera rapidement le code dont vous avez besoin. Selon Microsoft, WMI est défini comme «l’infrastructure de gestion des données et des opérations sur les systèmes d’exploitation Windows».

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

Bluetooth

Le RTL fournit un composant,  TBluetooth , qui vous donne accès à toutes les fonctionnalités Bluetooth classiques du RTL. Faites glisser un  TBluetooth composant de la  palette d’outils  sur un formulaire ou un module de données de votre application.

Capteurs matériels

Un capteur mesure une grandeur physique et la convertit en un signal lisible par une application. System.Sensors.Components  fournit à vos applications des composants qui vous permettent d’obtenir des informations de nombreux types de capteurs matériels.


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.

Accès à la caméra

Cet exemple de projet montre comment utiliser et manipuler la caméra d’un appareil. L’exemple illustre l’utilisation de  TCameraComponent .

Accès matériel WPF .NET Framework

WPF .NET Framework peut accéder à de nombreuses bibliothèques Windows pour les capteurs, les périphériques d’E / S et d’autres périphériques pour PC. L’accès de WPF au matériel se fait via du code managé plutôt que par du code natif, mais il existe une interface native (non gérée) via P / Invoke. Ce pont limite certains accès.

Accès au matériel électronique

Electron peut accéder aux fonctions du système d’exploitation et aux périphériques matériels via les bibliothèques node.js. Sa base Chromium multiplateforme facilite l’accès matériel de haut niveau sur toutes les principales plates-formes de bureau. L’accès d’Electron au matériel se fait par code managé plutôt que par code natif et ne peut accéder qu’aux fonctionnalités exposées via des bibliothèques.

Explorez toutes les métriques dans le livre blanc «Découvrir le meilleur framework de développement grâce à l’analyse comparative»:

Téléchargez le livre blanc gratuit Delphi vs WPF vs Electron pour les ordinateurs de bureau Windows

 
Quitter la version mobile