Wie verhalten sich Delphi, WPF .NET Framework und Electron im Vergleich zueinander und wie lässt sich ein objektiver Vergleich am besten durchführen? Embarcadero gab ein Whitepaper in Auftrag , um die Unterschiede zwischen Delphi, WPF .NET Framework und Electron beim Erstellen von Windows-Desktopanwendungen zu untersuchen. Die Benchmark-Anwendung – ein Windows 10 Calculator-Klon – wurde in jedem Framework von drei freiwilligen Mitarbeitern von Delphi Most Valuable Professionals (MVPs), einem freiberuflichen WPF-Experten und einem freiberuflichen Electron-Entwickler neu erstellt. In diesem Blog-Beitrag werden wir die Tool-Erweiterungsmetrik untersuchen, die Teil des im Whitepaper verwendeten Funktionsvergleichs ist.
Table of Contents
Wie können Tool Extensions verglichen werden?
Kann das Framework in einer eigenen Sprache erweitert werden? Frameworks, bei denen Plug-Ins, Erweiterungen oder Änderungen in einer anderen Sprache geschrieben werden müssen, verursachen Kosten für Unternehmen, die geänderte Funktionen benötigen. Anstatt das erforderliche Tool aus dem Wissen der Bewohner zu erstellen, müssen Unternehmen möglicherweise Zeit und Ressourcen investieren, um einen externen Auftragnehmer einzustellen oder interne Fähigkeiten in dieser alternativen Sprache aufzubauen.
Delphi wird mit Testsoftware geliefert und bietet Unternehmen die Möglichkeit, Tools und Erweiterungen für das Framework mit demselben Talent zu entwickeln, mit dem auch ihr Produkt erstellt wurde (die Delphi-IDE ist in Delphi programmiert). WPF bietet Testbibliotheken über Visual Studio an, und Unternehmen können die große Tool- und Erweiterungsumgebung von Drittanbietern nutzen, müssen jedoch möglicherweise die Arbeit auslagern, um ihre eigenen Erweiterungen zu erstellen, oder in Talente für Nicht-WPF-Sprachen investieren. Electron fehlt eine native IDE, die Unternehmen die Wahl lässt, aber auch einige Annehmlichkeiten wie integrierte Kompilierung und Testbibliotheken entfernt. Unternehmen, die interne Tools entwickeln, hätten es mit Electron schwerer als die anderen Frameworks.
Werfen wir einen Blick auf jedes Framework.
Welche Tool-Erweiterungsfunktionen stehen für Delphi zur Verfügung?
Die RAD Studio IDE für Delphi ist in Delphi geschrieben. Benutzer können in Delphi ihre eigenen Erweiterungen und Tools erstellen, sodass keine neue Sprache mehr erlernt und Probleme mit Sprachgrenzen behoben werden müssen. Darüber hinaus können Erweiterungen und Tools in C ++ über die C ++ Builder-Seite von RAD Studio erstellt werden.
RAD Studio verfügt über eine leistungsstarke API, mit der Sie das Verhalten der IDE erweitern oder ändern können. Erstellen Sie ein Paket- oder DLL-Plugin, das neue Werkzeugfenster hinzufügt, im Code-Editor zeichnet, Code vervollständigt, neue Projekttypen, Dateitypen und Hervorhebungen hinzufügt, Ereignisse auf hoher und niedriger Ebene einbindet, Prozesse und Threads während des Debuggens verfolgt , und mehr.
Es gibt ein reichhaltiges Ökosystem an Open- und Closed-Source-Add-Ons. Es gibt eine Reihe von Add-Ons, die direkt über Embarcadero GetIt in der IDE verfügbar sind .
Das Folgende ist ein Auszug aus dem Whitepaper Extending the Delphi IDE von Bruno Fierens und Embarcadero.
Was ist die grundlegende Architektur der Delphi IDE API?
Die API basiert stark auf Schnittstellen. Die Schnittstellen beginnen normalerweise mit dem Präfix IOTA oder INTA. Die IDE stellt viele Schnittstellen bereit, die vom Plugin aus aufgerufen werden können. Umgekehrt kann die IDE selbst auch Code vom Plugin aufrufen, wenn eine bestimmte Aktion in der IDE ausgelöst wird. Um die IDE darüber zu informieren, dass das Plugin über einen Handler für diese Aktionen verfügt, wird in den meisten Fällen eine von TNotifierObject absteigende Klasse geschrieben, die eine Schnittstelle implementiert und die Klasse bei der IDE registriert. Als Plugin-Writer schreiben Sie hauptsächlich Code, der die IDE-Schnittstellen aufruft, und schreiben Klassen, die Schnittstellen implementieren, die von der IDE aufgerufen werden.
Welche Bereiche der RAD Studio IDE können erweitert werden?
Die Delphi-IDE kann auf viele Arten erweitert werden. Dies ist eine kurze Übersicht über die häufigsten Bereiche der IDE-Erweiterung:
- Erstellen und Hinzufügen von benutzerdefinierten Docking-Bedienfeldern
Es ist möglich, benutzerdefinierte Docking-Bedienfelder wie das Komponentenpalettenfenster, das
Objektinspektorfenster usw. hinzuzufügen. - Interaktion mit dem Code-Editor Es werden
Schnittstellen angeboten, um den Delphi IDE-Code-Editor programmgesteuert zu bearbeiten.
Zum Beispiel, um Codeausschnitte einzufügen, Text zu ersetzen, spezielle Tastenfolgen zu verarbeiten,
benutzerdefinierte Syntax- Textmarker hinzuzufügen und vieles mehr… - Interaktion mit Code Insight
Code Insight im Editor kann ebenfalls angepasst werden und bietet benutzerdefinierte Hilfetexte zu
bestimmten Konstrukten im Code. - Interaktion mit dem Projektmanager
Mit der IDE können Sie benutzerdefinierte Kontextmenüs für Projekte und Dateien im IDE-
Projektmanager-Toolbedienfeld einrichten. - Hinzufügen von benutzerdefinierten Assistenten und Elementen zum Repository
Es ist möglich, benutzerdefinierte Elemente hinzuzufügen oder benutzerdefinierte Assistenten über Elemente zu starten, die dem
Delphi-Repository hinzugefügt wurden . Mit diesen Assistenten können neue Projekttypen, bestimmte Formulartypen oder
Datenmodule erstellt werden. - Interaktion mit ToDo-Elementen
Eine API ist auch verfügbar, um mit ToDo-Elementen im Code einer Delphi IDE-
Erweiterung zu interagieren . - Interagieren Sie mit dem Debugger, erstellen Sie benutzerdefinierte Debugger-Visualisierer.
In neueren Delphi-Versionen kann eine IDE-Erweiterung hinzugefügt werden, die
beim Debuggen eine benutzerdefinierte Anzeige eines bestimmten Datentyps bietet . - Interaktion mit dem Formular-Designer Über
ein Delphi-Plugin steht eine API zur Verfügung, mit der Sie auch mit dem Formular-Designer interagieren können. - Begrüßungsbildschirmbenachrichtigungen
Es wird eine Schnittstelle bereitgestellt, über die beim Start
der IDE benutzerdefinierter Text auf dem Begrüßungsbildschirm hinzugefügt werden kann .
Hier ist auch ein vorgestelltes Developer Skill Sprint-Video mit dem Titel Entwickeln von Plugins in RAD Studio :
Eine Reihe beliebter Erweiterungen für RAD Studio umfassen:
- TwineCompile
- Parnassus Parallel Debugger
- XML Mapper
- Bookmarks
- Navigator
- MMX Code Explorer
- .Net DLL/WSDL Importer for Delphi
- CnWizards
- Delphi IDE Colorizer
- Delphi IDE Theme Editor
- FixInsight for Delphi
- Delphi Preview Handler
- Delphi Dev Shell Tools
- EurekaLog
- Pascal Analyzer
- IDE Install
Welche Tool-Erweiterungsfunktionen stehen für WPF .NET Framework zur Verfügung?
Visual Studio, die native WPF-IDE, kann auf verschiedene Arten und in mehreren Sprachen erweitert werden. Makros werden in Visual Basic geschrieben, Add-Ins werden in .NET geschrieben und Pakete können in .NET, C #, C ++ oder Visual Basic geschrieben werden. Da WPF in XAML geschrieben ist und mit einem logischen C # -Back-End verknüpft ist, verfügen Unternehmen möglicherweise nicht über interne Erfahrung, um Tools zu erstellen, die sie zur Verbesserung ihrer Entwicklungsumgebungen benötigen, ohne die Arbeit auszulagern oder in Schulungen zu investieren.
Laut Microsoft ermöglicht Visual Studio das Erweitern von „Menüs, Symbolleisten, Befehlen, Fenstern, Lösungen, Projekten, Editoren usw.“. Darüber hinaus werden die folgenden allgemeinen Elemente aufgelistet, die erweitert werden können.
- Erweitern von Menüs und Befehlen
- Tool Windows erweitern und anpassen
- Editor- und Sprachdiensterweiterungen
- Projekte erweitern
- Erweitern der Benutzereinstellungen und -optionen
- Erweitern von Eigenschaften und des Eigenschaftenfensters
- Erweitern anderer Teile von Visual Studio
- Isolierte Shell von Visual Studio
Weitere Informationen zum Erweitern von Visual Studio finden Sie hier:
https://docs.microsoft.com/en-us/visualstudio/extensibility/starting-to-develop-visual-studio-extensions?view=vs-2019
Welche Tool-Erweiterungsfunktionen stehen für Electron zur Verfügung?
Electron fehlt eine native IDE, kann jedoch Plug-Ins verwenden, die in IDEs wie Visual Studio Code verfügbar sind. Zusätzliche Electron-Tools müssen möglicherweise von Grund auf neu entwickelt oder in ein Tool eines Drittanbieters wie Visual Studio Code integriert werden. Es gibt eine große Anzahl von Open Source-Projekten rund um Tools und Funktionen für Electron.
Ein beliebter Editor für Electron ist Visual Studio Code. Andere beliebte Editoren sind Atom, Sublime Text, NotePad ++ und andere Texteditoren. Viele dieser Texteditoren, einschließlich VS Code, unterstützen Erweiterungen, aber jede ist einzigartig unterschiedlich und daher sind die Erweiterungen für Electron verstreut und von unterschiedlicher Qualität.
Einige dieser Tools umfassen:
- Elektronenbauer
- Elektronenschnipsel
- Electron Build Tools
Abschließend haben wir uns die Funktionen zur Werkzeugerweiterung in Delphi, WPF .NET Framework und Electron Tooling angesehen. Delphi bietet die umfassendsten Tool-Erweiterungsfunktionen mit einer signifikanten langfristigen Historie hinter den vorhandenen Tools. Es kann schwierig sein, Tool-Erweiterungen für WPF .NET Framework zu erstellen, da möglicherweise keine internen Erfahrungen zum Erstellen von Tools verfügbar sind. Da WPF .NET Framework laut Microsoft ein Legacy-Framework ist, möchten Unternehmen möglicherweise kein Budget für die Unterstützung bereitstellen. Electron ist nur ein Framework und verfügt daher nicht über das gleiche Tool-Erweiterungssystem, das eine integrierte IDE wie Delphi / RAD Studio und Visual Studio bietet. Die Texteditoren, die Electron unterstützen, haben jeweils ihre eigenen Plugin-Systeme. Insgesamt bietet Delphi / RAD Studio das umfangreichste Tool zur Erweiterung von Tools.
Sind Sie bereit, alle Messdaten im Whitepaper „Ermitteln des besten Entwickler-Frameworks durch Benchmarking“ zu untersuchen?
Laden Sie das Whitepaper Delphi vs. WPF vs. Electron für Windows-Desktops herunter