Proposal: Introduce Shell as the default way of using/learning .NET MAUI (templates, documentation, etc.)
See original GitHub issueDescription
The Shell concept was introduced in Xamarin.Forms 4.0 and has been brought over to .NET MAUI and in my opinion helps standardize application structure, navigation, theming, and at the same time abstracts away complicated structure of Flyout and Tabs. Today, developers coming to Xamarin.Forms and .NET MAUI for the first time will have to make a decision if they should use Shell or not, which has rippling effects down the road. The default templates for Xamarin.Forms have mostly been updated to default to Shell, however Blank app remains a non-Shell based application, and the documentation separates out Shell into a different section, which means that you have to know to go look for it to go learn the concepts. I believe that developers will be more successful learning and using .NET MAUI if Shell is the default way of building applications, learning applications, and is the default template when running dotnet new maui
.
Benefits:
- Standard way of learning app structure, navigation, theming, and more
- URI navigation & constructor injection simplify development
- Integrated search handling
- Documentation can be simplified by focusing on Shell concepts first
- This is our chance to do it right and not make things confusing with multiple choices, make Shell the way.
I am not asking Shell to be required in .NET MAUI, so non-Shell based XF apps can easily migrated over and traditional navigation can still work just fine. But, I believe that Shell was created to make cross-platform development easier and from my personal usage it does.
Here is my PR for proposal changes to templates -> https://github.com/dotnet/maui/pull/4524
Public API Changes
None, we would update the templates to include a Shell with theming and add a single page.
Intended Use-Case
Make app development with .NET MAUI easier than ever, while still be backwards compatible.
Issue Analytics
- State:
- Created 2 years ago
- Reactions:44
- Comments:16 (9 by maintainers)
I agree with @dotMorten. When I create a blank app, I want a truly blank app.
As a teacher, please keep default to the minimal app that will work. Sure, provide shell as a radio-button choice, but not default in a way like the current “blank” app has XAML in it which then needs to then be stripped out, and there’s no XAML-free choice provided. People who are learning need to be taught 1 step at a time - start with the basics, then add further things on top. I have taught high school students Xamarin/C#, and so as to keep it simple for them, the first thing I actually had to do was teach them how to strip out the XAML, so that we could just focus on Xamarin/C# until they got a handle on it. Once they understand that THEN you can teach them XAML as well. The golden rule is one step at a time (or as few steps at a time as possible). To illustrate the issue with learners, when asked to install Visual Studio, one of them installed Blend for Visual Studio. Another time I said they could rename App1 to whatever they wanted to call their app, so one of them changed it to just App - obviously that created a whole bunch of problems until I worked out what she’d done. K.I.S.S.
If we’re adding templates then can we please have…
The first I always have to strip out all the XAML first. The second I don’t even use - so much needs to be stripped out it’s easier to just start from a blank app and add what you need (and even that does take a while. I’ve ended up building a base-class for it to save me some time).