{"id":15059987,"url":"https://github.com/egvijayanand/dotnet-maui-templates","last_synced_at":"2026-05-02T12:01:43.783Z","repository":{"id":36966940,"uuid":"372180927","full_name":"egvijayanand/dotnet-maui-templates","owner":"egvijayanand","description":".NET MAUI Project and Item Templates for VS2022 and CLI.","archived":false,"fork":false,"pushed_at":"2025-03-21T03:29:01.000Z","size":26875,"stargazers_count":187,"open_issues_count":6,"forks_count":26,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-28T13:10:00.804Z","etag":null,"topics":["android","blazor","cli","code-snippets","desktop","dotnet","dotnet-maui","dotnet6","dotnet8","extensions","hybrid","ios","mac-catalyst","macos","maui-blazor","mobile","templates","tizen","windows","winui3"],"latest_commit_sha":null,"homepage":"https://egvijayanand.in/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/egvijayanand.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["egvijayanand"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":["https://paypal.me/egvijayanand","https://www.buymeacoffee.com/egvijayanand"]}},"created_at":"2021-05-30T10:08:28.000Z","updated_at":"2025-03-21T03:25:18.000Z","dependencies_parsed_at":"2023-02-15T12:16:23.899Z","dependency_job_id":"c07c5ebb-b633-4591-943b-8a2b7c941e92","html_url":"https://github.com/egvijayanand/dotnet-maui-templates","commit_stats":{"total_commits":337,"total_committers":2,"mean_commits":168.5,"dds":"0.0029673590504450953","last_synced_commit":"7ee2493c53a8f417f91b3e498db32eb14601c243"},"previous_names":[],"tags_count":201,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egvijayanand%2Fdotnet-maui-templates","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egvijayanand%2Fdotnet-maui-templates/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egvijayanand%2Fdotnet-maui-templates/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/egvijayanand%2Fdotnet-maui-templates/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/egvijayanand","download_url":"https://codeload.github.com/egvijayanand/dotnet-maui-templates/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247190252,"owners_count":20898702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","blazor","cli","code-snippets","desktop","dotnet","dotnet-maui","dotnet6","dotnet8","extensions","hybrid","ios","mac-catalyst","macos","maui-blazor","mobile","templates","tizen","windows","winui3"],"created_at":"2024-09-24T22:50:50.794Z","updated_at":"2026-05-02T12:01:43.761Z","avatar_url":"https://github.com/egvijayanand.png","language":"C#","funding_links":["https://github.com/sponsors/egvijayanand","https://paypal.me/egvijayanand","https://www.buymeacoffee.com/egvijayanand"],"categories":[],"sub_categories":[],"readme":"## .NET MAUI All-in-One Templates Pack\n\n### Project and Item Templates for .NET MAUI App that runs on Android, iOS, macOS, Windows, and Tizen\n\nThis repository is to host the .NET MAUI Project Templates, Item Templates, and Code Snippets.\n\nJoin me on [**Developer Thoughts**](https://egvijayanand.in/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=templates \"Developer Thoughts\"), an exclusive blog for .NET MAUI and Blazor, for [articles](https://egvijayanand.in/category/net-maui/templates-net-maui/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=templates) on working with these templates and much more.\n\nWe all know that .NET MAUI is an evolution of Xamarin.Forms.\n\nRelease Details:\n\n|Channel|.NET MAUI Version|IDE Version|Release Date|Remarks|\n|:---:|:---:|:---:|:---:|:---:|\n|Stable|.NET 6 SR11 (6.0.553)|VS2022 17.4.x - 17.8.x|Tue, Apr 25, 2023|[Out of Support](https://dotnet.microsoft.com/en-us/platform/support/policy/maui \".NET MAUI Support Policy\")|\n|Stable|.NET 7 SR10 (7.0.101)|VS2022 17.4.x - 17.9.x|Tue, Nov 7, 2023|[Out of Support](https://dotnet.microsoft.com/en-us/platform/support/policy/maui \".NET MAUI Support Policy\")|\n|Stable|[.NET 8 SR10](https://github.com/dotnet/maui/releases/tag/8.0.100 \"Changelog\") (8.0.100) \u003cbr /\u003e _Requires JDK 17 and Android SDK 34_ \u003cbr /\u003e _Requires Apple Xcode 15.4 and Supports Apple Xcode 16_|VS2022 17.12.x|Tue, Nov 12, 2024|[Out of Support](https://dotnet.microsoft.com/en-us/platform/support/policy/maui \".NET MAUI Support Policy\")|\n|Stable|[.NET 9 SR12](https://github.com/dotnet/maui/releases/tag/9.0.120 \"Changelog\") (9.0.120) \u003cbr /\u003e _Requires JDK 17 and Android SDK 35_ \u003cbr /\u003e _Requires Apple Xcode 26_|VS2022 17.14.17|Thu, Oct 16, 2025|Active|\n|Stable|[.NET 10 SR6](https://github.com/dotnet/maui/releases/tag/10.0.60 \"Changelog\") (10.0.60) \u003cbr /\u003e [Release Notes](https://github.com/dotnet/core/blob/main/release-notes/10.0/10.0.0/dotnetmaui.md) \u003cbr /\u003e _Requires JDK 17 and Android SDK 36_ \u003cbr /\u003e _Requires Apple Xcode 26_|VS2026 18.x|Wed, Apr 29, 2026|Active|\n|Preview|[.NET 11 Preview 3](https://github.com/dotnet/maui/releases/tag/11.0.0-preview.3.26203.7 \"Changelog\") (11.0.0-preview.3.26203.7) \u003cbr /\u003e [Release Notes](https://github.com/dotnet/core/blob/main/release-notes/11.0/preview/preview3/dotnetmaui.md) \u003cbr /\u003e _Requires JDK 21 and Android SDK 36.1_ \u003cbr /\u003e _Requires Apple Xcode 26.3_|VS2026 18.x|Tue, Apr 14, 2026|Preview|\n\nVersion History and its dependencies are [here](https://aka.ms/maui/versions).\n\nUse the below commands to verify the version installed:\n\n```shell\ndotnet --version\n```\n```shell\ndotnet workload list\n```\n\nAnd to install a workload, run the following command:\n\nOn Windows, this is to be executed on an `elevated prompt`:\n\n```shell\ndotnet workload install maui\n```\n\nOn macOS:\n\n```shell\nsudo dotnet workload install maui\n```\n\nOn Linux (Only `Android` workload is supported for now):\n\n```shell\nsudo dotnet workload install maui-android\n```\n\nIf already installed, can be updated to the latest version with the below command:\n\n```shell\ndotnet workload update\n```\n\nTemplates have been updated to support .NET MAUI 9, 10, and 11 (Preview) and is available to install from.\n\n|Channel|NuGet|VS Marketplace|\n|:---:|:---:|:---:|\n|Stable|[![VijayAnand.MauiTemplates - NuGet Package](https://badgen.net/nuget/v/VijayAnand.MauiTemplates?icon=nuget\u0026foo=bar)](https://www.nuget.org/packages/VijayAnand.MauiTemplates)|[![.NET MAUI Project and Item Templates - VS Marketplace](https://badgen.net/vs-marketplace/v/egvijayanand.maui-templates?icon=visualstudio\u0026foo=bar)](https://marketplace.visualstudio.com/items?itemName=egvijayanand.maui-templates)|\n\u003c!--\n|Preview|[![VijayAnand.MauiTemplates - NuGet Package](https://badgen.net/nuget/v/VijayAnand.MauiTemplates/pre?icon=nuget\u0026foo=bar)](https://www.nuget.org/packages/VijayAnand.MauiTemplates/absoluteLatest)| - |\n--\u003e\n\n### For Visual Studio users (both VS2022 and VS2026):\n\nTo provide an integrated experience, a VS extension has been developed to host these templates.\n\nThe All-in-One .NET MAUI Templates Pack VS extension (VSIX) is now supported on both **x64 and ARM64** installations of Visual Studio 2022 and 2026. Happy coding!\n\n*Consequently, the minimum supported version of Visual Studio 2022 will be v17.6 or higher.*\n\n**The VS extension v7.9 or higher is now compatible with the Visual Studio 2026 v18.0.**\n\nExtension is made available in the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=egvijayanand.maui-templates \".NET MAUI Templates Pack\") and even more easier, can be installed from within Visual Studio itself (Extensions -\u003e Manage Extensions / Alt + X + M).\n\n![Manage Extensions - Visual Studio](images/vs-manage-extensions.png)\n\nThis has Project Templates for:\n\n* .NET MAUI App - An [All-in-One .NET MAUI App](#all-in-one-net-maui-app-project-template) Project Template - For more details, check out these [articles](https://egvijayanand.in/category/net-maui/templates-net-maui/ \"All-in-One .NET MAUI App Project Template\")\n* [.NET MAUI Class Library](#net-maui-class-library-project-template)\n* [Shared Class Library](#shared-class-library-project-template) (Xamarin.Forms and .NET MAUI)\n\n![Create Project - Visual Studio](images/maui-project-templates.png)\n\nAnd has Item Templates for:\n\n* [Generic Item](#generic-item-templates)\n* [Generic Item (C#)](#generic-item-templates)\n* Content Page\n* Content Page (C#)\n* Content Page (Razor)\n* Content Page with BlazorWebView\n* Content Page with BlazorWebView (C#)\n* Content Page with ViewModel\n* Content Page (C#) with ViewModel\n  - For both the `Page with ViewModel` templates, ensure only the real page name alone is provided as input like `Settings` as the `Page` and `ViewModel` will be suffixed to it like `SettingsPage` and `SettingsViewModel`. And Page will be generated in the `Views` folder and ViewModel will be generated in the `ViewModels` folder.\n  - The ViewModels are generated with the base class titled `BaseViewModel` (implementation left to the user).\n  - Recommended to add [CommunityToolkit.Mvvm](https://www.nuget.org/packages/CommunityToolkit.Mvvm), an officially supported NuGet package, to make it easy to work with MVVM design pattern.\n  - This [MVVM - Made Easy](https://egvijayanand.in/category/mvvm/made-easy/) articles can help you to get started with this brand-new NuGet package.\n* Content View\n* Content View (C#)\n* Content View (Razor)\n* Resource Dictionary\n* Resource Dictionary (XAML only)\n* Shell Page\n* Shell Page (C#)\n* Custom View and Handler (Regular)\n  - Handler definitions generated in the Platforms folder\n* Custom View and Handler (Cond.)\n  - Handler definitions generated in the same folder in conditional compilation format\n* Custom View and Renderer (Regular)\n  - Renderer definitions generated in the Platforms folder\n* Custom View and Renderer (Cond.)\n  - Renderer definitions generated in the same folder in conditional compilation format\n* Comet Page (C#)\n* Partial Class (C#)\n  - Made available in the section titled `Code`\n\\\n\u0026nbsp;\n* For Cond. type template to work properly, ensure Conditional Compilation is enabled (mentioned in detail [**here**](#conditional-compilation \"Conditional Compilation\"))\n\nNow Visual Studio extension is loaded with 25+ C# and XAML Code Snippets.\n\nXAML Snippets for new Layouts, Gestures, Color, Style.\n\nC# Snippets for Properties such as Attached, Bindable, ViewModel and Comet (MVU design pattern).\n\nTypes such as `record` and `record struct`.\n\nSnippets for Method definition, Event Handler definition (async version also).\n\n![Add New Item dialog - Visual Studio](images/add-new-item.png)\n\n### .NET CLI Template\n\nFor making use of these templates cross-platform, have provided it as .NET CLI template package distributed via NuGet.\n\n\u003c!-- [![VijayAnand.MauiTemplates - NuGet Package](https://badgen.net/nuget/v/VijayAnand.MauiTemplates/)](https://www.nuget.org/packages/VijayAnand.MauiTemplates/) --\u003e\n\nInstall the template package from NuGet with the below command.\n\nStable:\n\n```shell\ndotnet new install VijayAnand.MauiTemplates\n```\n\n\u003c!--\nPreview:\n\n```shell\ndotnet new install VijayAnand.MauiTemplates::4.4.0-preview.5\n```\n--\u003e\n\nIf you've already installed this package, then this can be updated to the latest version with the below command.\n\n```shell\ndotnet new update --check-only\n```\n```shell\ndotnet new update\n```\n\nThis comes with with the following templates:\n\nName | Template Name | Type\n:---: | :---: | :---:\n|[All-in-One .NET MAUI App](#all-in-one-net-maui-app-project-template)|mauiapp|Project|\n|[.NET MAUI Class Library](#net-maui-class-library-project-template)|mauiclasslib|Project|\n|[Shared Class Library](#shared-class-library-project-template)|sharedclasslib|Project|\n|[.NET MAUI Item (XAML)](#generic-item-templates)|maui-item|Item|\n|[.NET MAUI Item (C#)](#generic-item-templates)|maui-item-cs|Item|\n|ContentPage (XAML)|maui-page|Item|\n|ContentPage (C#)|maui-page-cs|Item|\n|ContentPage (Razor)|maui-page-razor|Item|\n|ContentView (XAML)|maui-view|Item|\n|ContentView (C#)|maui-view-cs|Item|\n|ContentView (Razor)|maui-view-razor|Item|\n|ResourceDictionary|maui-resdict|Item|\n|ShellPage (XAML)|maui-shell|Item|\n|ShellPage (C#)|maui-shell-cs|Item|\n|ShellPage (Razor)|maui-shell-razor|Item|\n|[ContentPage with ViewModel](#page-with-viewmodel)|maui-mvvm|Item|\n|[ContentPage with ViewModel (C#)](#page-with-viewmodel)|maui-mvvm-cs|Item|\n|ContentPage with BlazorWebView (XAML)|maui-bwv|Item|\n|ContentPage with BlazorWebView (C#)|maui-bwv-cs|Item|\n|[Partial Class (C#)](#partial-class-item-template)|class-cs|Item|\n|[.NET 10 FileApp](#net-10-file-app-item-template)|class-cs|Item|\n\n![All-in-One .NET MAUI App Project Template](images/dotnetmaui-all-in-one-project-template-pinned.png)\n\n### What's New:\n\nStarting with [v2.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/2.0.0) of the template package, to effectively support .NET MAUI on both `.NET 6` and `.NET 7`, CLI project template defines a new parameter named `framework`:\n\nAnd from [v3.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/3.0.0) of the template package, CLI project template `framework` parameter adds `.NET 8` as another option.\n\nAnd from [v4.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/4.0.0) of the template package, CLI project template defines a new parameter named `language`:\n\nAnd from [v4.4.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/4.4.0) of the template package, CLI project template defines a new parameter named `central-pkg-mgmt`:\n\nAnd from [v4.5.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/4.5.0) of the template package, CLI project template defines a new parameter named `include-shared-toolkit`:\n\nAnd from [v4.6.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/4.6.0) of the template package, CLI project template defines a new parameter named `nightly`:\n\nAnd from [v5.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/5.0.0) of the template package, CLI project template `framework` parameter adds `.NET 9` as another option.\n\nAnd from [v5.5.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/5.5.0) of the template package, CLI project template defines a new parameter named `maui-class-library`:\n\nAnd from [v5.7.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/5.7.0) of the template package, Class Library project template support referencing the Maps package.\n\nAnd from [v5.11.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/5.11.0) of the template package, support for XML-based solution file (slnx) format.\n\nAnd from [v5.15.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/5.15.0) of the template package, support to add and configure the Syncfusion.Maui.Toolkit NuGet package.\n\nAnd from [v6.1.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/6.1.0) of the template package, a new option has been included for the design pattern (`-dp`) parameter, named `JSHybrid`, which creates a project using `HybridWebView` with all prerequisites set automatically, requiring no manual intervention.\n\nAnd from [v7.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/7.0.0) of the template package, CLI project template `framework` parameter adds `net10.0` as another option to support `.NET 10` Previews.\n\nAnd from [v7.7.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/7.7.0) of the template package, Nightly Builds (integrated) feed links have been updated for both .NET MAUI v9 and v10.\n\nAnd from [v7.9.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/7.9.0) of the template package, support for .NET MAUI 10 Global namespace.\n\nAnd from [v7.10.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/7.10.0) of the template package, support for .NET MAUI 10 Implicit namespace and unified app startup.\n\nAnd from [v7.11.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/7.11.0) of the template package, introduced an option to integrate .NET MAUI 10 with Aspire.\n\nAnd from [v7.12.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/7.12.0) of the template package, introduced an option to integrate earlier versions of .NET MAUI with Aspire.\n\nAnd from [v8.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/8.0.0) of the template package, `Framework` parameter defaults to .NET 10 (`net10.0`), uses `SLNX` as the default solution file format, support for .NET MAUI 10 Source Generation feature, and a new .NET 10 `FileApp` item template.\n\nAnd from [v8.5.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/8.5.0) of the template package, support for .NET MAUI 10 XAML C# Expression feature.\n\nAnd from [v9.0.0](https://www.nuget.org/packages/VijayAnand.MauiTemplates/9.0.0) of the template package, the CLI project template `framework` parameter now includes `net11.0` as another option and also adds the `--avalonia` parameter, supporting .NET 11 Previews and the Avalonia backend for .NET MAUI. .NET MAUI 8 is no longer supported.\n\n### Parameters:\n\n* [Avalonia backend for .NET MAUI](https://egvijayanand.in/2026/03/25/what-is-new-in-the-all-in-one-dotnet-maui-templates-pack-v9-0-hello-avalonia/):\n\n  Introduced an option to support the Avalonia backend for .NET MAUI.\n  \n  _This is supported only on .NET MAUI 11 Preview._\n\n  `--avalonia` - Default value is `false`.\n\n  This parameter is controlled by the framework, so it only works with .NET MAUI 11 Preview. Enabling it in earlier versions won’t have any effect.\n\n  Additional target platform values now include `Linux` and `Wasm` (Web Assembly).\n\n  ```shell\n  dotnet new mauiapp -o MyApp -f net11.0 -- avalonia\n  ```\n\n  To run the Web Assembly target, set the Browser project as the startup project.\n\n  For both the class library projects, the option to include the Avalonia NuGet package is as follows:\n  \n  `-ia` | `--include-avalonia` - The default value is `false`.\n\n  ```shell\n  dotnet new mauiclasslib -o MyLib -ia -f net11.0\n  ```\n\n  ```shell\n  dotnet new sharedclasslib -o SharedLib -ia -f net11.0\n  ```\n\n* XAML C# Expression:\n\n  Introduced an option to use .NET MAUI 10 XAML C# Expression feature.\n\n  Enable MVVM to check out this feature in action.\n\n  This is still an experimental feature and requires .NET MAUI 10 SR5 (`10.0.50`) or higher to work.\n\n  `-xce` | `--xaml-cs-expr` - Default value is `false`.\n\n  ```shell\n  dotnet new mauiapp -o MyApp -mvvm -xce\n  ```\n\n* Source Generation:\n\n  Introduced an option to use .NET MAUI 10 Source Generation feature.\n\n  `-sg` | `--source-gen` - Default value is `true` (from `v8.5.0` onwards).\n\n  ```shell\n  dotnet new mauiapp -o MyApp -sg\n  ```\n\n  To opt out, override the default value.\n  \n  ```shell\n  dotnet new mauiapp -o MyApp -sg:false\n  ```\n\n* Integration with Aspire:\n\n  Introduced an option to integrate .NET MAUI with Aspire.\n\n  `--aspire` - Default value is `false`.\n\n  ```shell\n  dotnet new mauiapp -o MyApp --aspire\n  ```\n\n  This will generate two more projects: one for **Aspire AppHost** and another for **Service Defaults**.\n\n  The Aspire AppHost project will reference the .NET MAUI project, while the .NET MAUI project will reference the Service Defaults project.\n\n  Consult this [Integrating .NET MAUI with Aspire](https://egvijayanand.in/2025/10/29/integrating-dotnet-maui-with-aspire-a-comprehensive-guide/) article to know more about it.\n\n* HybridWebView Project Template:\n\n  Introduced an option to create a new project template using HybridWebView.\n  \n  Consult this [Exploring .NET MAUI 9 - HybridWebView](https://egvijayanand.in/2024/10/04/exploring-dotnet-maui-9-hybridwebview-features/) article to know more about it.\n\n  To facilitate this, the design pattern (`-dp`) parameter includes a new value called `JSHybrid`, which creates an App project using `HybridWebView` with all prerequisites set automatically, requiring no manual intervention.\n\n  In the Visual Studio/Rider IDE, within the Project Options page, this `Application Design` option is available as a dropdown UI control. Select `JSHybrid` as its value.\n\n  *Since HybridWebView is a feature introduced in .NET MAUI 9, creating a .NET MAUI 8 App with the value of `JSHybrid` will NOT result in an error; instead, it will fall back by creating an App project that corresponds to the default `Plain` value from both the CLI and the IDE.*\n\n  ```shell\n  dotnet new mauiapp -o MyApp -dp JSHybrid\n  ```\n\n  *Note: The design pattern (`-dp`) parameter with the value `Hybrid` will continue to generate an App project using `BlazorWebView`, which works on both .NET MAUI 9 and 10, the present stable channel release.*\n\n  ```shell\n  dotnet new mauiapp -o BlazorApp -dp Hybrid\n  ```\n\n* [Syncfusion.Maui.Toolkit](https://www.nuget.org/packages/Syncfusion.Maui.Toolkit) NuGet Package (Short notation: `-isft`):\n\n  Introduced the option to add and configure the Syncfusion.Maui.Toolkit NuGet package.\n\n  *Note: This would be an explicit option*\n\n  `-isft` | `--include-syncfusion-toolkit` - Default value is `false`\n\n  ```shell\n  dotnet new mauiapp -o MyApp -isft\n  ```\n  ```shell\n  dotnet new mauiclasslib -o MauiLib -isft\n  ```\n  ```shell\n  dotnet new sharedclasslib -o SharedLib -isft\n  ```\n\n* SLNX Solution File Format (Short notation: `-slnx`):\n\n  Introduces support for the new, simplified, and easily understandable XML-based solution file format.\n\n  `-slnx` | `--use-slnx` - Default value is `true` (from `v8.0` onwards)\n\n  To work with the classic SLN format, override the default value:\n  \n  ```shell\n  dotnet new mauiapp -o MyApp -slnx:false\n  ```\n\n* MAUI Class Library (Short notation: `-mcl`):\n\n  Option to abstract the Shared components as a separate .NET MAUI Class Library.\n\n  This will create a solution structure that is akin to Xamarin.Forms (the only difference is that there won't be multiple head projects).\n\n  `-mcl` | `--maui-class-library` - Default value is `false`\n\n  ```shell\n  dotnet new mauiapp -o MyApp -mcl\n  ```\n\n  This abstracts both MAUI components and Razor components in an Hybrid style App:\n\n  ```shell\n  dotnet new mauiapp -o HybridApp -dp Hybrid -mcl -rcl\n  ```\n\n* Nightly build: (Short notation: `-ni`):\n\n  Option to reference Nightly build MAUI packages (from the [CI feed](https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet9 \"CI Feed\")) in all the supported templates.\n\n  `-ni` | `--nightly` This is a Boolean parameter - Default value is `false`. _Can also be used with the CPM option too_.\n\n  Update: When creating MAUI projects with Nightly build opted-in with template v5.6.0 or later, the CI package source configuration process is automated with a local NuGet.config file. So, no need for any manual steps. _Only required when earlier templates version is used._\n  \n  Note: For this work, add the following URL as a NuGet package source (make use of the command) and more details [here](https://github.com/dotnet/maui/wiki/Nightly-Builds \"Nightly Builds\"):\n\n  *.NET MAUI getting released as NuGet packages is supported only from .NET 8. So, this nightly build option won't work with .NET 7 and earlier.*\n\n\n  ```shell\n  dotnet nuget add source -n maui-nightly https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet9/nuget/v3/index.json\n  ```\n\n  Examples:\n\n  ```shell\n  dotnet new mauiapp -o MyApp -ni\n  ```\n\n  ```shell\n  dotnet new mauiclasslib -o MauiLib -ni\n  ```\n\n  ```shell\n  dotnet new sharedclasslib -o SharedLib -ni\n  ```\n\n* Central Package Management: (Short notation: `-cpm`):\n\n  This is a Boolean parameter and its default value is `false`.\n\n  Examples:\n\n  ```shell\n  dotnet new mauiapp -o MyApp -cpm\n  ```\n\n  ```shell\n  dotnet new mauiclasslib -o MauiLib -cpm\n  ```\n\n  ```shell\n  dotnet new sharedclasslib -o SharedLib -cpm\n  ```\n\n* Language: (Short notation: `-lang`):\n\n  This can take `C#` / `F#` as its options (with `C#` being the default value, if not specified).\n\n  Examples:\n\n  ```shell\n  dotnet new mauiapp -lang F#\n  ```\n\n  For creating a .NET MAUI App on .NET 9:\n\n  ```shell\n  dotnet new mauiapp -lang F#\n  ```\n\n* Framework: (Short notation: `-f`)\n\n  This can take `net9.0` / `net10.0` / `net11.0` as its options (with `net10.0` being the default value, if not specified).\n\n  Examples:\n\n  For creating a .NET MAUI 10 App:\n\n  ```shell\n  dotnet new mauiapp\n  ```\n\n  For creating a .NET MAUI 9 / 11 App:\n\n  _Explicit value for the `framework` parameter is required._\n\n  ```shell\n  dotnet new mauiapp -f net9.0\n  ```\n\n  ```shell\n  dotnet new mauiapp -f net11.0\n  ```\n\nIn .NET CLI, all of these _Items Template_ require a mandatory parameter:\n\n* Name: (Short notation: `-n`)\n\n    The name of the Item/Page/View to create. _For Pages/Views, don't need to suffix it with the name like .xaml_, it will get added.\n\n    _If the name parameter is not specified, by default, the **.NET CLI template engine will take the current folder name as the filename** (current behaviour of the templating engine)._\n\n\u003c!--\n* Namespace: (Short notation: `-na`)\n\n    The namespace for the generated files.\n\n    *While working with .NET 7 SDK or later, the namespace parameter in short notation needs to be passed as `-p:na` (i.e., it needs to be prefixed with `-p:`).*\n--\u003e\n\n* Now with more options while creating the app or class library project, ability to include NuGet packages on the fly for `CommunityToolkit.Maui`, `CommunityToolkit.Maui.Markup`, `CommunityToolkit.Mvvm` or all.\n\n*Note: Parameter values are case-insensitive.*\n\nBoth .NET MAUI *App* and *Class Library* templates take the below optional Boolean parameters to include the officially supported `CommunityToolkit` NuGet packages:\n\n*Specifying the parameter name, either in short or full notation, implies that it is defined.*\n\n* `-it` | `--include-toolkit` - Default is `false`\n* `-im` | `--include-markup` - Default is `false`\n* `-imt` | `--include-mvvm-toolkit` - Default is `false`\n\nOther Parameters:\n\n* `-isft` | `--include-syncfusion-toolkit` - Default is `false`\n* `-ist` | `--include-shared-toolkit` - Default is `false`\n* `-cc` | `--conditional-compilation` - Default is `false`\n\n### Conditional Compilation\n\nAnd 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.\n\n* \\*.Standard.cs - Files targeting the BCL\n* \\*.Android.cs - Files specific to Android\n* \\*.iOS.cs - Files shared with both iOS and MacCatalyst\n* \\*.MacCatalyst.cs - Files specific to MacCatalyst\n* \\*.Tizen.cs - Files specific to Tizen\n* \\*.Windows.cs - Files specific to Windows\n\nFor existing projects, add the below block of code in the project file (.csproj). _This will modify the behavior of build process so due care must be taken if doing so._\n\n```xml\n\u003cItemGroup Condition=\"'$(TargetFramework)' != 'net10.0'\"\u003e\n    \u003cCompile Remove=\"**\\*.Standard.cs\" /\u003e\n    \u003cNone Include=\"**\\*.Standard.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n\u003c/ItemGroup\u003e\n\n\u003cItemGroup Condition=\"$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'ios' AND $([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'maccatalyst'\"\u003e\n    \u003cCompile Remove=\"**\\*.iOS.cs\" /\u003e\n    \u003cNone Include=\"**\\*.iOS.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n    \u003cCompile Remove=\"**\\iOS\\**\\*.cs\" /\u003e\n    \u003cNone Include=\"**\\iOS\\**\\*.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n\u003c/ItemGroup\u003e\n\n\u003cItemGroup Condition=\"$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'android'\"\u003e\n    \u003cCompile Remove=\"**\\*.Android.cs\" /\u003e\n    \u003cNone Include=\"**\\*.Android.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n    \u003cCompile Remove=\"**\\Android\\**\\*.cs\" /\u003e\n    \u003cNone Include=\"**\\Android\\**\\*.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n\u003c/ItemGroup\u003e\n\n\u003cItemGroup Condition=\"$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'maccatalyst'\"\u003e\n    \u003cCompile Remove=\"**\\*.MacCatalyst.cs\" /\u003e\n    \u003cNone Include=\"**\\*.MacCatalyst.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n    \u003cCompile Remove=\"**\\MacCatalyst\\**\\*.cs\" /\u003e\n    \u003cNone Include=\"**\\MacCatalyst\\**\\*.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n\u003c/ItemGroup\u003e\n\n\u003cItemGroup Condition=\"$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'tizen'\"\u003e\n    \u003cCompile Remove=\"**\\*.Tizen.cs\" /\u003e\n    \u003cNone Include=\"**\\*.Tizen.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n    \u003cCompile Remove=\"**\\Tizen\\**\\*.cs\" /\u003e\n    \u003cNone Include=\"**\\Tizen\\**\\*.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n\u003c/ItemGroup\u003e\n\n\u003cItemGroup Condition=\"$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) != 'windows'\"\u003e\n    \u003cCompile Remove=\"**\\*.Windows.cs\" /\u003e\n    \u003cNone Include=\"**\\*.Windows.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n    \u003cCompile Remove=\"**\\Windows\\**\\*.cs\" /\u003e\n    \u003cNone Include=\"**\\Windows\\**\\*.cs\" Exclude=\"$(DefaultItemExcludes);$(DefaultExcludesInProjectFolder)\" /\u003e\n\u003c/ItemGroup\u003e\n```\n\n### All-in-One .NET MAUI **App** Project Template:\n\nThis takes two additional parameters to define the application design pattern and target platform respectively. Not all options are supported in the F# template. For now, only Plain and Hybrid option is available.\n\n* `-dp` | `--design-pattern`\n\nCan take any one of the following values, with default value set to `Plain`:\n\n|Parameter Value|Description|\n|:---:|:---|\n|Plain|App configured to work with a single, initial screen.|\n|Hierarchical|App configured to work in a Hierarchical pattern using `NavigationPage`.|\n|Tab|App configured to work in a Tabbed fashion using `TabbedPage`.|\n|Shell|App configured to work with Routes using `Shell` page.|\n|Hybrid|App configured to work in a `Blazor Hybrid` mode using `BlazorWebView`.|\n|JSHybrid|App configured to work in a `JavaScript Hybrid` mode using `HybridWebView` (.NET MAUI 9 or later).|\n|Markup|App configured to work with `C# Markup` syntax.|\n|Razor|App configured to work with `Razor` syntax.|\n|Reactor|App configured to work with MVU pattern using `Reactor`.|\n\n* `-tp` | `--target-platform`\n\nCan take a combination of the following values, with default value set to `All`:\n\n|Parameter Value|Description|\n|:---:|:---|\n|All|Targets all possible .NET MAUI supported platforms.|\n|Base|Base framework (.NET 9/10/11) based on the `framework` opted.|\n|Android|Targets Android platform.|\n|iOS|Targets iOS platform.|\n|Linux|Targets Linux platform (.NET MAUI 11 with Avalonia).|\n|macOS|Targets macOS platform via Mac Catalyst.|\n|Windows|Targets Windows platform.|\n|Tizen|Targets Tizen platform.|\n|Mobile|Targets Android and iOS platforms.|\n|Desktop|Targets Windows, macOS, and Linux (.NET MAUI 11 only with Avalonia) platforms.|\n|Apple|Targets iOS and macOS platforms.|\n|Wasm (Web Assembly)|Targets Web Assembly (.NET MAUI 11 with Avalonia).|\n\n![Target Platform Options - Visual Studio](images/dotnetmaui-all-in-one-app-project-options.png)\n\nAdditional parameters supported:\n\nMVVM is a delightful and development-friendly design pattern to work with. To support this, a new parameter has been introduced:\n\n* `-mvvm` | `--use-mvvm` - Default is `false`\n* `-icb` | `--include-compiled-bindings` - Default is `false`\n\n*Note: Opting for this MVVM option will not have any impact on the App created with Web-based Razor syntax or MVU based Comet/Reactor.*\n\nWhile creating an App (C#), an option to abstract the Shared components as a separate .NET MAUI Class Library.\n\n* `-mcl` | `--maui-class-library` - Default is `false`\n\nWhile creating a Blazor Hybrid App, an option to abstract the Razor components as a separate Razor Class Library.\n\n* `-rcl` | `--razor-class-library` - Default is `false`\n\nThe target for the Windows platform can be either `Package` (MSIX) or `Unpackaged`. By default, it is set as `Package`, this can be overridden while creating the project by including the below parameter:\n\n* `-wu` | `--windows-unpackaged` - Default is `false`\n\nFurther options to add and configure [CommunityToolkit.Maui.Camera](https://www.nuget.org/packages/CommunityToolkit.Maui.Camera), [Microsoft.Maui.Controls.Foldable](https://www.nuget.org/packages/Microsoft.Maui.Controls.Foldable), [CommunityToolkit.Maui.MediaElement](https://www.nuget.org/packages/CommunityToolkit.Maui.MediaElement), [Microsoft.Maui.Controls.Maps](https://www.nuget.org/packages/Microsoft.Maui.Controls.Maps), or all NuGet packages.\n\n* `-ic` | `--include-camera` - Default is `false`\n* `-if` | `--include-foldable` - Default is `false`\n* `-ime` | `--include-media-element` - Default is `false`\n* `-inm` | `--include-maps` - Default is `false`\n\n\u003c!--\n*Note: If the project target `.NET 6`, selecting the MediaElement/Foldable/Maps option will NOT have any impact.*\n--\u003e\n\nExamples:\n\n```shell\ndotnet new mauiapp -dp Shell -tp Android\n```\n\n```shell\ndotnet new mauiapp -dp Hybrid --tp Mobile\n```\n\n### .NET MAUI Class Library Project Template:\n\nSimilar to All-in-One .NET MAUI App, the Class Library project template also takes `target-platform` as a parameter that takes a combination from the same set of values (with `All` being the default value).\n\n* Can be created targeting .NET Razor SDK\n  - Parameter name: `--use-razor-sdk` | `-urs`\n* Can be created targeting .NET MAUI Core\n  - Parameter name: `--use-maui-core` | `-umc`\n* Can be created targeting .NET MAUI Essentials\n  - Parameter name: `--use-maui-essentials` | `-ume`\n\n![Class Library Project Options - Visual Studio](images/dotnetmaui-class-library-project-options.png)\n\n### Shared Class Library Project Template:\n\nThe Target Framework of Xamarin.Forms library can be defined with the the below parameter.\n\n* `-xf` | `--xamarin-forms` \n\nSupported values are:\n\n* `netstandard2.0` (Default, if not specified)\n* `netstandard2.1`\n\n*Define the Target Framework of .NET MAUI library with the `-f` | `--framework` parameter.*\n\nThis takes the below optional Boolean parameters to include the officially supported NuGet packages:\n\n*Specifying the parameter name, either in short or full notation, implies that it is defined.*\n\nSingle parameter to include commonly used NuGet packages (`Maps`, `Syncfusion Toolkit`, and `Essential Interfaces` are explicit):\n\n* `-asp` | `--all-supported-packages` - Default is `false`\n\nSpecific to `Xamarin.Forms`:\n\n* `-ife` | `--include-forms-essentials` - Default is `false`\n* `-ifei` | `--include-forms-essentials-interfaces` - Default is `false`\n* `-ift` | `--include-forms-toolkit` - Default is `false`\n* `-ifm` | `--include-forms-markup` - Default is `false`\n* `-infm` | `--include-forms-maps` - Default is `false`\n\nSpecific to `.NET MAUI`:\n\n* `-imt` | `--include-maui-toolkit` - Default is `false`\n* `-isft` | `--include-syncfusion-toolkit` - Default is `false`\n* `-imm` | `--include-maui-markup` - Default is `false`\n* `-inmm` | `--include-maui-maps` - Default is `false`\n\nCommon to both:\n\n* `-inmt` | `--include-mvvm-toolkit` - Default is `false`\n* `-ist` | `--include-shared-toolkit` - Default is `false`\n\nFor more details: run this command in the terminal (use `-h` to save some keystrokes):\n\n```shell\ndotnet new mauiapp --help\n```\n```shell\ndotnet new mauiclasslib --help\n```\n```shell\ndotnet new sharedclasslib --help\n```\n\n### Partial Class Item Template:\n\nThis item template (short name: `class-cs`) allows to create a C# class from CLI with support for multiple options.\n\n|Parameter Name|Type|Default Value|Remarks|\n|:--:|:---:|:---:|:---|\naccess-modifier|choice|public|Specifies the accessibility of the class type.|\nbase|text|object|Specifies the base type for the class.|\nabstract|bool|false|Option to create the type as abstract.|\npartial|bool|true|Option to create the type as partial.|\nsealed|bool|false|Option to create the type as sealed.|\nstatic|bool|false|Option to create the type as static.|\n\nAccess Modifier parameter (`--access-modifier` | `-am`):\n\nSupported values are:\n\n* public (default value, if not provided)\n* internal\n* protected\n* private\n\nFile-scoped Namespace parameter (`-fsn` | `--file-scoped-namespace`), the default value is `false`.\n\n```shell\ndotnet new class-cs -n OrderViewModel -b ObservableObject -fsn\n```\n\n### .NET 10 File-App Item Template:\n\nThis item template (short name: `fileapp`) allows to create a .NET 10 FileApp from CLI with support for multiple options.\n\nIt requires a `filename` (without an extension) as its input.\n\nOptionally, it accept the following parameters:\n\n`Framework` parameter (`-f` | `--framework`):\n\n* Supported values are:\n\n  - `net8.0`\n  - `net9.0`\n  - `net10.0` (the default value)\n  - `net11.0`\n\n`SDK` parameter (`--sdk`):\n\n* Supported values are:\n  - Aspire\n  - BlazorWasm\n  - Razor\n  - Web\n  - Worker\n\n`.NET MAUI` parameter (`--maui`):\n\n* Option to integrate Aspire with .NET MAUI, the default value is `false`.\n\n`Preview` parameter (`--preview`):\n\n* Option to use C# language preview features, the default value is `false`.\n\n\n```shell\ndotnet new fileapp -n Aspire --sdk Aspire --maui\n```\n\n```shell\ndotnet new fileapp -n App --sdk Web\n```\n\n```shell\ndotnet new fileapp -n Console --preview\n```\n\n### Usage:\n\nAfter installation, use the below command(s) to create new artifacts using the template (both provide the same output):\n\nWith parameter names abbreviated:\n\n.NET MAUI App:\n\n```shell\ndotnet new mauiapp -n MyApp -dp Shell\n```\n```shell\ndotnet new mauiapp -n MyApp -dp Hybrid\n```\n```shell\ndotnet new mauiapp -n MyApp -dp JSHybrid\n```\n```shell\ndotnet new mauiapp -n MyApp -dp Markup\n```\n```shell\ndotnet new mauiapp -n MyApp -dp Razor\n```\n```shell\ndotnet new mauiapp -n MyApp -dp Reactor\n```\n\nOption to use MVVM:\n\n```shell\ndotnet new mauiapp -n MyApp -mvvm\n```\n```shell\ndotnet new mauiapp -n MyApp -dp Markup -mvvm\n```\n\nOption to use MVVM (Compiled Bindings):\n\n```shell\ndotnet new mauiapp -n MyApp -mvvm -icb\n```\n\nOption to create Razor class library while creating Blazor Hybrid App:\n\n```shell\ndotnet new mauiapp -n MyApp -dp Hybrid -rcl\n```\n\nOption to include NuGet packages:\n\n```shell\ndotnet new mauiapp -n MyApp -dp Shell -it -im -imt -ime -inm -if\n```\n\nOption to configure Conditional Compilation:\n\n```shell\ndotnet new mauiapp -n MyApp -dp Shell -cc\n```\n\n.NET MAUI Class Library:\n\n```shell\ndotnet new mauiclasslib -n MyApp.Core\n```\n\nOption to include NuGet packages:\n\n```shell\ndotnet new mauiclasslib -n MyApp.Core -it -im -imt\n```\n\nOption to configure Conditional Compilation:\n\n```shell\ndotnet new mauiclasslib -n MyApp.Core -cc\n```\n\nShared Class Library:\n\n```shell\ndotnet new sharedclasslib -n MyApp.UI\n```\nOption to include commonly used NuGet packages:\n\n```shell\ndotnet new sharedclasslib -n MyApp.UI -asp\n```\n\n### Generic Item Templates:\n\n* An innovative generic template, in XAML and C#, for creating items of any type\n* Supported both within the Visual Studio IDE and CLI\n  - Covered in detail in the below articles\n  - [Introducing .NET MAUI Generic Item Templates](https://egvijayanand.in/2024/01/16/introducing-dotnet-maui-generic-item-templates/)\n  - [Introducing .NET MAUI Generic Item Templates for Visual Studio 2022](https://egvijayanand.in/2024/01/23/introducing-dotnet-maui-generic-item-templates-for-visual-studio-2022/)\n* On CLI, it is named as `maui-item` and `maui-item-cs`\n* The same set of parameters is defined in the UI as `dropdown`, `textbox` and `checkbox` for ease of use\n* Both needs one required parameter, `-b` / `--base`, the base type\n* And optionally takes another parameter, `-g` / `--generic`, to specify the generic base type\n* In addition, the XAML template takes one more parameter, `-xo` / `--xaml-only`, to generate only the XAML definition\n* Frequently used base types are loaded in the Editable dropdown, user can also enter their value here\n* Ensure the values are entered in Pascal notation. XAML templates support XML namespace prefix, quite like how it is used in real world (`mct:Popup`)\n* The one big advantage of using this on IDE is the relative namespace to the folder where the item is created whereas on CLI, this defaults to the root namespace. As relative namespace resolution is yet to be fully supported by the CLI templating engine and is actively tracked [here](https://github.com/dotnet/templating/issues/6010)\n\n![.NET MAUI All-in-One Generic Item Template](images/dotnetmaui-generic-item-popup.png)\n\n*Note: Namespace resolution in both XAML and C# files is left to the user, as deriving them with the template is outside its scope.*\n\n*Tip: For the XAML template, pass the `xmlns` scope as part of the input parameter value and it'll be used appropriately in the generated source files.*\n\n*Tip: Use `local` scope to refer to the files in the same directory like `Views`. For example, `local:BasePage`*\n\nCLI Commands:\n\n ```shell\ndotnet new maui-item -n LoginPage -b ContentPage\n```\n```shell\ndotnet new maui-item-cs -n ProductView -b ContentView\n```\n```shell\ndotnet new maui-item -n CartPage -b MauiPage -g CartViewModel\n```\n\n*For Page/Shell/View Item templates, DON'T suffix anything to the name, it'll be included automatically.*\n\nPages:\n```shell\ndotnet new maui-page -n Home\n```\n```shell\ndotnet new maui-page-cs -n Home\n```\n```shell\ndotnet new maui-page-razor -n Home\n```\n\n### Page with ViewModel:\n\n```shell\ndotnet new maui-mvvm -n Login\n```\n```shell\ndotnet new maui-mvvm-cs -n Login\n```\n\nContentPage with BlazorWebView:\n\n```shell\ndotnet new maui-bwv -n Home\n```\n```shell\ndotnet new maui-bwv-cs -n Home\n```\n\nViews:\n\n```shell\ndotnet new maui-view -n Order\n```\n```shell\ndotnet new maui-view-cs -n Order\n```\n```shell\ndotnet new maui-view-razor -n Order\n```\n\nShell:\n\n```shell\ndotnet new maui-shell -n App\n```\n```shell\ndotnet new maui-shell-cs -n App\n```\n```shell\ndotnet new maui-shell-razor -n App\n```\n\nResource Dictionary:\n\n```shell\ndotnet new maui-resdict -n DarkTheme\n```\n```shell\ndotnet new maui-resdict -n LightTheme -xo\n```\n\nPartial Class:\n\n```shell\ndotnet new class-cs -n BaseViewModel\n```\n```shell\ndotnet new class-cs -n BaseViewModel -fsn\n```\n```shell\ndotnet new class-cs -n OrderDataStore -b IDataStore -p false -am internal\n```\n\nWith parameter names expanded:\n\n.NET MAUI App:\n\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Shell\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Hybrid\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern JSHybrid\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Markup\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Razor\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Reactor\n```\n\nOption to use MVVM:\n\n```shell\ndotnet new mauiapp --name MyApp --use-mvvm\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Markup --use-mvvm\n```\n\nOption to use MVVM (Compiled Bindings):\n\n```shell\ndotnet new mauiapp --name MyApp --use-mvvm --include-compiled-bindings\n```\n\nOption to create Razor class library while creating Blazor Hybrid App:\n\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Hybrid --razor-class-library\n```\n\nOption to include NuGet packages:\n\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Shell --include-toolkit --include-markup --include-mvvm-toolkit --include-media-element --include-maps --include-foldable\n```\n```shell\ndotnet new mauiapp --name MyApp --design-pattern Shell --conditional-compilation\n```\n\n.NET MAUI Class Library:\n\n```shell\ndotnet new mauiclasslib --name MyApp.Core\n```\n```shell\ndotnet new mauiclasslib --name MyApp.Core --include-toolkit --include-markup --include-mvvm-toolkit\n```\n```shell\ndotnet new mauiclasslib --name MyApp.Core --conditional-compilation\n```\n\nShared Class Library:\n\n```shell\ndotnet new sharedclasslib --name MyApp.UI\n```\n```shell\ndotnet new sharedclasslib --name MyApp.UI --all-supported-packages\n```\n\nGeneric Item Templates:\n\n ```shell\ndotnet new maui-item --name LoginPage --base ContentPage\n```\n```shell\ndotnet new maui-item-cs --name ProductView --base ContentView\n```\n```shell\ndotnet new maui-item --name CartPage --base MauiPage --generic CartViewModel\n```\n\n*For Page/Shell/View Item templates, don't suffix anything to the name, it'll be included automatically.*\n\nPages:\n\n```shell\ndotnet new maui-page --name Home\n```\n```shell\ndotnet new maui-page-cs --name Home\n```\n```shell\ndotnet new maui-page-razor --name Home\n```\n\nPage with ViewModel:\n\n```shell\ndotnet new maui-mvvm --name Login\n```\n```shell\ndotnet new maui-mvvm-cs --name Login\n```\n\nContentPage with BlazorWebView:\n\n\n```shell\ndotnet new maui-bwv --name Home\n```\n```shell\ndotnet new maui-bwv-cs --name Home\n```\n\nViews:\n\n```shell\ndotnet new maui-view --name Order\n```\n```shell\ndotnet new maui-view-cs --name Order\n```\n```shell\ndotnet new maui-view-razor --name Order\n```\n\nShell:\n\n```shell\ndotnet new maui-shell --name App\n```\n```shell\ndotnet new maui-shell-cs --name App\n```\n```shell\ndotnet new maui-shell-razor --name App\n```\n\nResource Dictionary:\n\n```shell\ndotnet new maui-resdict --name DarkTheme\n```\n```shell\ndotnet new maui-resdict --name LightTheme --xaml-only\n```\n\nPartial Class:\n\n```shell\ndotnet new class-cs --name BaseViewModel\n```\n```shell\ndotnet new class-cs --name BaseViewModel --file-scoped-namespace\n```\n```shell\ndotnet new class-cs --name OrderDataStore --base IDataStore --partial false --access-modifier internal\n```\n\u003c!--\n### For VS2019 users:\n\nNow, ContentPage is completely moved into .NET MAUI world with a brand new xml namespace and using directive.\n\nSo that the existing Xamarin.Forms item templates cannot be used as is from now on and modifying it every time is painful.\n\nHence have created a VS extension exclusively to be used with .NET MAUI projects.\n\nGrab these templates from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=egvijayanand.maui-item-templates) and even more easier, can be installed from within Visual Studio itself (Extensions -\u003e Manage Extensions / Alt + X + M)\n\nThis has a Project Template for:\n\n* .NET MAUI Class Library (Preview 10)\n\nAnd has Item Templates for:\n\n* Content Page (.NET MAUI)\n* Content Page (C#) (.NET MAUI)\n* Content View (.NET MAUI)\n* Content View (C#) (.NET MAUI)\n* Resource Dictionary (.NET MAUI)\n* Shell Page (.NET MAUI)\n\n![Add New Item dialog - Visual Studio](images/add-new-item.png)\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegvijayanand%2Fdotnet-maui-templates","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fegvijayanand%2Fdotnet-maui-templates","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fegvijayanand%2Fdotnet-maui-templates/lists"}