Szukając dostępnych opcji dla aplikacji desktopowych z użyciem .net core natrafiłem na Electron.NET. Electron.NET jest połączeniem electron i asp.net core. Niewątpliwym atutuem Electron.NET jest też to, że jest cross-platform. Chciałbym zaorezentować Ci jak łatwo tworzy się przykładowy hello world.
Zacznijmy od zainstalowania Electron.NET tools:
dotnet tool install ElectronNET.CLI -g
Uwórzmy solucję i projekt:
dotnet new sln -n ElectronHelloWorld dotnet new razor -lang C# -n ElectronApplication -o ElectronApplication
Myślę, że nadszedł już najwyższy czas na dodanie biblioteki Electron.NET do naszego projektu:
dotnet add package ElectronNET.API
Teraz musimy wywołać metodę UseElectron w Program.cs
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseElectron(args);
webBuilder.UseStartup<Startup>();
});
Teraz w pliku Startup.cs w metodzie Configure na samym końcu dodajmy Task.Run(async () => await Electron.WindowManager.CreateWindowAsync());
Finalnie będzie to wyglądać tak:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
});
Task.Run(async () => await Electron.WindowManager.CreateWindowAsync());
}
W folderze ElectronApplication wywołaj instrukcję:
electronize init electronize start
Powinieneś zobaczyć nasze hello world:

Myślę, że ta biblioteka na pewno jest jedną z opcji, jaką możesz wybrać, jeśli zamierzasz utworzyć aplikację działającą na windows/linux/macOS.