Thank you for the fast response, much appreciated.
As you suggested, the solution did build with the dotnet cli but not with Visual Studio even after all the "cleaning". We'll revisit that whenever Visual Studio / Maui versions get a future update to see if it's resolved.
We'll definitely try the MauiBlazorCachedApplicationConfigurationClient
etc. when we next get the opportunity for some R&D time.
Thanks.
Thanks for that link @liangshiwei it was very interesting.
We tried generating a new Maui Blazor (Hybrid) app both with the latest ABP Studio for .Net 9 and an earlier one that generated .Net 8 projects, but encountered a number of issues ranging from the earlier Login Issue to a failure to Deploy/Run when targeting a "Windows Machine" rather than Android in Visual Studio e.g. (This occurred on two separate machines)
We allocated a whole day of development time to investigate this workaround, but will have to continue with our Visual Studio generated project for this current application as we need the ABP libraries and framework to "just work" before we can using it in product development.
It did raise an interesting question though which would be useful to know the answer to for our future MAUI Blazor Hybrid projects i.e.
Q. As that workaround gets around the issue of no connectivity at startup, does that leave the ABP Maui app missing configuration/data? and would we have to make a server side call later to resolve that (if possible?) or does the ABP framework handle that itself once connectivity is restored?
Thanks for the response enisn,
We've decided to go with your suggestion of examining the source for Volo.Abp.Account.Pro.Public.MauiBlazor
and implementing that in our app so we can use the same Authorization code flow as recommended in the OAuth spec.
We've included that code in a Visual Studio generated "Maui Blazor Hybrid" project which will be our client app and we now have a working Login / Authentication / Authorization flow with an Authenticated User and we can use the usual [Authorize]
attributes and @if(User.IsAuthenticated) { ... }
in razor pages.
For the server we'll be creating an app via ABP Studio using the new "Blazor WebApp" template. We already have our client app talking to a current "Blazor Server" app backend, so we anticipate it will all work ok.
That way we can have the server back end with all the usual Admin menus to allow us to setup Users, View Audit Logs, configure OIDC Applications and generate backend Application Services using ABP in the normal way.
So I think what we're creating is essentially the screenshot I posted earlier in this thread i.e. a Blazor backend with Maui Blazor Hybrid as the mobile framework part.
Whether the current MAUI or React Native also require a backend to start we don't know as its the missing Blazor Hybrid (but with the ability to start without internet connectivity) that we're interested in.
Perhaps Volosoft/ABP can consider that as a feature request, or allow the current Maui Blazor Hybrid app to cache what it needs from the server in some fashion when it has no connectivity?
Thank you.
It appears that no one is dealing with this support ticket?
We will email ABP Support directly as we need to know if this behaviour is a bug or by design so we can decide which direction we go in with regard to creating our own Maui Blazor Hybrid Client with an ABP Backend or whether we have to abandon our use of ABP for this project.
Another 5 days have gone by with no response, and 13 days since our initial question, which remains unanswered. Can someone in support please assist with this question?
I'll repeat it here for clarity
Q. Also can you please comment on why the ABP Maui Blazor Hybrid template will not startup without connectivity to the Server?
If any further information is required then please let us know.
Thank you.
Edit: ...........
We have found the source for Volo.Abp.Account.Pro.Public.MauiBlazor
within the Pro Account module.
Q. Are saying we can somehow utilise this package in the Microsoft Maui Blazor Hybrid project to implement a Login flow? It seems pretty tightly coupled to the ABP architecture.
Q. Also can you please comment on why the ABP Maui Blazor Hybrid will not startup without connectivity to the Server as we haven't received an answer to our overall question. If we could resolve that we wouldn't have to try and roll our own Maui Blazor Hybrid Client
@enisn A disappointing lack of support from ABP..............
Let me ask the question in a more concise way based upon what we have deduced the past week while we've been waiting for a reply............
We've concluded the ABP .Net Maui Blazor Hybrid template will not work if the mobile device does not enjoy 100% connectivity at all times, which is unrealistic for a mobile device.
What we really need is the following
i.e. a Blazor Server App, with .Net Maui Hybrid project(s) forming the Mobile Framework part.
That will give us a server application with all the usual menus for Administering users/config, viewing Audit Logs etc. and a mobile part that can be deployed to devices.
We're trying to construct this ourselves i.e.
where the highlighted projects were created by the Visual Studio template
Q. with regard to authentication, can we just call the Swagger Login endpoint on the server to authenticate, or do we need to do anything else?
Can we have a response from ABP Support Team please?
Thank you.
... Xamarin Forms AFAIK is EOF now so it's all MAUI. Don't think that neither ABP nor Blazor is the main problem here for the time being. Would be really nice to be able to reuse Blazor though all the way.
We agree, .Net MAUI has replaced Xamarin.
We're interested in the MAUI Blazor Hybrid model (which our understanding is that its a Blazor webview control running natively inside a mobile device under .Net MAUI) because it lets us utilise our decades of HTML, .css etc. knowledge rather than having to use .XAML which came in with Silverlight / WPF IIRC, and we can still access the mobile hardware such as the camera etc. while developing in C#
Our immediate roadblock is that its looking like the ABP template was not designed to work in the scenario where the mobile device does not have 100% connectivity!
We'll have to see what the ABP architects/designers say re my questions to decide what direction / solution we end up with!
Honestly, not due to ABP but we have given up on MAUI for now even tough we are .NET people. Would really like to use it though if/once it becomes ready for prime time including tooling that does not break as soon as you try to install Firebase packages etc. The dream to finally get rid of JS continues to be a dream but one day :)
But that is probably another discussion, but that is the main reason we did not continue trying to get it to work properly with ABP. I hope you manage to get it sorted for your needs.
Thanks for the heads up, we've had great success with Blazor Server and the ABP libraries that utilise that architecture, with the rapid development due to not having to duplicate all dto's in C# and javascript and the magic SignalR connection between server and browser, but our mobile journey is just beginning.
We seem to have hit a very large brick wall at the moment, and we really want to utilise HTML, CSS and razor pages rather than .XAML......but we shall have to see how this all ends up!