# Package Description
ElectronNET.Core consists of three specialized NuGet packages designed for different development scenarios and project architectures.
## 📦 Package Overview
### ElectronNET.Core (Main Package)
**Primary package for Electron.NET applications**
- **Build system integration** - MSBuild targets and tasks for Electron
- **Project system extensions** - Visual Studio designer integration
- **Runtime orchestration** - Process lifecycle management
- **Automatic configuration** - Generates electron-builder.json and package.json
- **Includes ElectronNET.Core.Api** as a dependency
**When to use:**
- Main application projects (startup projects)
- Projects that need full Electron.NET functionality
- Applications requiring build-time Electron configuration
### ElectronNET.Core.Api (API Package)
**Pure API definitions without build integration**
- **Electron API wrappers** - Complete Electron API surface
- **Type definitions** - Full TypeScript-style IntelliSense
- **No build dependencies** - Clean API-only package
- **Multi-platform support** - Windows, macOS, Linux
**When to use:**
- Class library projects that interact with Electron APIs
- Projects that only need API access without build integration
- Multi-project solutions where only the startup project needs build integration
### ElectronNET.Core.AspNet (ASP.NET Integration)
**ASP.NET-specific runtime components**
- **ASP.NET middleware** - UseElectron() extension methods
- **WebHost integration** - Seamless ASP.NET + Electron hosting
- **Hot Reload support** - Enhanced debugging experience
- **Web-specific optimizations** - ASP.NET tailored performance
**When to use:**
- ASP.NET Core projects building Electron applications
- Applications requiring web server functionality
- Projects using MVC, Razor Pages, or Blazor
## 🏗 Architecture Benefits
### Separation of Concerns
- **Build logic separate from API** - Clean dependency management
- **Optional ASP.NET integration** - Use only what you need
- **Multi-project friendly** - Share APIs across projects without build conflicts
### Project Scenarios
**Single Project (ASP.NET):**
```xml
```
**Single Project (Console):**
```xml
```
**Multi-Project Solution (ASP.NET):**
```xml
```
**Multi-Project Solution (Console):**
```xml
```
## 🔗 Dependency Chain
```
ElectronNET.Core.AspNet → ElectronNET.Core.Api
ElectronNET.Core → ElectronNET.Core.Api
```
- **ElectronNET.Core.AspNet** depends on ElectronNET.Core.Api
- **ElectronNET.Core** depends on ElectronNET.Core.Api
- **ElectronNET.Core.Api** has no dependencies
## 💡 Recommendations
✅ **Start with ElectronNET.Core** for new projects
✅ **Add ElectronNET.Core.AspNet** only for ASP.NET applications
✅ **Use ElectronNET.Core.Api** for class libraries and API-only scenarios
✅ **Multi-project solutions** benefit from the modular architecture