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 faisabilité à long terme qui fait partie de la comparaison des fonctionnalités utilisée dans le livre blanc.
Table of Contents
Faisabilité à long terme
Lorsque les entreprises choisissent Delphi comme cadre de développement, elles investissent dans un cadre propriétaire (qui inclut le code source de la bibliothèque d’exécution) avec des coûts initiaux et des frais de mise à jour annuels facultatifs. Pour ce coût, ils bénéficient d’un cadre stable, rétrocompatible et en croissance, et peuvent être certains que les applications développées aujourd’hui seront prises en charge et maintenables à l’avenir.
Windows Presentation Foundation avec .NET Framework offre aux entreprises un cadre économique avec le soutien total de Microsoft, mais comprend tous les défis que les choix de Microsoft induisent. WPF a une histoire plus courte que Delphi, mais a été open-source en 2018, ce qui pourrait donner à une version de celui-ci de brillantes perspectives à long terme malgré ses liens avec le .NET Framework propriétaire pour la plupart des développements Windows. .NET Framework 4.8 était la dernière version du 18 avril 2019 selon Microsoft.
Electron est une plate-forme open source gratuite offrant aux entreprises la possibilité de développer des applications à partir de n’importe quel système d’exploitation majeur. L’avenir d’Electron est cependant incertain. Le projet Electron est géré par GitHub qui est désormais une filiale de Microsoft. C’est le plus récent des trois cadres et toujours dans sa phase de lune de miel. Il manque un IDE natif, ce qui donne aux entreprises un choix, mais supprime également certaines commodités telles que la compilation intégrée et les bibliothèques de test incluses. Les entreprises développant des outils internes auraient plus de difficultés avec Electron qu’avec les autres frameworks.
Jetons un coup d’œil à chaque cadre.
Delphes
Delphi a grandi, mûri et étendu depuis 1995. Son développement maintient la compatibilité descendante dans la mesure où une application de 1995 peut être portée vers la version actuelle de Delphi avec des changements minimes. Une documentation complète facilite la maintenance et une équipe d’assistance complète est disponible pour une aide sur la mise à niveau, la migration ou le dépannage. Au moment d’écrire ces lignes, la dernière version de Delphi est disponible dans RAD Studio 10.4.1 Sydney qui est sorti le 2 septembre 2020. Vous voulez en savoir plus? Consultez les notes de publication de nombreuses versions de Delphi .
Pour un certain contexte sur la chronologie du langage de programmation, C ++ est sorti en 1983, Python est sorti en 1991, Java est sorti en 1995, PHP est sorti en 1995, JavaScript est sorti en 1995 et Delphi est sorti en 1995. 1995 a été une année de naissance. pour beaucoup de ces langages de programmation comme vous pouvez le voir. Le site Web Delphi Anniversary contient une chronologie des versions de Delphi de 1995 à nos jours. Voici un extrait de la chronologie des sorties au cours des 25 dernières années.
DELPHI 1 – 14 FÉVRIER 1995
Prise en charge de Windows 3.1 16 bits, outils visuels bidirectionnels, composants / VCL, prise en charge de la base de données via BDE et liens SQL, données de base de données en direct au moment du design
DELPHI 2 (1996)
Prise en charge de Windows 95 32 bits, grille de base de données, automatisation OLE, héritage de formulaire visuel, chaînes longues, Delphi 1 inclus pour 16 bits
DELPHI 3 (1997)
Interfaces (basées sur COM), Code Insight, modèles de composants, débogage de DLL, WebBroker, ActiveForms, packages de composants, architecture multiniveau MIDAS
DELPHI 4 (1998)
Ancrage, ancres et contraintes, surcharge de méthode, tableaux dynamiques, prise en charge de Windows 98
DELPHI 5 (1999)
Mises en page de bureau, cadres, prise en charge XML, DBGo pour ADO, traductions de langues
DELPHI 6 (2001)
Fenêtre Structure, Services Web SOAP, dbExpress, BizSnap, WebSnap, DataSnap
DELPHI 7 (2002)
Développement d’applications Web, thèmes Windows XP
DELPHI 8 (2003)
Prise en charge de .NET
DELPHI 2005 (2004)
Espaces de noms multi-unités, analyse des erreurs, onglet Historique, for..in, incrustation de fonctions, IDE activé par thème, refactorisations, déclaration de caractères génériques dans les utilisations, explorateur de données, tests unitaires intégrés
DELPHI 2006 (2005)
Surcharge des opérateurs, méthodes et propriétés statiques, instructions du concepteur, vue du positionneur de formulaire, modèles de code en direct, achèvement de bloc, numéros de ligne, barres de changement, modification de la synchronisation, pliage de code et navigation dans les méthodes, info-bulles de débogage, palette d’outils de recherche, gestionnaire de mémoire FastMM , Prise en charge de MySQL, prise en charge d’Unicode dans dbExpress, TTrayIcon, TFlowPanel, TGridPanel
DELPHI 2007 (2006)
MS Build, Build Events, Build Configurations, Windows Vista support – glassing, theming, dbExpress 4 – connection pooling, delegate drivers, CPU viewer windows, FastCode support, IntraWeb / AJAX support, Welcome Page, Sim-ship of English, French, German , Japonais
DELPHI 2009 (2008)
Unicode, Génériques, Méthodes anonymes, Contrôles du ruban, DataSnap, Configurations de construction, Explorateur de classes, Fenêtre de l’éditeur de bibliothèque de types, Prise en charge de PNG
DELPHI 2010 (2009)
Attributs, RTTI amélioré, canevas Direct2D, prise en charge de Windows 7, toucher / gestes, formateur de code source, points d’arrêt spécifiques aux threads, visualiseurs de débogage, unité IOUtils pour fichiers, chemins et répertoires, audits et métriques de code source, compilation en arrière-plan, code source pour MIDAS. DLL
DELPHI XE (2010)
Bibliothèque d’expressions régulières, intégration Subversion, dbExpress –Filtres, authentification, ProxyGeneration, JavaScript Framework, prise en charge REST, Indy WebBroker, Cloud – Amazon EC2, Microsoft Azure, groupes de création, threads nommés dans le débogueur, audits de ligne de commande, génération de métriques et de documentation
DELPHI XE2 (2011)
Windows 64 bits, Mac OSX, FireMonkey, Live Bindings – FireMonkey et VCL, styles VCL, noms d’étendue d’unité, Platform Assistant, DataSnap – Connecteurs pour appareils mobiles, API Cloud, prise en charge HTTPS, surveillance TCP, prise en charge dbExpress pour les pilotes ODBC, déploiement Directeur
DELPHI XE3 (2012)
Interface utilisateur Metropolis pour Windows 8, 7, Vista et XP, actions FM, toucher / gestes, dispositions et ancres, prise en charge FM pour les styles bitmap, source matérielle pour les composants FM 3D, audio / vidéo FM, prise en charge VCL / FM pour les capteurs, FM Composant de capteur de localisation, prise en charge du clavier virtuel, prise en charge de DirectX 10
DELPHI XE4 (AVRIL 2013)
Prise en charge iOS – appareil, simulateur, magasin d’applications iOS, prise en charge iOS pour les écrans standard et Retina, styles iOS, styles Retina, claviers virtuels, Concepteur de formulaires mobiles, composant TWebBrowser, iOS ARC (comptage automatique des références) pour toutes les classes TObject, Platform Services, Notifications, composants de capteur de localisation, de mouvement et d’orientation, composant TListView, prise en charge du plein écran Mac OSX, gestionnaire de déploiement pour les appareils iOS, composants d’accès aux données universels FireDAC, InterBase – IBLite et IBToGo
DELPHI XE5 (SEPTEMBRE 2013)
Prise en charge d’Android – appareils et émulateur. Versions du système d’exploitation: Jelly Bean, Ice Cream Sandwich et Gingerbread, composant de notification, prise en charge du style iOS 7, concepteur de formulaires configurables pour les appareils mobiles, gestionnaire de déploiement pour les appareils Android, composants d’accès au client et d’authentification des services REST, prise en charge d’Android pour tous les XE4 FM et fonctionnalités de base de données répertoriées ci-dessus
DELPHI XE6 (AVRIL 2014)
Styles Windows 7 et 8.1, accès aux services WEB RESTful de la base cloud, compatible FireDAC avec plus de bases de données, prise en charge InterBase entièrement intégrée
DELPHI XE7 (SEPTEMBRE 2014)
Les applications multi-périphériques FireMonkey prennent en charge les plates-formes de bureau et mobiles, la base de données intégrable IBLite pour Windows, Mac, Android et iOS, la prise en charge multi-écrans, la prise en charge multi-touch et les changements de gestes, le mode immersif plein écran pour Android, FireMonkey prend en charge le Pull- Fonction d’actualisation pour TListView sur iOS et Android, fonction d’enregistrement de l’état de FireMonkey
DELPHI XE8 (AVRIL 2015)
GetIt Package Manager, améliorations FireDAC, nouvelle barre d’outils communautaire Embarcadero, présentation native de TListView, TSwitch, TMemo, TCalendar, TMultiView et TEdit sur iOS, cartes interactives, nouvelles options pour la médiathèque, InputQuery prend désormais en charge le masquage des champs d’entrée
DELPHI 10 ‘SEATTLE’ (AOÛT 2015)
Prise en charge des services d’arrière-plan Android, prise en charge de FireDAC pour la base de données NoSQL MongoDB, contrôle FireMonkey Prise en charge de zOrder pour Windows, nouvelle classe TBeaconDevice pour transformer un appareil sur l’une des plates-formes prises en charge en une «balise», StyleViewer pour Windows 10 Style dans Bitmap Style Designer, Élevé – Prise en charge de la prise en charge de la sensibilisation DPI et des moniteurs 4K, styles Windows 10, prise en charge des services Android dans l’EDI, prise en charge de l’appel des API WinRT
DELPHI 10.1 ‘BERLIN’ (AVRIL 2016)
Prise en charge d’Android 6.0, prise en charge de Windows Desktop Bridge, carnet d’adresses pour iOS et Android, nouveau concepteur d’élément ListView, nouveau contrôle CalendarView, QuickEdits pour VCL, prise en charge haute résolution sur Windows, modifications de propriété d’indication, prise en charge du serveur EMS Apache, programme d’installation Web basé sur GetIt
DELPHI 10.2
TOKYO » (MARS 2017)
Prise en charge de Linux 64 bits pour Delphi, FireDAC fournit une prise en charge Linux pour tous les SGBD compatibles Linux, prise en charge de MariaDB (v5.5), prise en charge de MySQL pour la v5.7 et prise en charge de Firebird pour les E / S directes, QuickEdits pour FMX, nouveaux contrôles VCL pour Windows 10, mise à jour de l’apparence et de la convivialité de l’IDE (thème sombre), licence de déploiement RAD Server incluse
DELPHI 10.3 ‘RIO’ (NOVEMBRE 2018)
C ++ 17 pour Win32, nouvelles fonctionnalités du langage Delphi, FireMonkey Android zOrder, contrôles natifs et niveau d’API 26, améliorations de Windows 10, VCL et HighDPI, modernisation étendue de l’interface utilisateur IDE, extension de l’architecture RAD Server, améliorations de la qualité et des performances
DELPHI 10.3.1 ‘RIO’ (FÉVRIER 2019)
Prise en charge étendue des appareils de la série iOS 12 et iPhone X. Refonte de l’interface utilisateur de RAD Server Console et migration vers le framework Ext JS (disponible via GetIt). Prise en charge améliorée de FireDAC pour Firebird 3.0.4 et Firebird intégré. Améliorations de la bibliothèque cliente HTTP et SOAP sous Windows. Deux nouveaux outils de productivité IDE: les signets et le navigateur. 15 nouveaux styles VCL Windows et FireMonkey multi-périphériques personnalisés.
DELPHI 10.3.2 ‘RIO’ (JUILLET 2019)
Delphi macOS 64 bits, C ++ 17 pour Windows 64 bits, améliorations C ++ LSP Code Insight, assistants RAD Server et améliorations du déploiement, prise en charge améliorée de Firebase Android, prise en charge des applications client Delphi Linux
DELPHI 10.3.3 ‘RIO’ (NOVEMBRE 2019)
Prise en charge de Delphi Android 64 bits, prise en charge d’iOS 13 et de macOS Catalina (Delphi), déploiement de RAD Server Docker, connecteurs d’entreprise dans Enterprise & Architect Edition
DELPHI 10.4 ‘SYDNEY’ (MAI 2020)
Prise en charge native de Windows hautes performances considérablement améliorée, productivité accrue grâce à une exécution de code ultra-rapide, code plus rapide avec des enregistrements gérés et des tâches parallèles améliorées sur des processeurs multicœurs modernes, plus de 1000 améliorations de la qualité et des performances, et bien plus encore.
DELPHI 10.4.1 ‘SYDNEY’ (SEPTEMBRE 2020)
RAD Studio 10.4.1 se concentre fortement sur les améliorations de qualité de l’EDI, de Delphi Code Insight (LSP), de la bibliothèque parallèle, de SOAP et XML, de la chaîne d’outils C ++, de FireMonkey, de VCL, du compilateur Delphi et du déploiement iOS.
Cadre WPF .NET
Sorti en 2006, WPF s’est développé avec le framework .NET. Il a été open-source par Microsoft en 2018 et a fourni plusieurs feuilles de route indiquant l’engagement et la croissance de la communauté dans un proche avenir. Les changements importants de .NET et les décisions de conception changeantes de Microsoft ont un impact sur la faisabilité à long terme de WPF. WPF .NET Framework 4.8 était la version finale de .NET Framework selon Microsoft et a été publié le 18 avril 2019.
WPF a été introduit dans .NET Framework 3.0 en 2006. Selon un article sur le site Web CodeProject, les versions et améliorations de WPF sont répertoriées dans ce tableau:
WPF Version | Release (YYYY-MM) | .NET Version | Visual Studio Version | Major Features |
---|---|---|---|---|
3.0 | 2006-11 | 3.0 | N/A | Initial Release. WPF development can be done with VS 2005 (released in Nov 2005) too with few additions. |
3.5 | 2007-11 | 3.5 | VS 2008 | Changes and improvements in: Application model, data binding, controls, documents, annotations, and 3-D UI elements. |
3.5 SP1 | 2008-08 | 3.5 SP1 | N/A | Native splash screen support, New WebBrowser control, DirectX pixel shader support. Faster startup time and improved performance for Bitmap effects. |
4.0 | 2010-04 | 4.0 | VS 2010 | New controls: Calendar, DataGrid, and DatePicker. Multi-Touch and Manipulation |
4.5 | 2012-08 | 4.5 | VS 2012 | New Ribbon control New INotifyDataErrorInfo interface |
4.5.1 | 2013-10 | 4.5.1 | VS 2013 | No Major Change |
4.5.2 | 2014-05 | 4.5.2 | N/A | No Major Change |
4.6 | 2015-07 | 4.6 | VS 2015 | Transparent child window support HDPI and Touch improvements |
Ce qui suit est un extrait de la page Historique des versions de Wikipedia .NET Framework pour .NET Framework 4.6.1 à 4.8.
Électron
Sorti en 2013, Electron est activement développé et maintenu par GitHub et a rapidement fourni un support pour des technologies émergentes comme Apple Silicon (vers novembre 2020). Il n’a pas l’historique et la longévité stable nécessaires pour déterminer si les applications Electron construites en 2020 survivront jusqu’en 2030. GitHub est une filiale de Microsoft. Electron offre une alternative gratuite à Delphi et WPF, une familiarité avec les développeurs frontaux et une capacité multiplateforme au détriment de la protection IP, des outils IDE standard et des performances des applications.
Selon le calendrier de publication d’Electron (https://www.electronjs.org/docs/tutorial/electron-timelines), voici les versions.
Version | -beta.1 | Stable | Chrome | Node |
---|---|---|---|---|
2.0.0 | 2018-02-21 | 2018-05-01 | M61 | v8.9 |
3.0.0 | 2018-06-21 | 2018-09-18 | M66 | v10.2 |
4.0.0 | 2018-10-11 | 2018-12-20 | M69 | v10.11 |
5.0.0 | 2019-01-22 | 2019-04-24 | M73 | v12.0 |
6.0.0 | 2019-05-01 | 2019-07-30 | M76 | v12.4 |
7.0.0 | 2019-08-01 | 2019-10-22 | M78 | v12.8 |
8.0.0 | 2019-10-24 | 2020-02-04 | M80 | v12.13 |
9.0.0 | 2020-02-06 | 2020-05-19 | M83 | v12.14 |
10.0.0 | 2020-05-21 | 2020-08-25 | M85 | v12.16 |
11.0.0 | 2020-08-27 | 2020-11-17 | M87 | v12.18 |
12.0.0 | 2020-11-19 | 2021-03-02 | M89 | v14.x |
Delphi offre les perspectives à long terme les plus assurées, la meilleure sécurité de propriété intellectuelle et la personnalisation interne la plus simple au prix d’un achat de licence commerciale unique. La barrière à l’entrée de WPF est plus faible et offre de meilleures options d’accessibilité, mais est soumise aux révisions .NET de Microsoft, est plus difficile à personnaliser et peut être décompilée facilement. Electron est absolument gratuit et peut être développé sur chacune des trois principales plates-formes de bureau, mais paie pour cette flexibilité grâce à ses perspectives à long terme incertaines et en s’appuyant sur des parrainages d’entreprise et le soutien de la communauté pour un développement supplémentaire.
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