Electron (framework)

framework open source gestito e ospitato da GitHub

Electron (precedentemente noto come Atom Shell[3]) è un framework open source gestito e ospitato da GitHub.[4] Electron consente lo sviluppo della GUI di applicazioni desktop utilizzando tecnologie Web: combina il motore di rendering Chromium e il runtime Node.js.[5] Electron è il principale framework per la GUI dietro alcuni importanti progetti open source tra cui Atom,[6] GitHub Desktop,[7] Light Table,[8] Visual Studio Code[9] e WordPress Desktop.[10]

Electron
software
Logo
Logo
Schermata di esempio
Schermata di esempio
GenereFramework per applicazioni web
SviluppatoreGitHub Inc.
Data prima versione15 luglio 2013
Ultima versione33.0.0 (14 ottobre 2024)
Ultima beta23.0.0-alpha.2 (8 dicembre 2022[1][2])
Sistema operativoMicrosoft Windows
Linux
macOS
LinguaggioObjective C
TypeScript
JavaScript
C++
Python
Python
Licenzalicenza MIT
(licenza libera)
Sito webwww.electronjs.org

Architettura

modifica

Le applicazioni Electron sono composte da più processi: il processo "browser" e diversi processi "renderer". Il processo browser esegue la logica dell'applicazione e può quindi avviare più processi di rendering, restituendo le finestre che appaiono sullo schermo di un utente processando HTML e CSS.

Entrambi i processi browser e renderer possono essere eseguiti con l'integrazione di Node.js se abilitati.

La maggior parte delle API di Electron sono scritte in C++ o Objective-C e quindi esposte direttamente al codice dell'applicazione tramite i collegamenti JS[11].

Sicurezza

modifica

Poiché le applicazioni Electron sono applicazioni web eseguite nel motore Chromium, potrebbero essere vulnerabili ad attacchi relativi al Web come attacchi di scripting cross-site, attraverso gli stessi vettori di attacco di un browser (ad es. Chromium) o altri componenti interni (Node.js) se si utilizzano determinate versioni di Electron.[12] Esempi di tali vulnerabilità sono stati risolti nelle versioni di Electron 1.7.13, 1.8.4 e 2.0.0-beta.5.[13]

Criticità

modifica

Electron non supporta i sistemi operativi mobili come Android e iOS.

Electron è stato criticato poiché le applicazioni programmate con questo framework (come Atom e Visual Studio Code) consumano molta più RAM rispetto ad altre applicazioni simili (Emacs, Nano, Vim, Sublime Text). Le applicazioni in Electron vengono fornite con un pre-bundle di Chromium, quindi strumenti in origine molto semplici (es. terminali, appunti) con Electron vengono appesantiti.[14] Altre critiche sono focalizzate sul fatto che le applicazioni Electron non sono native, il che significa mancanza di integrazione.[15]

Software che utilizzano Electron

modifica

Numerose applicazioni desktop sono realizzate con Electron, tra cui:[16]

Derivazioni

modifica

Electron.NET

modifica

Il 27 ottobre 2017, la comunità ha rilasciato un clone chiamato Electron.NET[27] per il framework .NET Core. Questo è un progetto open source che consente l'accesso alle API Electron native passando per il linguaggio di programmazione C#. Lo sviluppo .NET fa riferimento a proprio ecosistema, anziché utilizzare JavaScript.

  1. ^ (EN) Release Notes, su GitHub. URL consultato il 10 dicembre 2022.
  2. ^ (EN) Stable Releases, su electronjs.org. URL consultato il 10 dicembre 2022.
  3. ^ (EN) Kevin Sawicki, Atom Shell is now Electron, su Electron Blog, 23 aprile 2015. URL consultato il 5 ottobre 2019.
  4. ^ electron/electron, su GitHub. URL consultato il 5 ottobre 2019.
  5. ^ (EN) Cheng Zhao, Electron Internals: Using Node as a Library, su Electron Blog, 8 agosto 2016. URL consultato il 5 ottobre 2019.
  6. ^ atom/atom, su GitHub. URL consultato il 5 ottobre 2019.
  7. ^ (EN) GitHub Desktop, su GitHub. URL consultato il 5 ottobre 2019.
  8. ^ (EN) Gabriel Horner, Light Table 0.8.0, su lighttable.com, Light Table Blog, 10 dicembre 2015. URL consultato il 5 ottobre 2019.
  9. ^ (EN) Mike James, Visual Studio Code - Now With Added Extensions, in I Programmer, 23 nobrembre 2015. URL consultato il 5 ottobre 2019.
  10. ^ GitHub Repository, su github.com. URL consultato il 16 giugno 2019.
  11. ^ (EN) Shelley Vohr, From native to JavaScript in Electron | Electron Blog, su Electron Blog, 19 marzo 2019. URL consultato il 5 ottobre 2019.
  12. ^ (EN) Brendan Scarvell, Electron nodeIntegration Bypass | SpiderLabs Blog, su Trustwave, 10 maggio 2018. URL consultato il 5 ottobre 2019.
  13. ^ (EN) Charles Kerr, Webview Vulnerability Fix, su Electron Blog, 21 marzo 2018. URL consultato il 5 ottobre 2019.
  14. ^ (EN) Electron considered harmful, su Drew DeVault's Blog, 24 novembre 2016. URL consultato il 5 ottobre 2019.
  15. ^ (EN) Casper Beyer, Electron is Cancer - Commit Log, in Medium, 8 novembre 2017. URL consultato il 5 ottobre 2019.
  16. ^ a b c d e f g Applicazioni Electron, su Electron Blog. URL consultato il 5 ottobre 2019 (archiviato dall'url originale il 27 settembre 2019).
  17. ^ (EN) Kevin Sawicki, Atom Shell is now Electron, su Electron Blog, 23 aprile 2015. URL consultato il 5 ottobre 2019 (archiviato dall'url originale il 16 ottobre 2019).
  18. ^ (EN) CrashPlan for Small Business version 6.7, su Code42 Support. URL consultato il 5 ottobre 2019 (archiviato dall'url originale il 26 aprile 2018).
  19. ^ balena-io/etcher, su github.com. URL consultato il 28 agosto 2018.
  20. ^ (EN) Phil Haack, Announcing Git Integration for Atom and GitHub Desktop Beta, su The GitHub Blog, 16 maggio 2017. URL consultato il 5 ottobre 2019.
  21. ^ (EN) Electron Helper and branding, su techcommunity.microsoft.com, 20 maggio 2017. URL consultato il 5 ottobre 2019.
  22. ^ (EN) Building hybrid applications with Electron, su Several People Are Coding, 25 ottobre 2016. URL consultato il 5 ottobre 2019.
  23. ^ symphonyoss/SymphonyElectron, su GitHub. URL consultato il 5 ottobre 2019.
  24. ^ (EN) Peter Bright, Microsoft’s new Code editor is built on Google’s Chromium, in Ars Technica, 29 aprile 2015. URL consultato il 5 ottobre 2019.
  25. ^ Microsoft/vscode, su GitHub. URL consultato il 5 ottobre 2019.
  26. ^ wireapp/wire-desktop, su GitHub. URL consultato il 5 ottobre 2019.
  27. ^ Electron.NET

Voci correlate

modifica

Altri progetti

modifica

Collegamenti esterni

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica