Beth Massi
banner
bethmassi.net
Beth Massi
@bethmassi.net
Principal Product Manager for .NET MAUI at Microsoft. MTBer, hiker, runner (kinda), cook, gardener, ex-race car driver.
Reposted by Beth Massi
Nice article by @rocky.lhotka.net about Maui Blazor Hybrid!
Why MAUI Blazor Hybrid
It can be challenging to choose a UI technology in today’s world. Even if you narrow it down to wanting to build “native” apps for phones, tablets, and PCs there are so many options. In the Microsoft .NET space, there are _still_ many options, including .NET MAUI, Uno, Avalonia, and others. The good news is that these are good options - Uno and Avalonia are excellent, and MAUI is coming along nicely. At this point in time, my _default_ choice is usually something called a MAUI Hybrid app, where you build your app using Blazor, and the app is hosted in MAUI so it is built as a native app for iOS, Android, Windows, and Mac. Before I get into why this is my default, I want to point out that I (personally) rarely build mobile apps that “represent the brand” of a company. Take the Marriott or Delta apps as examples - the quality of these apps and the way they work differently on iOS vs Android can literally cost these companies customers. They are a primary contact point that can irritate a customer or please them. This is not the space for MAUI Blazor Hybrid in my view. ## Common Code MAUI Blazor Hybrid is (in my opinion) for apps that need to have rich functionality, good design, and be _common across platforms_ , often including phones, tablets, and PCs. Most of my personal work is building business apps - apps that a business creates to enable their employees, vendors, partners, and sometimes even customers, to interact with important business systems and functionality. Blazor (the .NET web UI framework) turns out to be an excellent choice for building business apps. Though this is a bit of a tangent, Blazor is my go-to for modernizing (aka replacing) Windows Forms, WPF, Web Forms, MVC, Silverlight, and other “legacy” .NET app user experiences. The one thing Blazor doesn’t do by itself, is create native apps that can run on devices. It creates web sites (server hosted) or web apps (browser hosted) or a combination of the two. Which is wonderful for a lot of scenarios, but sometimes you really need things like offline functionality or access to per-platform APIs and capabilities. This is where MAUI Hybrid comes into the picture, because in this model you build your Blazor app, and that app is _hosted_ by MAUI, and therefore is a native app on each platform: iOS, Android, Windows, Mac. That means that your Blazor app is installed as a native app (therefore can run offline), and it can tap into per-platform APIs like any other native app. ## Per-Platform In most business apps there is little (or no) per-platform difference, and so the vast majority of your app is just Blazor - C#, html, css. It is common across all the native platforms, and optionally (but importantly) also the browser. When you do have per-platform differences, like needing to interact with serial or USB port devices, or arbitrary interactions with local storage/hard drives, you can do that. And if you do that with a little care, you still end up with the vast majority of your app in Blazor, with small bits of C# that are per-platform. ## End User Testing I mentioned that a MAUI Hybrid app can not only create native apps but that it can also target the browser. This is fantastic for end user testing, because it can be challenging to do testing via the Apple, Google, and Microsoft stores. Each requires app validation, on their schedule not yours, and some have limits on the numbers of test users. > In .NET 9, the ability to create a MAUI Hyrid that also targets the browser is a pre-built template. Previously you had to set it up yourself. What this means is that you can build your Blazor app, have your users do a lot of testing of your app via the browser, and once you are sure it is ready to go, then you can do some final testing on a per-platform basis via the stores (or whatever scheme you use to install native apps). ## Rich User Experience Blazor, with its use of html and css backed by C#, directly enables rich user experiences and high levels of interactivity. The defacto UI language is html/css after all, and we all know how effective it can be at building great experiences in browsers - as well as native apps. There is a rapidly growing and already excellent ecosystem around Blazor, with open-source and commercial UI toolkits and frameworks available that make it easy to create many different types of user experience, including Material design and others. From a developer perspective, it is nice to know that learning any of these Blazor toolsets is a skill that spans native and web development, as does Blazor itself. In some cases you’ll want to tap into per-platform capabilities as well. The MAUI Community Toolkit is available and often provides pre-existing abstractions for many per-platform needs. Some highlights include: * File system interaction * Badge/notification systems * Images * Speech to text Between the basic features of Blazor, advanced html/css, and things like the toolkit, it is pretty easy to build some amazing experiences for phones, tablets, and PCs - as well as the browser. ## Offline Usage Blazor itself can provide a level of offline app support if you build a Progressive Web App (PWA). To do this, you create a standlone Blazor WebAssembly app that includes the PWA manifest and worker job code (in JavaScript). PWAs are quite powerful and are absolutely something to consider as an option for some offline app requirements. The challenge with a PWA is that it is running in a browser (even though it _looks_ like a native app) and therefore is limited by the browser sandbox and the local operating system. For example, iOS devices place substantial limitations on what a PWA can do and how much data it can store locally. There are commercial reasons why Apple doesn’t like PWAs competing with “real apps” in its store, and the end result is that PWAs _might_ work for you, as long as you don’t need too much local storage or too many native features. MAUI Hybrid apps are actual native apps installed on the end user’s device, and so they can do anything a native app can do. Usually this means asking the end user for permission to access things like storage, location, and other services. As a smartphone user you are certainly aware of that type of request as an app is installed. The benefit then, is that if the user gives your app permission, your app can do things it couldn’t do in a PWA from inside the browser sandbox. In my experience, the most important of these things is effectively unlimited access to local storage for offline data that is required by the app. ## Conclusion This has been a high level overview of my rationale for why MAUI Blazor Hybrid is my “default start point” when thinking about building native apps for iOS, Android, Windows, and/or Mac. Can I be convinced that some other option is better for a specific set of business and technical requirements? Of course!! However, having a well-known and very capable option as a starting point provides a short-cut for discussing the business and technical requirements - to determine if each requirement is or isn’t already met. And in many cases, MAUI Hybrid apps offer very high developer productivity, the functionality needed by end users, and long-term maintainability.
blog.lhotka.net
June 28, 2025 at 9:37 PM
Reposted by Beth Massi
📣#TrailBlazor Conference—FREE virtual on June 26 2025! Dive into Blazor, .NET MAUI & Oqtane with @danroth27.bsky.social, @bethmassi.net, @sbwalker.bsky.social, Michael Washington + the Microsoft #Blazor team. Connect, learn, innovate.
Register: hubs.li/Q03kmbNW0 #dotnet
TrailBlazor Conference – For Blazor & Oqtane Developers
Some amazing speakers from Microsoft and the .NET Community will be sharing their experiences with Blazor, .NET MAUI, and Oqtane.
hubs.li
April 30, 2025 at 1:51 PM
This is a great customer story about how a small team builds amazing mobile and web apps with #dotnetMAUI and Blazor. They reuse their UI components across platforms which makes it faster to build and easier to test 🎉 dotnet.microsoft.com/en-us/platfo...
April 15, 2025 at 4:49 PM
Just published today a #dotnetMAUI #BlazorHybrid sample I've been working on for a bit. Shows how to set up auth with MAUI and Blazor ASP.NET Core Identity: learn.microsoft.com/en-us/aspnet...
.NET MAUI Blazor Hybrid and Web App with ASP.NET Core Identity
Learn how to build a .NET MAUI Blazor Hybrid app with a Blazor Web App that manages authentication with ASP.NET Core Identity.
learn.microsoft.com
March 13, 2025 at 2:24 AM
Reposted by Beth Massi
TemplateMAUI has been updated to version v1.1.0! 🚀🎉
Check out the latest release here github.com/jsuarezruiz/... for a new control, improvements, and bug fixes that have been added. #dotnet
January 20, 2025 at 12:09 PM
Reposted by Beth Massi
Woohoo! Added another .NET MAUI customer story to the official website!

