# ASP.NET Core Setup ASP.NET Core remains the recommended approach for complex web applications with ElectronNET.Core, providing all the benefits of the ASP.NET ecosystem along with enhanced Electron integration. ## 🛠 System Requirements See [System Requirements](../GettingStarted/System-Requirements.md). ## 🚀 Quick Start ### 1. Create ASP.NET Core Project #### Visual Studio Create a new ASP.NET Core Web App in Visual Studio by selecting **New Project** and choosing one of the ASP.NET Core project templates. #### From the command line ```bash dotnet new webapp -n MyElectronWebApp cd MyElectronWebApp ``` ### 2. Install NuGet Packages #### Visual Studio Right-click the solution and select **Manage Nuget Packages**. Finr and install `ElectronNET.Core` as well as `ElectronNET.Core.AspNet`. #### From the command line ```powershell dotnet add package ElectronNET.Core dotnet add package ElectronNET.Core.AspNet ``` > [!Note] > The API package is automatically included as a dependency of `ElectronNET.Core`. ### 3. Configure Program.cs Update your `Program.cs` to enable Electron.NET: ```csharp using ElectronNET.API; using ElectronNET.API.Entities; public class Program { public static void Main(string[] args) { var builder = WebApplication.CreateBuilder(args); builder.Services.AddRazorPages(); // Add this line to enable Electron.NET: builder.UseElectron(args, ElectronAppReady); var app = builder.Build(); if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Error"); } app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.MapRazorPages(); app.Run(); } public static async Task ElectronAppReady() { var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions { Show = false }); browserWindow.OnReadyToShow += () => browserWindow.Show(); } } ``` #### ASP.NET Port If you want to launch a specific URL, you can retrieve the actual ASP.NET port from the new `ElectronNetRuntime` static class, for example: ```csharp await browserWindow.WebContents .LoadURLAsync($"http://localhost:{ElectronNetRuntime.AspNetWebPort}/mypage.html"); ``` ### 4. Alternative: IWebHostBuilder Setup For projects using the traditional `Startup.cs` pattern, please see "Traditional ASP.NET Core" in the [Migration Guide](../Core/Migration-Guide.md). ### 5. Dependency Injection ElectronNET.API can be added to your DI container within the `Startup` class. All of the modules available in Electron will be added as Singletons. ```csharp using ElectronNET.API; public void ConfigureServices(IServiceCollection services) { services.AddElectron(); } ``` ## 🚀 Next Steps - **[Debugging](../Using/Debugging.md)** - Learn about ASP.NET debugging features - **[Package Building](../Using/Package-Building.md)** - Create distributable packages - **[Startup Methods](../Using/Startup-Methods.md)** - Understanding launch scenarios ## 💡 Benefits of ASP.NET + Electron ✅ **Full Web Stack** - Use MVC, Razor Pages, Blazor, and all ASP.NET features ✅ **Hot Reload** - Edit ASP.NET code and see changes instantly ✅ **Rich Ecosystem** - Access to thousands of ASP.NET packages ✅ **Modern Development** - Latest C# features and ASP.NET patterns ✅ **Scalable Architecture** - Build complex, maintainable applications