VijayAnand.MauiTemplates
1.7.1
Prefix Reserved
See the version list below for details.
dotnet new install VijayAnand.MauiTemplates::1.7.1
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:
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
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.
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
.NET MAUI Class Library:
dotnet new mauiclasslib -n MyApp.Core
Option to include NuGet packages:
dotnet new mauiclasslib -n MyApp.Core -it -im -imt
Shared Class Library:
dotnet new sharedclasslib -n MyApp.UI
Option to include NuGet packages:
dotnet new sharedclasslib -n MyApp.UI -ife -ift -ifm -imt -imm -inmt
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.1.0 | 125 | 11/29/2024 |
6.0.0 | 66 | 11/19/2024 |
5.15.0 | 111 | 10/23/2024 |
5.14.0 | 74 | 10/10/2024 |
5.13.0 | 119 | 9/13/2024 |
5.12.1 | 108 | 8/15/2024 |
5.12.0 | 66 | 8/14/2024 |
5.11.0 | 60 | 8/5/2024 |
5.10.1 | 49 | 8/1/2024 |
5.10.0 | 70 | 7/26/2024 |
5.9.0 | 91 | 7/9/2024 |
5.8.0 | 65 | 7/5/2024 |
5.7.0 | 69 | 6/28/2024 |
5.6.2 | 82 | 6/13/2024 |
5.6.1 | 56 | 6/12/2024 |
5.6.0 | 55 | 6/11/2024 |
5.5.0 | 70 | 6/6/2024 |
5.4.0 | 237 | 5/22/2024 |
5.3.0 | 256 | 5/14/2024 |
5.2.1 | 134 | 4/17/2024 |
5.2.0 | 83 | 4/10/2024 |
5.1.0 | 403 | 3/12/2024 |
5.0.1 | 733 | 2/18/2024 |
5.0.0 | 189 | 2/14/2024 |
4.9.0 | 224 | 2/8/2024 |
4.8.1 | 609 | 1/18/2024 |
4.8.0 | 154 | 1/15/2024 |
4.7.0 | 373 | 1/4/2024 |
4.6.0 | 1,063 | 11/30/2023 |
4.5.0 | 236 | 11/24/2023 |
4.4.0 | 365 | 11/14/2023 |
4.4.0-preview.5 | 182 | 11/10/2023 |
4.4.0-preview.4 | 101 | 11/9/2023 |
4.4.0-preview.3 | 307 | 10/30/2023 |
4.4.0-preview.2 | 376 | 10/18/2023 |
4.4.0-preview.1 | 105 | 10/18/2023 |
4.3.0 | 289 | 10/13/2023 |
4.2.2 | 252 | 10/7/2023 |
4.2.1 | 182 | 10/4/2023 |
4.2.0 | 120 | 10/4/2023 |
4.1.1 | 146 | 9/26/2023 |
4.1.0 | 173 | 9/13/2023 |
4.0.1 | 172 | 8/27/2023 |
4.0.0 | 141 | 8/17/2023 |
3.6.0 | 147 | 8/10/2023 |
3.5.0 | 181 | 7/14/2023 |
3.4.1 | 193 | 6/14/2023 |
3.4.0 | 123 | 6/13/2023 |
3.3.2 | 172 | 5/18/2023 |
3.3.1 | 122 | 5/17/2023 |
3.3.0 | 126 | 5/16/2023 |
3.2.4 | 197 | 4/20/2023 |
3.2.3 | 145 | 4/17/2023 |
3.2.2 | 135 | 4/14/2023 |
3.2.1 | 136 | 4/11/2023 |
3.2.0 | 137 | 4/5/2023 |
3.2.0-preview.6 | 119 | 4/3/2023 |
3.2.0-preview.5 | 117 | 4/2/2023 |
3.2.0-preview.4 | 116 | 3/30/2023 |
3.2.0-preview.3 | 122 | 3/27/2023 |
3.2.0-preview.2 | 121 | 3/25/2023 |
3.2.0-preview.1 | 116 | 3/24/2023 |
3.1.0 | 181 | 3/23/2023 |
3.1.0-preview.9 | 115 | 3/20/2023 |
3.1.0-preview.8 | 122 | 3/18/2023 |
3.1.0-preview.7 | 121 | 3/15/2023 |
3.1.0-preview.6 | 116 | 3/14/2023 |
3.1.0-preview.5 | 118 | 3/11/2023 |
3.1.0-preview.4 | 113 | 3/9/2023 |
3.1.0-preview.3 | 121 | 3/7/2023 |
3.1.0-preview.2 | 117 | 3/4/2023 |
3.1.0-preview.1 | 118 | 3/3/2023 |
3.0.2 | 203 | 3/6/2023 |
3.0.1 | 144 | 3/3/2023 |
3.0.0 | 167 | 2/22/2023 |
2.4.1 | 152 | 2/17/2023 |
2.4.0 | 165 | 2/6/2023 |
2.3.1 | 187 | 1/27/2023 |
2.3.0 | 159 | 1/25/2023 |
2.2.0 | 191 | 12/19/2022 |
2.1.3 | 1,170 | 11/23/2022 |
2.1.2 | 370 | 11/18/2022 |
2.1.1 | 340 | 11/10/2022 |
2.1.0 | 335 | 11/8/2022 |
2.0.3 | 401 | 10/26/2022 |
2.0.2 | 400 | 10/25/2022 |
2.0.1 | 442 | 10/21/2022 |
2.0.0 | 469 | 10/4/2022 |
1.7.3 | 587 | 8/5/2022 |
1.7.2 | 620 | 6/17/2022 |
1.7.1 | 484 | 6/7/2022 |
1.7.0 | 522 | 5/24/2022 |
1.6.0 | 468 | 5/23/2022 |
1.5.0 | 525 | 5/12/2022 |
1.4.1 | 568 | 4/28/2022 |
1.4.0 | 461 | 4/27/2022 |
1.3.1 | 518 | 4/19/2022 |
1.3.0 | 509 | 4/14/2022 |
1.2.0 | 526 | 3/29/2022 |
1.1.3 | 588 | 2/19/2022 |
1.1.2 | 460 | 2/18/2022 |
1.1.1 | 471 | 2/16/2022 |
1.1.0 | 438 | 2/16/2022 |
1.0.8 | 460 | 2/14/2022 |
1.0.7 | 450 | 2/14/2022 |
1.0.6 | 472 | 2/1/2022 |
1.0.5 | 452 | 1/31/2022 |
1.0.4 | 399 | 11/9/2021 |
1.0.3 | 410 | 10/15/2021 |
1.0.2 | 1,007 | 8/16/2021 |
1.0.1 | 439 | 8/13/2021 |
1.0.0 | 378 | 8/12/2021 |
What's new in ver. 1.7.1:
-------------------------
Introduced a new parameter to include all supported packages in the Shared Class Library template.
-asp | --all-supported-packages
Which will add reference to all 6 supported NuGet packages.
Included IsExternalInit type definition to support C# Records while compiling for Xamarin.Forms
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.