A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
Hello @Gibran Trujillo Martinez ,
Thanks for your question.
- I recommend using a Hybrid approach: Shell for top-level navigation routing, and a custom Grid-based layout inside your ContentPage for the actual POS split-view. You should not rely on Shell's Flyout as the visual backbone of your POS screen.
Since Shell's Flyout, even when locked — is fundamentally designed as a navigation drawer, not a persistent dual-pane content host. Its purpose is to slide between app sections, not to keep two live content areas, a product catalog and a cart, simultaneously visible and interactive on the same screen at all times.
- Yes. Swapping
Application.Current.Windows[0].Pagebetween LoginPage and AppShell is the correct and recommended standard in .NET 10. LoginPage should never live inside Shell's hierarchy. Using VisualStateManager to hide navigation bars on a login page that sits inside Shell is an anti-pattern you should fully abandon.
Regarding handling the login flow, you can refer to these following workarounds:
- JWT + SecureStorage: for internal apps with a custom backend.
- WebAuthenticator + OIDC: for apps authenticating against an external Identity Provider like Azure AD.
- .NET 10 Passkeys: the headline new standard in .NET 10, enabling passwordless biometric login natively via ASP.NET Core Identity, with no third-party library required
- I suggest using explicit, modular feature-based DI and route registration using extension methods — one module per feature area. For maximum compile-time safety and AOT compatibility, this can be elevated further with C# Source Generators. Both approaches completely eliminate runtime Reflection.
- For a tablet-first, data-heavy POS, the recommended approach is the MVVM pattern with feature-based project structure, CollectionView with GridItemsLayout for product browsing, a persistent cart panel in a split Grid, and open-source UI kits such as Syncfusion Essential UI Kit and Uranium UI as your component foundation. Avoid building everything from scratch and avoid heavy commercial-only dependencies where free, high-quality alternatives exist.
I hope this addresses your question. If this response was helpful, please consider following the guidance to provide feedback.