# xmaxcooking/wix-dotnet-starter architecture

> Architecture diagram of the GitHub repository xmaxcooking/wix-dotnet-starter, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/xmaxcooking/wix-dotnet-starter
- Repository: https://github.com/xmaxcooking/wix-dotnet-starter
- Video tour (about a minute): https://gitdiagram.com/xmaxcooking/wix-dotnet-starter/video

## Overview

This is a .NET starter template: its sample WinForms app displays in-memory customer records, while WiX MSI and Burn projects demonstrate packaging, prerequisites, and install-time actions. The README documents the installer and bundle wiring; sampled source confirms the app/data calls and custom-action behavior, but not the WiX authoring details themselves.

Main entry points: [`installer/App.Bundle/Bundle.wxs`](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Bundle.wxs) (Burn bootstrapper), [`src/App.WinForms/MainForm.cs`](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/MainForm.cs) (Customer form), [`installer/App.Installer/Product.wxs`](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/Product.wxs) (MSI package), [`src/App.Core/SampleData.cs`](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.Core/SampleData.cs) (Sample data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_application["Sample application"]
  node_app_entry["App entry point<br/>[Program.cs]"]
  node_main_form["Customer form<br/>[MainForm.cs]"]
  node_form_layout["Grid layout"]
  node_sample_data["Sample data<br/>[SampleData.cs]"]
  node_customer["Customer model<br/>[Customer.cs]"]
end

subgraph group_msi["MSI installation"]
  node_msi_package["MSI package<br/>[Product.wxs]"]
  node_msi_components["App components<br/>[Components.wxs]"]
  node_custom_action_authoring["Action authoring<br/>[CustomActions.wxs]"]
  node_actions["Managed actions<br/>[Actions.cs]"]
  node_marker_file["Install marker"]
end

subgraph group_bundle["Burn bundle"]
  node_install_tool["Install-time tool<br/>[Program.cs]"]
  node_bundle_authoring["Burn bootstrapper<br/>[Bundle.wxs]"]
  node_runtime_package[".NET runtime package"]
  node_install_tool_package["Tool package<br/>[InstallTool.wxs]"]
end

node_user(("App user"))
node_desktop_runtime[".NET Desktop Runtime"]

node_user -->|"launches"| node_app_entry
node_app_entry -->|"opens"| node_main_form
node_main_form -->|"initializes"| node_form_layout
node_main_form -->|"requests customers"| node_sample_data
node_sample_data -->|"creates records"| node_customer
node_user -->|"runs installer"| node_bundle_authoring
node_bundle_authoring -->|"chains"| node_runtime_package
node_runtime_package -->|"installs"| node_desktop_runtime
node_bundle_authoring -->|"chains"| node_msi_package
node_bundle_authoring -->|"chains"| node_install_tool_package
node_install_tool_package -->|"launches"| node_install_tool
node_install_tool -->|"requests customers"| node_sample_data
node_msi_package -->|"packages files"| node_msi_components
node_msi_package -->|"schedules actions"| node_custom_action_authoring
node_custom_action_authoring -->|"invokes"| node_actions
node_actions -->|"writes"| node_marker_file

click node_app_entry "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/Program.cs"
click node_main_form "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/MainForm.cs"
click node_form_layout "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/MainForm.Designer.cs"
click node_sample_data "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.Core/SampleData.cs"
click node_customer "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.Core/Models/Customer.cs"
click node_install_tool "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.InstallTool/Program.cs"
click node_bundle_authoring "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Bundle.wxs"
click node_runtime_package "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Installers/DotNetDesktopRuntime.wxs"
click node_install_tool_package "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Installers/InstallTool.wxs"
click node_msi_package "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/Product.wxs"
click node_msi_components "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/Components.wxs"
click node_custom_action_authoring "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/CustomActions.wxs"
click node_actions "https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Actions/Actions.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app_entry,node_main_form,node_form_layout,node_sample_data,node_customer,node_user toneBlue
class node_msi_package,node_msi_components,node_custom_action_authoring,node_actions,node_marker_file toneAmber
class node_install_tool,node_bundle_authoring,node_runtime_package,node_install_tool_package toneMint
class node_desktop_runtime toneIndigo
```

## Components

### Sample application

- [App entry point](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/Program.cs): `src/App.WinForms/Program.cs`
- [Customer form](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/MainForm.cs): `src/App.WinForms/MainForm.cs`
- [Grid layout](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.WinForms/MainForm.Designer.cs): `src/App.WinForms/MainForm.Designer.cs`
- [Sample data](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.Core/SampleData.cs): `src/App.Core/SampleData.cs`
- [Customer model](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/src/App.Core/Models/Customer.cs): `src/App.Core/Models/Customer.cs`

### MSI installation

- [MSI package](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/Product.wxs): `installer/App.Installer/Product.wxs`
- [App components](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/Components.wxs): `installer/App.Installer/Components.wxs`
- [Action authoring](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Installer/CustomActions.wxs): `installer/App.Installer/CustomActions.wxs`
- [Managed actions](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Actions/Actions.cs): `installer/App.Actions/Actions.cs`
- **Install marker**

### Burn bundle

- [Install-time tool](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.InstallTool/Program.cs): `installer/App.InstallTool/Program.cs`
- [Burn bootstrapper](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Bundle.wxs): `installer/App.Bundle/Bundle.wxs`
- [.NET runtime package](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Installers/DotNetDesktopRuntime.wxs): `installer/App.Bundle/Installers/DotNetDesktopRuntime.wxs`
- [Tool package](https://github.com/xmaxcooking/wix-dotnet-starter/blob/master/installer/App.Bundle/Installers/InstallTool.wxs): `installer/App.Bundle/Installers/InstallTool.wxs`

### Other components

- **App user**
- **.NET Desktop Runtime**

## Connections

- App user → App entry point: launches
- App entry point → Customer form: opens
- Customer form → Grid layout: initializes
- Customer form → Sample data: requests customers
- Sample data → Customer model: creates records
- App user → Burn bootstrapper: runs installer
- Burn bootstrapper → .NET runtime package: chains
- .NET runtime package → .NET Desktop Runtime: installs
- Burn bootstrapper → MSI package: chains
- Burn bootstrapper → Tool package: chains
- Tool package → Install-time tool: launches
- Install-time tool → Sample data: requests customers
- MSI package → App components: packages files
- MSI package → Action authoring: schedules actions
- Action authoring → Managed actions: invokes
- Managed actions → Install marker: writes