Thank _you_ PartyFellow people for this amazing project and sharing it with us and now the world!
January 14, 2025 at 7:40 AM
Reposted by Beth Massi
Is life fair? Short answer: no. Long answer: noooooooooo.
December 15, 2024 at 11:09 PM
I'll be talking about #dotnetMAUI on this one. Should be a good one!
🚀 Join the Windows Dev Chat on 12/12 at 9AM PT / 18:00 CET!

This first themed episode will focus on streamlining supported client platforms for new developers ✨

Don't miss it! #WinDevChat

Link: https://msft.it/6011oEBbS #WindowsDev
Windows Dev Chat - Dec 12, 2024
Don't miss the first themed episode of Windows Dev Chat! ✨This time we'll focus on streamlining supported client platforms for new developers. We’ll approach...
msft.it
December 10, 2024 at 6:19 PM
If I open a $70 bottle of Pinot on a Monday in December that's called holiday spirit, right?
December 10, 2024 at 2:15 AM
Reposted by Beth Massi
I see everyone posting lists and starter packs. Is there a .NET MAUI one yet? If not, let's get the family together here! Let me know if you're working in MAUI so I can add you :) go.bsky.app/CuMKHtE
November 12, 2024 at 5:21 PM
Reposted by Beth Massi
Which extension for another IDE/editor do you wish was available for Visual Studio as well?
December 2, 2024 at 8:56 PM
I guess I should properly introduce myself since I'm new here. I'm a Product Manager at Microsoft working on .NET MAUI. Before that I was the Marketing Director for .NET and served on the board of directors for .NET Foundation. Before that, I was the community manager for more than a few RAD tools.
I just joined Bluesky today because I'm just tired of the weirdo cringe borderline porn ads in my X-Twitter feeds. And please don't ask me about VS LightSwitch. It wasn't my fault.
December 2, 2024 at 9:39 PM
Reposted by Beth Massi
I pardon people literally every day. Otherwise there would be no nice list.
December 2, 2024 at 2:53 AM
Reposted by Beth Massi
KQL best practices: learn.microsoft.com/en-us/kusto/...

