Maui goals and unanswered questions #539
Unanswered
manuelelucchi
asked this question in
General
Replies: 1 comment 1 reply
-
Add Visual Studio for Mac to the list. It's supposed to be the Visual Studio experience on the Mac but its MonoDevelop roots make it buggier than expected. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Ever since Maui has been introduced, many developer asked what Maui will able to do. Will it to support the platform X? Will it support CSS? Will it target Web? Will it use the Flutter approach? Can I use it with F# without limitations? I've seen this here on github, on reddit and many other forums. So, while many of them could be just too lazy to read blogposts, I think there's a little communication problem. While I know Maui is still in early development, it's really difficult to understand what its goals are. So in the last couple of days I searched in dotnet repositories to understand what's Microsoft actually doing and I came up with some guesses and questions. Disclaimer: I'm not expecting everything to be ready for .NET 6 or 7 or 8, I (like many others) want just to know if these things will come one day as an argument to understand if, how and why the developers community should invest in Maui instead of Flutters or React Native or continue with native apps.
Maui Structure
Of course this is just a guess, that's why I'm asking here. Did I miss something or added something I shouldn't have? If my guess is correct, developers that choose Maui will be able to use 3 different programming patterns, use native components or drawn components, targeting native platforms or the web. It would be really impressive and probably the first time a UI framework allows this level of freedom.
Could Maui goal be something like this?
Compiler & Runtime
With Xamarin Forms we had 3 different runtimes (Mono, NET Core (UWP), NET Framework (WPF)) and 2 different AOT solutions (.NET Native and MonoAOT) while CoreRT was developed but not used. Now the API surface is just one with .NET 5 and forward, but what about the runtimes? For the first public release of Maui I understood that WinUI + WPF (Will the last one be supported at launch?) it'll use CoreCLR while mobile will still use Mono. Going forward, can we expect an unification on this side? CoreCLR introduced a lot of performance improvements (like intrinsics) that would be awesome to have on every platform. Also, a difficult topic: AOT. NET Native was a good solution but Windows only, while CoreRT (now NativeAOT) seems to be the best long term solution. You asked with a poll why developers would like an AOT solution and most of them answered performances and memory footprint, that are some of the main problems of Xamarin Forms. Also, Blazor needs AOT compilation to reduce the startup time that is its main drawback. I've seen there's some work in progress so if you are working on it, the community will be happy to have an official statement about it. The question is, can we expect in future release, a true One .NET with just one runtime and one AOT Compiler that covers everything?
Toolset
Visual Studio already supports well both XAML and Razor Pages, while MVU doesn't need any type of markup support. What about Visual Studio Code? It's by far the most popular code editor and it already has a good C# support, but I find the razor pages support lacking (mostly intellisense) and there's no official XAML support. While I expect the razor pages extension to become better thanks to Blazor, I think Microsoft should at least think about bringing XAML support to vscode. Most of the competitor platforms (Flutter, React Native and generally web apps) or web developers mainly use vscode, because it's lighter and easier to use, so it would be easier to appeal them with Maui if they can continue to use their favourite editor. For example, a Vue/Angular developer is probably more comfortable with XAML/MVVM or Razor pages than MVU. Let's not forget Visual Studio for Mac, that's still somewhat lacking.
So can we expect Visual Studio Code and Visual Studio for Mac to be treated on par of Visual Studio for Maui apps development?
Feel free to appoint every mistake I made and correct me, I want this discussion to become a place where every question can be answered. Also, thanks for anyone that will answer and the dotnet team/contributors for their work!
Edit:
Added Visual Studio for Mac in the Tooling section
Beta Was this translation helpful? Give feedback.
All reactions