VijayAnand.MauiTemplates
1.7.3
Prefix Reserved
See the version list below for details.
dotnet new install VijayAnand.MauiTemplates::1.7.3
Project and Item Templates for developing .NET MAUI App that runs on iOS, Android, macOS, and Windows
- All-in-One project template for .NET MAUI App and is named as
mauiapp
- .NET MAUI Class Library project template and is named as
mauiclasslib
- Shared Class Library (Xamarin.Forms and .NET MAUI) project template and is named as
sharedclasslib
Item templates for the following:
Item | Template Name |
---|---|
ContentPage (XAML) | maui-page |
ContentPage (C#) | maui-page-cs |
ContentView (XAML) | maui-view |
ContentView (C#) | maui-view-cs |
Shell (XAML) | maui-shell |
ResourceDictionary (XAML) | maui-resdict |
All of these templates currently target .NET MAUI GA
, stable release as of May 2022.
To install the template NuGet package, use the below .NET CLI command:
dotnet new --install VijayAnand.MauiTemplates
If you've already installed this package, then it can be updated to the latest version with the below command:
dotnet new --update-check
dotnet new --update-apply
Use the below .NET CLI command to create the All-in-One .NET MAUI App, library project, pages, and views out these templates:
Note: Parameter values are case-insensitive.
Both .NET MAUI App and Class Library templates take the below optional Boolean parameters to include the officially supported CommunityToolkit NuGet packages:
And now conditional compilation can be configured so that platform source files can be defined anywhere in the project provided they follow a naming convention as mentioned below.
This will allow maintaining related source files in the same place, especially MAUI Handlers.
- *.Standard.cs - Files targeting the BCL
- *.Android.cs - Files specific to Android
- *.iOS.cs - Files shared with both iOS and MacCatalyst
- *.MacCatalyst.cs - Files specific to MacCatalyst
- *.Tizen.cs - Files specific to Tizen
- *.Windows.cs - Files specific to Windows
Specifying the parameter name, either in short or full notation, implies that it is defined.
-it
|--include-toolkit
- Default isfalse
-im
|--include-markup
- Default isfalse
-imt
|--include-mvvm-toolkit
- Default isfalse
-cc
|--conditional-compilation
- Default isfalse
All-in-One .NET MAUI App project takes one additional parameter to define the application design pattern:
-dp
|--design-pattern
Can take any one of the following values, with default value set to Plain
:
Parameter Value | Description |
---|---|
Plain | App configured to work with a single, initial screen. |
Hierarchical | App configured to work in a hierarchical pattern using NavigationPage. |
Tab | App configured to work in a Tabbed fashion using TabbedPage. |
Shell | App configured to work with Routes using Shell page. |
Hybrid | App configured to work in a Hybrid fashion using BlazorWebView. |
Shared Class Library template take the below optional Boolean parameters to include the officially supported NuGet packages:
Specifying the parameter name, either in short or full notation, implies that it is defined.
Single parameter to include all the supported NuGet packages:
-asp
|--all-supported-packages
- Default isfalse
Specific to Xamarin.Forms
:
-ife
|--include-forms-essentials
- Default isfalse
-ift
|--include-forms-toolkit
- Default isfalse
-ifm
|--include-forms-markup
- Default isfalse
Specific to .NET MAUI
:
-imt
|--include-maui-toolkit
- Default isfalse
-imm
|--include-maui-markup
- Default isfalse
Common to both:
-inmt
|--include-mvvm-toolkit
- Default isfalse
For more details: run this command in the terminal (use -h
to save some keystrokes):
dotnet new mauiapp --help
dotnet new mauiclasslib --help
dotnet new sharedclasslib --help
.NET MAUI App:
dotnet new mauiapp -n MyApp -dp Hybrid
Option to include NuGet packages:
dotnet new mauiapp -n MyApp -dp Shell -it -im -imt
Option to configure conditional compilation:
dotnet new mauiapp -n MyApp -dp Shell -cc
.NET MAUI Class Library:
dotnet new mauiclasslib -n MyApp.Core
Option to include NuGet packages:
dotnet new mauiclasslib -n MyApp.Core -it -im -imt
Option to configure conditional compilation:
dotnet new mauiclasslib -n MyApp.Core -cc
Shared Class Library:
dotnet new sharedclasslib -n MyApp.UI
Option to include all supported NuGet packages:
dotnet new sharedclasslib -n MyApp.UI -asp
Pages:
dotnet new maui-page -n LoginPage -na MyApp.Views
dotnet new maui-page-cs -n HomePage -na MyApp.Views
Views:
dotnet new maui-view -n CardView -na MyApp.Views
dotnet new maui-view-cs -n OrderView -na MyApp.Views
Shell:
dotnet new maui-shell -n AppShell -na MyApp
Resource Dictionary:
With code-behind C# file:
dotnet new maui-resdict -n DarkTheme -na MyApp
Without code-behind C# file (Here -ncb
| --no-code-behind
denotes the option to exclude the C# file):
dotnet new maui-resdict -n DarkTheme -na MyApp -ncb
In all the examples, -n
denotes the name of the project/page/view that is to be created (for pages/views, don't need to suffix it with .xaml, it will be added automatically) (Can also be specified as --name
).
Note: If name
parameter input is not provided, the .NET CLI template engine will take the current folder name in the context as its name (default behavior).
And -na
denotes the namespace under which the file is to be created (Can also be specified as --namespace
).
-
.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 |
---|---|---|
6.0.0 | 47 | 11/19/2024 |
5.15.0 | 105 | 10/23/2024 |
5.14.0 | 70 | 10/10/2024 |
5.13.0 | 115 | 9/13/2024 |
5.12.1 | 104 | 8/15/2024 |
5.12.0 | 62 | 8/14/2024 |
5.11.0 | 56 | 8/5/2024 |
5.10.1 | 45 | 8/1/2024 |
5.10.0 | 64 | 7/26/2024 |
5.9.0 | 87 | 7/9/2024 |
5.8.0 | 61 | 7/5/2024 |
5.7.0 | 65 | 6/28/2024 |
5.6.2 | 78 | 6/13/2024 |
5.6.1 | 50 | 6/12/2024 |
5.6.0 | 51 | 6/11/2024 |
5.5.0 | 66 | 6/6/2024 |
5.4.0 | 233 | 5/22/2024 |
5.3.0 | 252 | 5/14/2024 |
5.2.1 | 130 | 4/17/2024 |
5.2.0 | 79 | 4/10/2024 |
5.1.0 | 399 | 3/12/2024 |
5.0.1 | 729 | 2/18/2024 |
5.0.0 | 185 | 2/14/2024 |
4.9.0 | 216 | 2/8/2024 |
4.8.1 | 605 | 1/18/2024 |
4.8.0 | 150 | 1/15/2024 |
4.7.0 | 369 | 1/4/2024 |
4.6.0 | 1,059 | 11/30/2023 |
4.5.0 | 232 | 11/24/2023 |
4.4.0 | 359 | 11/14/2023 |
4.4.0-preview.5 | 180 | 11/10/2023 |
4.4.0-preview.4 | 99 | 11/9/2023 |
4.4.0-preview.3 | 305 | 10/30/2023 |
4.4.0-preview.2 | 374 | 10/18/2023 |
4.4.0-preview.1 | 103 | 10/18/2023 |
4.3.0 | 285 | 10/13/2023 |
4.2.2 | 248 | 10/7/2023 |
4.2.1 | 178 | 10/4/2023 |
4.2.0 | 116 | 10/4/2023 |
4.1.1 | 142 | 9/26/2023 |
4.1.0 | 169 | 9/13/2023 |
4.0.1 | 168 | 8/27/2023 |
4.0.0 | 137 | 8/17/2023 |
3.6.0 | 142 | 8/10/2023 |
3.5.0 | 177 | 7/14/2023 |
3.4.1 | 189 | 6/14/2023 |
3.4.0 | 119 | 6/13/2023 |
3.3.2 | 168 | 5/18/2023 |
3.3.1 | 118 | 5/17/2023 |
3.3.0 | 122 | 5/16/2023 |
3.2.4 | 193 | 4/20/2023 |
3.2.3 | 141 | 4/17/2023 |
3.2.2 | 131 | 4/14/2023 |
3.2.1 | 132 | 4/11/2023 |
3.2.0 | 133 | 4/5/2023 |
3.2.0-preview.6 | 117 | 4/3/2023 |
3.2.0-preview.5 | 115 | 4/2/2023 |
3.2.0-preview.4 | 114 | 3/30/2023 |
3.2.0-preview.3 | 120 | 3/27/2023 |
3.2.0-preview.2 | 119 | 3/25/2023 |
3.2.0-preview.1 | 114 | 3/24/2023 |
3.1.0 | 177 | 3/23/2023 |
3.1.0-preview.9 | 113 | 3/20/2023 |
3.1.0-preview.8 | 120 | 3/18/2023 |
3.1.0-preview.7 | 117 | 3/15/2023 |
3.1.0-preview.6 | 114 | 3/14/2023 |
3.1.0-preview.5 | 116 | 3/11/2023 |
3.1.0-preview.4 | 111 | 3/9/2023 |
3.1.0-preview.3 | 119 | 3/7/2023 |
3.1.0-preview.2 | 115 | 3/4/2023 |
3.1.0-preview.1 | 116 | 3/3/2023 |
3.0.2 | 199 | 3/6/2023 |
3.0.1 | 140 | 3/3/2023 |
3.0.0 | 163 | 2/22/2023 |
2.4.1 | 148 | 2/17/2023 |
2.4.0 | 161 | 2/6/2023 |
2.3.1 | 183 | 1/27/2023 |
2.3.0 | 155 | 1/25/2023 |
2.2.0 | 187 | 12/19/2022 |
2.1.3 | 1,166 | 11/23/2022 |
2.1.2 | 366 | 11/18/2022 |
2.1.1 | 336 | 11/10/2022 |
2.1.0 | 331 | 11/8/2022 |
2.0.3 | 397 | 10/26/2022 |
2.0.2 | 396 | 10/25/2022 |
2.0.1 | 438 | 10/21/2022 |
2.0.0 | 463 | 10/4/2022 |
1.7.3 | 581 | 8/5/2022 |
1.7.2 | 614 | 6/17/2022 |
1.7.1 | 478 | 6/7/2022 |
1.7.0 | 516 | 5/24/2022 |
1.6.0 | 462 | 5/23/2022 |
1.5.0 | 519 | 5/12/2022 |
1.4.1 | 562 | 4/28/2022 |
1.4.0 | 455 | 4/27/2022 |
1.3.1 | 512 | 4/19/2022 |
1.3.0 | 503 | 4/14/2022 |
1.2.0 | 520 | 3/29/2022 |
1.1.3 | 582 | 2/19/2022 |
1.1.2 | 454 | 2/18/2022 |
1.1.1 | 465 | 2/16/2022 |
1.1.0 | 432 | 2/16/2022 |
1.0.8 | 454 | 2/14/2022 |
1.0.7 | 444 | 2/14/2022 |
1.0.6 | 466 | 2/1/2022 |
1.0.5 | 446 | 1/31/2022 |
1.0.4 | 391 | 11/9/2021 |
1.0.3 | 404 | 10/15/2021 |
1.0.2 | 1,001 | 8/16/2021 |
1.0.1 | 433 | 8/13/2021 |
1.0.0 | 371 | 8/12/2021 |
What's new in ver. 1.7.3:
-------------------------
CommunityToolkit.Mvvm NuGet package is out of preview and now stable, hence package version (8.0.0) updated.
Added the option to configure conditional compilation so that platform source files can be defined anywhere in the project provided they follow a naming convention as mentioned below.
This will allow maintaining related source files in the same place, especially MAUI Handlers.
*.Standard.cs - Files targeting the BCL
*.Android.cs - Files specific to Android
*.iOS.cs - Files shared with both iOS and MacCatalyst
*.MacCatalyst.cs - Files specific to MacCatalyst
*.Tizen.cs - Files specific to Tizen
*.Windows.cs - Files specific to Windows
Parameter name: -cc | --conditional-compilation
Templates have been updated to .NET MAUI GA, stable release version.
Breaking change: To make things easier, All-in-One and Class Library templates parameters for various package inclusion have been updated to Boolean parameter type.
Also check out the newly included project template for creating a Shared Class Library that produces assemblies targeting Xamarin.Forms and .NET MAUI.
With C# Markup, Global usings and Compiler directives, both Xamarin.Forms and .NET MAUI can be targeted from single project.
dotnet new sharedclasslib --name MyApp.UI
In which:
*.forms.cs source files will be specific to Xamarin.Forms
*.maui.cs source files will be specific to .NET MAUI
*.shared.cs / *.logic.cs will be common to both Xamarin.Forms and .NET MAUI
Refer to VijayAnand.Toolkit.Markup NuGet package source made available here https://github.com/egvijayanand/dotnet-maui-toolkit for a sample.
Join me on Developer Thoughts (https://egvijayanand.in/), an exclusive blog for articles on .NET MAUI and Blazor.