VijayAnand.WinUITemplates 3.1.0

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
This package has a SemVer 2.0.0 package version: 3.1.0+sha.e535805.
dotnet new install VijayAnand.WinUITemplates::3.1.0
This package contains a .NET Template Package you can call from the shell/command line.

CLI Project and Item Templates for developing WinUI 3 based Windows Desktop Apps

Item Template Name Type
WinUI 3 App winui Project
WinUI 3 Blazor App winui-blazor Project
WinUI 3 Class Library winuilib Project
WinUI 3 Page winui-page Item
WinUI 3 UserControl winui-usercontrol Item
WinUI 3 Window winui-window Item

All the project templates takes the target framework as an input parameter, can be specified with --framework / -f.

And the supported values are:

  • net6.0
  • net7.0
  • net8.0 (the default value)
  • net9.0

Note: The default value for the framework parameter remains as net8.0 (the latest stable channel), which means to create a project for .NET 9 (the preview channel), an explicit value of net9.0 is to be passed.

Starting with v3.1.0, all three project templates take the below optional parameter support NuGet's Central Package Management (CPM) feature.

  • -cpm | --central-pkg-mgmt - Default value is false

Note: This can also be used in combination with other options.

All these item templates require one mandatory parameter:

  • -n | --name - Name of the item

To install the template NuGet package, use the below .NET CLI command:

Latest stable version:

dotnet new install VijayAnand.WinUITemplates

If you've already installed this package, then it can be updated to the latest version with the below command:

dotnet new update --check-only
dotnet new update

Use the below .NET CLI command to create the projects out these template:

WinUI 3 App:

dotnet new winui -n MyApp
dotnet new winui -n MyApp -f net7.0

.NET 9 Preview:

dotnet new winui -n MyApp -f net9.0

Option to use the CPM feature:

dotnet new winui -n MyApp -cpm

Blazor Hybrid App:

dotnet new winui-blazor -n HybridApp
dotnet new winui-blazor -n HybridApp -f net7.0

.NET 9 Preview:

dotnet new winui-blazor -n HybridApp -f net9.0

Option to use the CPM feature:

dotnet new winui-blazor -n HybridApp -cpm

Library:

dotnet new winuilib -n MyLib
dotnet new winuilib -n MyLib -f net7.0

.NET 9 Preview:

dotnet new winuilib -n MyLib -f net9.0

Option to use the CPM feature:

dotnet new winuilib -n MyLib -cpm

All three project templates take the below optional parameter to include the officially supported CommunityToolkit.Mvvm NuGet package.

  • -imt | --include-mvvm-toolkit - Default value is false
dotnet new winui -n MyApp -imt
dotnet new winui-blazor -n HybridApp -imt
dotnet new winuilib -n MyLib -imt

Use the below .NET CLI command to create the items out these template:

Auto suffixing of the Type name is supported for the files created with the Page and Window item templates.

Page:

dotnet new winui-page -n Order

UserControl:

dotnet new winui-usercontrol -n CardView

Window:

dotnet new winui-window -n Home
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.1.0 794 2/22/2024
3.0.0 91 2/20/2024
2.2.0 601 1/28/2024
2.2.0-preview.4 2,565 10/13/2023
2.2.0-preview.3 59 9/21/2023
2.2.0-preview.2 77 3/30/2023
2.2.0-preview.1 69 3/30/2023
2.1.0 325 3/17/2023
2.0.0 95 3/2/2023
1.0.3 410 11/20/2022
1.0.2 414 11/15/2022
1.0.1 348 11/15/2022

Join me on Developer Thoughts (https://egvijayanand.in/), an exclusive blog for articles on .NET MAUI and Blazor.

What's new in ver. 3.1.0:
-------------------------
Introduced an option to support NuGet's Central Package Management (CPM) feature in the project templates.

-cpm | --central-pkg-mgmt - The default value is false.

Note: This can also be used in combination with other options.

dotnet new winui -o MyApp -cpm

dotnet new winui-blazor -o HybridApp -cpm

dotnet new winuilib -o MyLib -cpm

v3.0.0:

Templates updated for .NET 9 Preview 1.

For this, have introduced an additional option to the framework parameter - net9.0

Note: The default value for the framework parameter remains as net8.0, which means to create a project for .NET 9, an explicit value of net9.0 is to be passed.

dotnet new winui -n MyApp -f net9.0

dotnet new winui-blazor -n HybridApp -f net9.0

dotnet new winuilib -n MyLib -f net9.0

v2.2.0:

1. Templates updated for .NET MAUI stable version.

2. Auto-binding the project's RootNamespace as the namespace for newly created source files from item templates (Supported only on .NET 7 SDK or later).

3. Auto Suffix for the files created with the Page and Window item templates.

Ensure the project is restored before making use of the item templates.

dotnet new winui-page -n Order

dotnet new winui-window -n Home

v2.2.0-preview.4:

1. Templates updated to .NET 8 RC2

v2.2.0-preview.3:

1. Templates updated to .NET 8 RC1 changes

2. The default value for Framework parameter (--framework / -f) is now updated as net8.0

3. Explicit reference to .NET MAUI packages

4. Use of UseRidGraph node to indicate the change in RID behavior

https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/rid-graph

v2.2.0-preview.2:

A maintenance release that addresses solution file issue.

v2.2.0-preview.1:

Added a project template for using Blazor Hybrid on WinUI 3 project using the .NET MAUI Native Embedding

Windows-target of .NET MAUI is nothing but WinUI 3 project

dotnet new winui-blazor -n MyApp

For .NET 8 Preview:

dotnet new winui-blazor -n MyApp -f net8.0

v2.1.0:

1. MVVM is a delightful and development-friendly design pattern to work with. To support this, a new parameter has been introduced in the App project template:

-mvvm | --use-mvvm and its default value is false.

dotnet new winui -n MyApp -mvvm

2. Microsoft.WindowsAppSDK NuGet package version has been made dynamic to pull the latest stable version in the 1.x series.

v2.0.0:

Templates updated to support .NET 8 Previews.

Supported values for target framework parameter, can be specified with --framework / -f

net6.0
net7.0 (the default value)
net8.0

Examples:

dotnet new winui -f net8.0 -o MyApp

dotnet new winuilib -f net8.0 -o MyLib

v1.0.3:

Little housekeeping to make it more reliable.

v1.0.2:

Added Item Templates for WinUI 3 Page, UserControl, and Window.

v1.0.1:

For CLI build to succeed, included the EnableMsixTooling property to the library project template.

v1.0.0:

Initial release of WinUI 3 App and Class Library Templates for CLI.