MS is always updating their docs, don't forget to check-in every now and then

Boost your query performance but don't strain yourself trying to follow guidelines like this to a 'T'. Sometimes you need to do the quick and dirty and that's fine!
Best practices for Kusto Query Language queries - Kusto
This article describes Query best practices.
learn.microsoft.com
November 29, 2024 at 11:32 PM
Reposted by Beth Massi
starting in the 8th overtime you snap the ball from the middle of the end zone and the only rules are that you're not allowed to vomit or cry
November 30, 2024 at 4:51 AM
Reposted by Beth Massi
DAWGS WIN IN 8TH OT!!
November 30, 2024 at 5:03 AM
Reposted by Beth Massi
The day after Thanksgiving - and so it begins.

26 days of anticipation all rests on my shoulders. I won’t let you down.

Now, where are those leftovers?
November 29, 2024 at 2:37 PM
ICYMI: Our talk from #dotnetconf on building hybrid apps with #dotnetMAUI is available on demand. It was fun to show real bits and some awesome features we added for .NET 9 this year. Check it out and let me know what you think! youtu.be/zeR5ouptvE8?...
Build hybrid apps with .NET MAUI
YouTube video by dotnet
youtu.be
November 27, 2024 at 11:37 PM
Reposted by Beth Massi
So who wants a verified 'Microsoft' and 'Microsoft MVP' label on their profile and all the posts?

I just finished setting up @bluesky.ms as a labelling service.

Go subscribe to the label to start seeing labels on verified MVPs and Microsofties.

🧵👇
November 26, 2024 at 2:35 PM
I just joined Bluesky today because I'm just tired of the weirdo cringe borderline porn ads in my X-Twitter feeds. And please don't ask me about VS LightSwitch. It wasn't my fault.
November 27, 2024 at 4:51 AM
Reposted by Beth Massi
3D printing is dope. Behold this waffle-themed Tic Tac Toe game. 🧇🍓
November 26, 2024 at 11:31 PM
Reposted by Beth Massi
High schoolers (and parents and teachers of High Schoolers!) Your teen could win a 1 on 1 call with the Creator of Python *or* the creator of C# and TypeScript! highseas.hackclub.com Please share!
November 26, 2024 at 11:26 PM