Skip to content

AvaloniaUI/avalonia-dotnet-templates

Repository files navigation

downloadsCurrent stable version

Avalonia Templates for dotnet new

For more information about dotnet new templates see here.

Installing the templates

Run from a command line:

dotnet new install Avalonia.Templates

The templates should now be available in dotnet new list:

Template Name Short Name Language Tags ----------------------------------- ------------------------- -------- ----------------------------------------- Avalonia .NET App avalonia.app [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS Avalonia .NET MVVM App avalonia.mvvm [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS Avalonia Cross Platform Application avalonia.xplat [C#],F# Desktop/Xaml/Avalonia/Web/Mobile Avalonia Resource Dictionary avalonia.resource Desktop/Xaml/Avalonia/Windows/Linux/macOS Avalonia Styles avalonia.styles Desktop/Xaml/Avalonia/Windows/Linux/macOS Avalonia TemplatedControl avalonia.templatedcontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS Avalonia UserControl avalonia.usercontrol [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS Avalonia Window avalonia.window [C#],F# Desktop/Xaml/Avalonia/Windows/Linux/macOS 

Note:

By default dotnet CLI would create a C# template,if you want to create F# template you will need to add -lang F# to the end of the command.

Creating a new Application

To create a new barebones application called MyApp in its own subdirectory, run:

dotnet new avalonia.app -o MyApp 

Available parameters:

-f, --framework

Description: The target framework for the project.

Options: net9.0, net8.0

By default: net9.0

-av, --avalonia-version

Description: The target version of Avalonia NuGet packages.

By default: 11.3.9

-cb, --compiled-bindings

Description: Defines if CompiledBindings should be enabled by default in the project (only supported in 11.0 version and newer). See documentation for more details.

Options: true, false

By default: true

--no-restore

Description: If specified, skips the automatic restore of the project on create.

Creating a new MVVM Application

MVVM is the recommended pattern for creating Avalonia applications. The MVVM application template uses ReactiveUI to ease building applications with complex interactions.

To create a new MVVM application called MyApp in its own subdirectory, run:

dotnet new avalonia.mvvm -o MyApp 

Available parameters:

-f, --framework

Description: The target framework for the project.

Options: net9.0, net8.0

By default: net9.0

-av, --avalonia-version

Description: The target version of Avalonia NuGet packages.

By default: 11.3.9

-cb, --compiled-bindings

Description: Defines if CompiledBindings should be enabled by default in the project (only supported in 11.0 version and newer). See documentation for more details.

Options: true, false

By default: true

-m, --mvvm

Description: MVVM toolkit to use in the template.

Options: ReactiveUI, CommunityToolkit

By default: ReactiveUI

-rvl, --remove-view-locator

Description: Defines if your app will use default ViewLocator made by Avalonia Team or you are planning to use a custom one. Removing ViewLocator may be useful in code trimming scenarios. Default ViewLocator is not trimming-friendly.

Options: true, false

By default: false

--no-restore

Description: If specified, skips the automatic restore of the project on create.

Creating a new Cross-Platform application

To create a new Cross-Platform application in its own subdirectory, run:

dotnet new avalonia.xplat 

Note: This type of template allows you to create an application that will work on Desktop, Browser and Mobile (iOS & Android). Only available with 11.0 preview versions.

Available parameters:

-cb, --compiled-bindings

Description: Defines if CompiledBindings should be enabled by default in the project. See documentation for more details.

Options: true, false

By default: true

-m, --mvvm

Description: MVVM toolkit to use in the template.

Options: ReactiveUI, CommunityToolkit

By default: ReactiveUI

-av, --avalonia-version

Description: The target version of Avalonia NuGet packages.

By default: 11.3.9

-rvl, --remove-view-locator

Description: Defines if your app will use default ViewLocator made by Avalonia Team or you are planning to use a custom one. Removing ViewLocator may be useful in code trimming scenarios. Default ViewLocator is not trimming-friendly.

Options: true, false

By default: false

-cpm

Description: Defines if your app will use Central Package Management (CPM). If disabled, Directory.Build.props will be created with shared Avalonia version.

Options: true, false

By default: true

Creating a new Window

To create a new Window called MyNewWindow, in the namespace MyApp run:

dotnet new avalonia.window -na MyApp -n MyNewWindow 

Creating a new UserControl

To create a new UserControl called MyNewView, in the namespace MyApp run:

dotnet new avalonia.usercontrol -na MyApp -n MyNewView 

Creating a new Styles list

To create a new Styles list called MyStyles, run:

dotnet new avalonia.styles -n MyStyles 

Creating a new ResourceDictionary

To create a new ResourceDictionary called MyResources, run:

dotnet new avalonia.resource -n MyResources 

About

Avalonia Templates for `dotnet new`

Resources

License

Stars

Watchers

Forks

Packages

No packages published