Créez des applications de bureau multiplateformes avec .NET 8 et Blazor, ASP.NET Core (Razor Pages, MVC).
Electron.NET est un wrapper autour d'une application Electron native avec une application ASP.NET Core intégrée. Via notre pont Electron.NET IPC, nous pouvons invoquer les API Electron à partir de .NET.
Les extensions CLI hébergent notre ensemble d'outils pour créer et démarrer des applications Electron.NET.
Eh bien... il existe de nombreuses approches différentes pour faire fonctionner une application de bureau X-plat. Nous avons pensé qu'il serait bien que les développeurs .NET utilisent l'environnement ASP.NET Core et l'intègrent simplement dans un environnement X-plat assez robuste appelé Electron. Le portage d'Electron vers .NET n'est pas un objectif de ce projet, du moins nous ne savons pas comment le faire. Nous combinons simplement ASP.NET Core et Electron.
ElectronNET.API | ElectronNET.CLI
La CLI Electron.NET actuelle crée des binaires Windows/macOS/Linux. Notre API utilise .NET 8, notre système d'exploitation de base minimum est donc le même que .NET 8.
Vous devriez également avoir installé :
Outre le chat sur Gitter et les problèmes abordés ici, vous pouvez également utiliser StackOverflow avec le tag electron.net
.
Si vous souhaitez parrainer la maintenance et le développement ultérieurs de ce projet, consultez la section Faire un don.
Pour activer et communiquer avec l'API Electron "native" (en quelque sorte native...), incluez le package ElectronNET.API NuGet dans votre application ASP.NET Core.
PM > Install-Package ElectronNET.API
Vous démarrez Electron.NET avec une extension UseElectron
WebHostBuilder et ouvrez la fenêtre Electron :
using ElectronNET . API ;
using ElectronNET . API . Entities ;
var builder = WebApplication . CreateBuilder ( args ) ;
builder . WebHost . UseElectron ( args ) ;
// Is optional, but you can use the Electron.NET API-Classes directly with DI (relevant if you want more encoupled code)
builder . Services . AddElectron ( ) ;
var app = builder . Build ( ) ;
.. .
await app . StartAsync ( ) ;
// Open the Electron-Window here
await Electron . WindowManager . CreateWindowAsync ( ) ;
app . WaitForShutdown ( ) ;
Vous démarrez Electron.NET avec une extension UseElectron
WebHostBuilder.
public static IHostBuilder CreateHostBuilder ( string [ ] args ) =>
Host . CreateDefaultBuilder ( args )
. ConfigureWebHostDefaults ( webBuilder =>
{
webBuilder . UseElectron ( args ) ;
webBuilder . UseStartup < Startup > ( ) ;
} ) ;
Ouvrez la fenêtre Electron dans le fichier Startup.cs :
public void Configure ( IApplicationBuilder app , IWebHostEnvironment env )
{
//...
Electron . WindowManager . CreateWindowAsync ( ) ;
}
Pour démarrer l'application assurez-vous d'avoir installé les packages "ElectronNET.CLI" comme outil global :
dotnet tool install ElectronNET.CLI -g
Dans un premier temps, vous avez besoin d’une initialisation du projet Electron.NET. Tapez la commande suivante dans votre dossier ASP.NET Core :
electronize init
electronize start
Seul le premier
electronize start
est lent. La suite ira plus vite.
L'observateur de fichiers est inclus avec la version 8.31.1 d'Electron.NET. Par exemple, une modification de fichier peut déclencher une compilation, une exécution de test ou un déploiement. La fenêtre Electron.NET s'actualisera automatiquement et les nouvelles modifications de code seront visibles plus rapidement. La commande Electron.NET CLI suivante est requise :
electronize start /watch
Seul le premier
electronize start
est lent. La suite ira plus vite.
Démarrez votre application Electron.NET avec la commande Electron.NET CLI. Dans Visual Studio, attachez-le à votre instance d’application en cours d’exécution. Allez dans le menu Debug et cliquez sur Attach to Process... . Triez par nom de projet sur la droite et sélectionnez-le dans la liste.
Une documentation complète suivra. En attendant, jetez un œil au code source de l’exemple d’application :
Démos de l'API Electron.NET
Dans cette vidéo YouTube, nous vous montrons comment créer un nouveau projet, utiliser l'API Electron.NET, déboguer une application et créer une application de bureau exécutable pour Windows : Electron.NET - Mise en route
Ici, vous avez également besoin de la CLI Electron.NET. Tapez la commande suivante dans votre dossier ASP.NET Core :
electronize build /target win
Des plateformes supplémentaires sont disponibles :
electronize build /target win
electronize build /target osx
electronize build /target linux
Ces trois cibles « par défaut » produiront des packages x64 pour ces plates-formes.
Pour certains packages NuGet ou certains scénarios, vous souhaiterez peut-être créer une application x86 pure. Pour prendre en charge ces éléments, vous pouvez définir le runtime .NET Core souhaité, la plate-forme électronique et l'architecture électronique comme ceci :
electronize build /target custom " win7-x86;win32 " /electron-arch ia32
Le résultat final devrait être une application électronique dans votre dossier /bin/desktop .
Les versions macOS ne peuvent pas être créées sur les machines Windows car elles nécessitent des liens symboliques qui ne sont pas pris en charge sous Windows (selon ce problème Electron). Les versions macOS peuvent être produites sur des machines Linux ou macOS.
Après une mise à jour du dernier package Electron.API, une mise à jour vers le dernier Electron.CLI est toujours requise. De plus, mettez toujours à jour la CLI via NuGet :
dotnet tool update ElectronNET.CLI -g
Voir aussi la liste des contributeurs ayant participé à ce projet.
N'hésitez pas à soumettre une pull request si vous trouvez des bugs (pour voir une liste des problèmes actifs, visitez la section Problèmes. Veuillez vous assurer que tous les commits sont correctement documentés.
Cette vidéo fournit une introduction au développement pour Electron.NET : Electron.NET - Contributing Getting Started
Ce référentiel se compose des parties principales (API et CLI) et de sa propre application ASP.NET Core « terrain de jeu ». Les deux parties principales produisent des packages NuGet locaux, versionnés avec 99.0.0. La première chose dont vous aurez besoin est d'exécuter l'un des scripts de construction (.cmd ou .ps1 pour Windows, le .sh pour macOS/Linux).
Si vous recherchez des projets de démonstration purs, consultez les autres référentiels.
Le problème avec ce référentiel est que NuGet a un cache assez agressif, voir ici pour plus d'informations.
Nous effectuons ce travail open source pendant notre temps libre. Si vous souhaitez que nous y consacrions plus de temps, veuillez faire un don. Le don peut être utilisé pour augmenter la priorité de certains problèmes. Merci!
Vous pouvez également envisager d'utiliser un parrainage GitHub pour les principaux responsables :
Tout soutien apprécié ! ?
Sous licence MIT. Voir LICENCE pour plus de détails.
Apprécier!
Assurez-vous de disposer également de la nouvelle version Electron.NET API & CLI 9.31.2.
dotnet tool update ElectronNET.CLI -g
Celui-ci utilise désormais electronic-builder et la configuration nécessaire à la construction est effectuée dans le fichier electronic.manifest.json (sur la partie build). De plus, vos propres configurations Electron.NET sont stockées (à la racine).
Veuillez vous assurer que votre fichier electronic.manifest.json a la nouvelle structure suivante :
{
"executable" : " {{executable}} " ,
"splashscreen" : {
"imageFile" : " "
},
"name" : " {{executable}} " ,
"author" : " " ,
"singleInstance" : false ,
"build" : {
"appId" : " com.{{executable}}.app " ,
"productName" : " {{executable}} " ,
"copyright" : " Copyright © 2020 " ,
"buildVersion" : " 1.0.0 " ,
"compression" : " maximum " ,
"directories" : {
"output" : " ../../../bin/Desktop "
},
"extraResources" : [
{
"from" : " ./bin " ,
"to" : " bin " ,
"filter" : [ " **/* " ]
}
],
"files" : [
{
"from" : " ./ElectronHostHook/node_modules " ,
"to" : " ElectronHostHook/node_modules " ,
"filter" : [ " **/* " ]
},
" **/* "
]
}
}
Dans la version 0.0.9, la CLI n'était pas un outil global et devait être enregistrée comme ceci dans le .csproj :
< ItemGroup >
< DotNetCliToolReference Include = " ElectronNET.CLI " Version = " 0.0.9 " />
</ ItemGroup >
Après avoir modifié le fichier .csproj , vous devez restaurer vos packages NuGet dans votre projet. Exécutez la commande suivante dans votre dossier ASP.NET Core :
dotnet restore
Si vous utilisez toujours cette version, vous devrez l'invoquer comme ceci :
electronize ...
Electron.NET nécessite que l'intégration Node.js soit activée pour qu'IPC fonctionne. Si vous n'utilisez pas la fonctionnalité IPC, vous pouvez désactiver l'intégration de Node.js comme ceci :
WebPreferences wp = new WebPreferences ( ) ;
wp . NodeIntegration = false ;
BrowserWindowOptions browserWindowOptions = new BrowserWindowOptions
{
WebPreferences = wp
} ;
ElectronNET.API peut être ajouté à votre conteneur DI dans la classe Startup
. Tous les modules disponibles dans Electron seront ajoutés en tant que Singletons.
using ElectronNET . API ;
public void ConfigureServices ( IServiceCollection services )
{
services . AddElectron ( ) ;
}