Qual é o desempenho do Delphi, do WPF .NET Framework e do Electron em comparação entre si, e qual é a melhor maneira de fazer uma comparação objetiva? A Embarcadero encomendou um white paper para investigar as diferenças entre Delphi, WPF .NET Framework e Electron para a construção de aplicativos de desktop do Windows. O aplicativo de benchmark – um clone da Calculadora do Windows 10 – foi recriado em cada estrutura por três voluntários Delphi Most Valuable Professionals (MVPs), um desenvolvedor WPF freelance especializado e um desenvolvedor freelance especializado em Electron. Nesta postagem do blog, vamos explorar a métrica Extensão da ferramenta, que faz parte da comparação de funcionalidade usada no white paper.
Table of Contents
Como as extensões de ferramentas podem ser comparadas?
O framework pode ser estendido em sua própria linguagem? Frameworks que requerem que plug-ins, extensões ou modificações sejam escritos em um idioma diferente impõem custos aos negócios que requerem funcionalidade alterada. Em vez de criar a ferramenta necessária com base no conhecimento residente, as empresas podem ter que investir tempo e recursos para contratar um contratante externo ou desenvolver habilidades internas nesse idioma alternativo.
O Delphi vem com software de teste e também dá às empresas a oportunidade de desenvolver ferramentas e extensões para o framework usando o mesmo talento que constrói seu produto (o IDE Delphi é programado em Delphi). O WPF oferece bibliotecas de teste por meio do Visual Studio, e as empresas podem aproveitar a grande ferramenta de terceiros e o ambiente de extensão, mas podem precisar terceirizar o trabalho para construir suas próprias extensões ou investir em talentos para linguagens não WPF. Electron carece de um IDE nativo, dando às empresas uma escolha, mas também removendo algumas conveniências como compilação integrada e bibliotecas de teste incluídas. As empresas que desenvolvem ferramentas internas teriam mais dificuldade com o Electron do que com outras estruturas.
Vamos dar uma olhada em cada estrutura.
Quais recursos de extensão de ferramenta estão disponíveis para Delphi?
O RAD Studio IDE para Delphi é escrito em Delphi. Os usuários podem construir suas próprias extensões e ferramentas em Delphi, eliminando a necessidade de aprender uma nova linguagem e lidar com problemas de limite de linguagem. Além disso, extensões e ferramentas podem ser construídas em C ++ por meio do lado C ++ Builder do RAD Studio.
O RAD Studio possui uma API poderosa que permite estender ou modificar o comportamento do IDE. Crie um pacote ou plugin DLL que adiciona novas janelas de ferramentas, desenha no editor de código, fornece autocompletar código, adiciona novos tipos de projeto, tipos de arquivo e realce, conecta em eventos de alto e baixo nível, rastreia processos e threads durante a depuração , e mais.
Existe um rico ecossistema de add-ons de código aberto e fechado. Existem vários add-ons disponíveis diretamente via Embarcadero GetIt no IDE .
A seguir, um trecho do white paper Extending the Delphi IDE, de Bruno Fierens e Embarcadero.
Qual é a arquitetura básica da API Delphi IDE?
A API é fortemente baseada em interfaces. As interfaces geralmente começam com o prefixo IOTA ou INTA. O IDE expõe muitas interfaces que podem ser chamadas a partir do plug-in; inversamente, o próprio IDE também pode chamar o código do plug-in quando uma ação específica é disparada no IDE. Para informar ao IDE que o plug-in possui um manipulador para essas ações, na maioria dos casos, isso é feito escrevendo uma classe descendente de TNotifierObject que implementa uma interface e registra a classe com o IDE. Como um escritor de plug-in, você se verá escrevendo principalmente código que chama as interfaces IDE e classes que implementam interfaces que serão chamadas a partir do IDE.
Quais áreas do RAD Studio IDE podem ser estendidas?
O IDE Delphi pode ser estendido de várias maneiras. Esta é uma breve visão geral das áreas mais comuns de extensão do IDE:
- Criar e adicionar painéis de encaixe personalizados
É possível adicionar painéis de encaixe personalizados, como o painel da paleta de componentes, o
painel do inspetor de objetos, etc. - Interaja com o editor de código As
interfaces são oferecidas para manipular programaticamente o editor de código Delphi IDE;
por exemplo, para inserir trechos de código, substituir texto, lidar com sequências de teclas especiais,
adicionar realçadores de sintaxe personalizados e muito mais … - Interaja com o Code Insight O
Code Insight no editor também pode ser personalizado, oferecendo textos de ajuda personalizados sobre
construções específicas no código. - Interaja com o gerenciador de projetos
O IDE permite que você tenha menus de contexto personalizados para projetos e arquivos no
painel de ferramentas Gerenciador de projetos do IDE . - Adicionar assistentes e itens personalizados ao repositório
É possível adicionar itens personalizados ou iniciar assistentes personalizados a partir de itens adicionados ao
repositório Delphi. A partir desses assistentes, novos tipos de projeto, tipos de formulário específicos ou
módulos de dados podem ser criados. - Interaja com itens ToDo
Uma API também está disponível para interagir com itens ToDo no código de uma
extensão IDE do Delphi . - Interaja com o depurador, crie visualizadores de depurador personalizados
Em versões mais recentes do Delphi, uma extensão IDE pode ser adicionada para fornecer uma
exibição personalizada de um tipo de dados específico durante a depuração. - Interaja com o designer de formulário
A partir de um plugin Delphi, uma API está disponível para interagir com o designer de formulário também. - Notificações da tela inicial
Uma interface é fornecida para adicionar texto personalizado na tela inicial durante a inicialização
do IDE.
Aqui está também um vídeo do Developer Skill Sprint intitulado Developing Plugins in RAD Studio :
Uma série de extensões populares para RAD Studio incluem:
- 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
Quais recursos de extensão de ferramenta estão disponíveis para WPF .NET Framework?
O Visual Studio, o IDE nativo do WPF, pode ser estendido de várias maneiras e em vários idiomas. As macros são escritas em Visual Basic, os suplementos são escritos em .NET e os pacotes podem ser escritos em .NET, C #, C ++ ou Visual Basic. Como o WPF é escrito em XAML e está vinculado a um back-end lógico C #, as empresas podem não ter experiência interna para criar as ferramentas de que precisam para aprimorar seus ambientes de desenvolvimento sem terceirizar o trabalho ou investir em treinamento.
De acordo com a Microsoft, o Visual Studio permite estender “menus, barras de ferramentas, comandos, janelas, soluções, projetos, editores e assim por diante”. Além disso, ele lista os seguintes itens comuns que podem ser estendidos.
- Estendendo Menus e Comandos
- Ampliando e personalizando janelas de ferramentas
- Editor e extensões de serviço de linguagem
- Projetos de extensão
- Estendendo as configurações e opções do usuário
- Estendendo Propriedades e a Janela de Propriedades
- Estendendo outras partes do Visual Studio
- Shell Isolado do Visual Studio
Saiba mais sobre como estender o Visual Studio aqui:
https://docs.microsoft.com/en-us/visualstudio/extensibility/starting-to-develop-visual-studio-extensions?view=vs-2019
Quais recursos de extensão de ferramenta estão disponíveis para o Electron?
Electron não tem um IDE nativo, mas pode usar plug-ins disponíveis em IDEs como o Visual Studio Code. Ferramentas adicionais do Electron podem ter que ser desenvolvidas internamente a partir do zero ou integradas a uma ferramenta de terceiros, como o Visual Studio Code. Há um grande número de projetos de código aberto em torno de ferramentas e funcionalidades para Electron.
Um editor popular usado com Electron é o Visual Studio Code. Outros editores populares são Atom, Sublime Text, NotePad ++ e outros editores de texto. Muitos desses editores de texto, incluindo extensões de suporte do VS Code, mas cada um é exclusivamente diferente e, portanto, as extensões para Electron estão espalhadas e de qualidade variável.
Algumas dessas ferramentas incluem:
- Construtor de elétrons
- Fragmentos de elétrons
- Ferramentas de construção de elétrons
Concluindo, examinamos os recursos de extensão de ferramentas em Delphi, WPF .NET Framework e ferramentas Electron. A Delphi fornece os mais amplos recursos de extensão de ferramenta com um histórico significativo de longo prazo por trás das ferramentas existentes. Pode ser difícil construir extensões de ferramenta para WPF .NET Framework, pois a experiência interna para construir ferramentas pode não estar disponível. Além disso, como o WPF .NET Framework é uma estrutura legada, de acordo com a Microsoft, as empresas podem não querer alocar orçamento para apoiá-la. Electron é apenas um framework e, portanto, não tem o mesmo sistema de extensão de ferramenta que um IDE integrado como Delphi / RAD Studio e Visual Studio fornecem. Cada um dos editores de texto que oferecem suporte ao Electron possui seus próprios sistemas de plug-ins exclusivos. Em geral, o Delphi / RAD Studio fornece o ecossistema de extensão de ferramentas mais rico.
Pronto para explorar todas as métricas do white paper “Descobrindo a melhor estrutura de desenvolvedor por meio de benchmarking”?
Baixe o artigo gratuito Delphi vs. WPF vs. Electron para desktops Windows