-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
"Problem"
Right now, we have quite a few templates that sort of make things not amazing:
- Extra maintenance as we need to make sure they all use the new recommendations
- Discoverability is not that great as you have to know what you want before seeing it
- Synchronizing dependencies (eg: bootstrap in hybrid)
- Synchronizing pictures, styles
What others are doing
In addition to this, it appears everyone has an amazing "template studio" that really makes our flat list of increasingly longer names cause tears to form in my left eye.
For example:
- https://marketplace.visualstudio.com/items?itemName=MattLaceyLtd.MauiAppAccelerator
https://github.com/mrlacey/MauiAppAccelerator - https://help.syncfusion.com/maui/visual-studio-integration/template-studio
- https://github.com/microsoft/TemplateStudio
Now I am not saying this is the perfect way, but I am wondering if we should maybe have something that uses this and then we just have "1" template.
Current situation
Our current "suite" of App templates are:
- .NET MAUI Blazor Hybrid App (with both --includeSampleContent and --empty affecting the same sample content)
- .NET MAUI Blazor Hybrid and Web App (with both --includeSampleContent and --empty affecting the same sample content)
- .NET MAUI App (with --includeSampleContent)
- .NET MAUI Multi-Project App
We also have some library templates:
- .NET MAUI for .NET Aspire Service Defaults
- .NET MAUI Class Library
Looking at the app templates we can see that they have a sort of growing features:
- an empty native app with nothing but a blank page (dotMorten really wants this 😉)
- a basic native app with the dotnet bot for the new users
- a starter native app with SF controls
- an empty blazor hybrid app
- a starter blazor hybrid app
- a basic native app with multiple projects
- an empty app with blazor hybrid AND web app
- a starter app with blazor hybrid AND web app
Ideas
I am wondering if we should maybe do something that allows the user to pick what they want via a more intuitive UI. One could imagine a new app dialog with some options:
- Native App
- --content = [empty, basic, starter]
- --platforms = [android, ios, macos, windows]
- --projects = [single, multi]
- Hybrid App
- --content = [empty, basic, starter]
- --platforms = [android, ios, macos, windows, web]
- --projects = [single, multi]
If we want to keep the "hybrid" and "native" template as separate items, then we can as this list sort of shows that we really have to "dev experiences": web-first dev vs a native-first dev
Since all apps need a backend, and with Aspire becoming the cool thing, we could even have a checkbox to "add a backend API" in the native space. But that is adding new things and is for later...