MMS • Almir Vuk
Article originally posted on InfoQ. Visit InfoQ
Microsoft has recently released the third preview of the .NET Multi-platform App UI (MAUI) framework in .NET 8 roadmap. This latest release includes a number of quality improvements for UI controls and layouts, with a focus on memory management also. In addition, Preview 3 also brings support for the NuGet package version of the app. This means that developers will now have the ability to preview future builds and lock their applications to a specific version of .NET MAUI.
Based on the releases, the engineering team has been prioritizing the most pressing issues affecting the most commonly used controls. This includes improving layout functionality, addressing concerns with CollectionView, and enhancing the performance of Shell and drawing features such as shapes, shadows, and clipping.
Regarding the .NET 8 development, the project has made significant progress, having already resolved 303 issues and merged 713 pull requests. Some of the most significant improvements in the upcoming release have been identified by the team, including keyboard interactions with Entry and Editor, Grid helper methods, and Shell lifecycle events. These improvements represent just a few highlights of what can be expected in the .NET 8 version. Developers looking for more detailed information on the upcoming release are encouraged to refer to the release notes.
Furthermore, Memory Management is another highlighted improvement that this version brings. One of the key improvements in this area was made by Jonathan Peppers, who discovered a memory leak that occurred when users repeatedly navigated forward and back within an app. Peppers implemented a WeakList
to keep track of references, which solved the issue and ensured proper memory release.
In addition to memory management, the team has also made performance improvements in several other areas, including Button, Page and Layout, Window, Shadow, Clip, Background brush, BindableLayout, and more. These updates have been backported to the version of .NET 7, providing immediate benefits to those who are using earlier versions of the platform.
Another highlight of this release is the possibility to use and layer a specific version of .NET MAUI via NuGet packages, providing more flexibility and control over the development process. While .NET MAUI is still used and installed via the workload part of Visual Studio or the dotnet command line, the NuGet packages way of doing this enables the way to review pull requests, preview unreleased or experimental builds, or pin a project to a specific version.
Those who are interested in trying out these features can do so by installing .NET 8 Preview 3 and running the following command for the MAUI workload:
dotnet workload install maui
While full Visual Studio 2022 support for .NET 8 previews is still in the works, this latest release provides a way for developers to preview and experiment with .NET MAUI in a supported environment. For more information on the .NET 8 roadmap and new features coming for .NET MAUI, users can visit themesof.net.
Also, there is an interesting fact regarding the .NET MAUI. According to a tweet written by Shaun Walker, it reports that .NET MAUI is currently one of the most active projects within the .NET Foundation. When Android, iOS, and .NET MAUI are combined, they account for a significant proportion of issues and pull requests. Impressively, the usage of .NET MAUI has grown by a staggering 450% in less than a year.
In the original release post, author David Ortineu, Principal Product Manager, .NET Multi-platform App UI states the following:
Our goal in .NET 8 is to make you even more successful using .NET to build apps for Android, iOS, macOS, and Windows with .NET MAUI.
Lastly, in addition to an original release blog post, and as part of the development process, the development team calls on developers to test the new release and share feedback through the GitHub issue tracker.
The community members are also invited to visit the official GitHub project repository and learn more about this project and its future roadmap.