DiscoverHerding CodeHerding Code 246 – David Ortinau on .NET MAUI
Herding Code 246 – David Ortinau on .NET MAUI

Herding Code 246 – David Ortinau on .NET MAUI

Update: 2022-05-25
Share

Description

Jon talks to David Ortinau about .NET MAUI.









<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio">

<iframe title="Herding Code 246 - .NET MAUI with David Ortinau" width="525" height="295" src="https://www.youtube.com/embed/OyqzWAivI7I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</figure>



Download / Listen: Herding Code 246: David Ortinau on .NET MAI





Link: Introducing .NET MAUI – One Codebase, Many Platforms (.NET blog)





Transcript:





Jon: Hello, and welcome to Herding Code. This episode is being recorded May 16th, 2022. Today I’m talking to David Ortinau now about .NET MAUI. Welcome David. 





David: Hey, good to see you. 





Jon: Okay, so let’s start with the basics. What the heck is .NET MAUI? I, I mean, I know there’s kind of Xamarin thing out there forms and now there’s .NET MAUI.





David: So .NET MAUI, it stands for multi-platform app UI. And it is really the evolution of Xamarin. So Xamarin is it started, you know, like 10, 12 years ago, Mono framework, Mono Touch, Mono Droid it was essentially saying, Hey, let’s take what Apple and Google are doing these mobile platforms that are super cool, and let’s bring it to .NET developers.





And it was an open source thing, you know, at least as far as the runtime and things like that go but it was kind of out there in the community. And then what, six years ago, Microsoft acquired it. and then five years ago, I joined Microsoft to be the program manager for Xamarin forms, specifically, the that, you know, we favor XAML, but you can totally just use C# or F# actually to write your mobile applications, but it was a very mobile focus thing. Right? So, we have been doing in the .NET space over years is, unifying, taking all these things that were disparate, they all had different routes in terms of where they started, but .NET You know, we anything with .NET and be able to reuse not only the technology, but our skills. So. you know, dot .NET framework turned core .NET five shipped five unified, some of the model pieces and some of the BCL pieces BCL standing for base class library.





And then, grandiose that was when Xamarin would also become really a core part of .NET, 





however pandemic things you know, best laid plans of mice and then things didn’t quite go the way we want. 





Jon: Well also, plus it’s, it’s a big job, right? I mean, like uniting everything and you’ve had like .NET and C#, or like there’s similar specifications, but like the whole way that, that mano and Xamarin worked always seemed like it was amazing to me that it actually worked right. 





David: Yeah. It was the ingenuity of some very smart people that made it at work. But you know, outside of Microsoft’s doors, really, even before everything was mostly open-sourced there was a lot of duct taping to make things work. Make it a good developer experience. So we’re now able to in the open source era and as part of Microsoft kind of rectify some of those things. So, you know, we’re adopting SDK style projects, the same project system that the rest of .NET uses. And, and we’ve also added platforms. So now. Give a first place support to Windows and Mac desktops. So that’s a big really have. I mean, we kind of had UWP but that really started because we had this. Windows phone thing. You know, and I don’t want to like trigger anybody, but it was pretty cool. 





yeah, so, I mean, yeah, you’re absolutely right. Tons of stuff that, that have ne has needed to happen under the hood from the runtime, the base class library, unifying all the API APIs and. In terms of Xamarin, there’s some things that we did with types for end, float and end and things like that, to, to make things work with apple that are non-standard dot .NET things.





So in .NET 6 we unified our types, which, you know in the short term, there’s definitely some pain, not gonna, not going to sugarcoat that but in the longterm, you know, we’re going to see some nice gains, and consistency across the whole thing. So very excited that we finally, after years of transition we’re bringing.





To full GA fruition here in .NET 6 Well, as part of the, as Scott, hunter would like to say the .NET 6. 





wave, I think wave works really good with the name .NET 





Jon: Oh, nice. Nice. Okay. So, so the. 





Top level I’m totally not even a .NET developer. I haven’t been keeping up the high level is I can write C# or .NET code and I can build applications. That’ll run on Android, iOS, Mac, and Windows. 





David: Exactly and their native applications. That’s a key differentiator. So that means that when your app runs on iOS or Android or Windows or Mac, it’s using the same premiere 





UI toolkit that the manufacturers say, this is the way you should build apps.





Jon: Okay. So it’s not like a, cause I think that’s been as a workaround for a long time, people are building, for instance, like. Electron apps or stuff like that. Right. Where, so you, it technically will run cross platform, but it’s really running a browser and it’s running like, it’s, it’s not that like native or even going way back, like Java or stuff like that.





Right. But you didn’t have this like native app. 





David: Yeah. Yeah. You run into, what’s known as the uncanny valley in some situations, depending on how well that technology is able to mimic the platform.  you know, there are certainly other you know, platforms out there are frameworks out there that do a really good job at it. However yeah, the hybrid thing, which we typically call those as hybrid frameworks  you end up needing to make some compromises in terms of what you can access on the native platform or what kind of UI experiences you can create.





But you know, with straight MAUI, you don’t have those compromises plus you get to use .NET. So it’s one language, right? You don’t have to drop into objective C swift Java or Kotlin your code. You know we’re very open, you know, opened to using whatever technologies that you really want to be able to use.





 But in addition, all of that, we actually do have a really cool hybrid story. So you are a web developer. You’ve heard of this thing. 





Jon: Yep. 





David: Yeah, yeah. A little familiar with that. So what’s really interesting to me about this and it seems to be resonating with some of the early adopters of MAUI a Blazor or just a Blazor component and you can drop it into a native MAUI and it does run in kind of that hybrid context. However, because that code gets compiled as. C code. There’s really not that same browser interrupt barrier that you would normally and again, because you know, some UI frameworks such as Blazor do a really good job with helping You style your UI.





You don’t end up so much in these uncanny. And you can use it for what it’s appropriate for, but then if you really need that native UI experience, MAUI controls are right there in the same application. So you can quickly stand up an application, share your code with web and you know, sky’s the limit.





So really cool to see. We’ve even seen some, just some apps shipping to the app stores already using that Blazor hybrid with MAUI scenario. And





Jon: So it, so some of that seems like W you mentioned the word hybrid and you know, some of it seems like it makes me think of, am I paying like a big performance penalty or is it, you know, like how does it compare to what I guess part of my question here is what apps are not a good fit for that hybrid scenario. The Blazor hybrid scenario.





David: Right. Yeah. So, The browsers have gotten really good at, you know, execute. Quickly. So I, I think that that, that window of what’s not a good application is getting narrower and narrower. whereas, you know, a few years back we would have said, well, you know, if you adopt phone gapper or Cordova over one of those, early hybrid frameworks it would be much better known.





What’s not a really good application for it. I would think that Anything that’s heavily graphic intensive may not be good. anything with heavy animation may not be good. But again, there’s, there’s gonna be  exceptions to these rules. So the good news is, is that if you stand up a MAUI app and you start building in one direction, let’s say that you like, Hey, I really think I’m going to be able to get away with Blazor and it’s going to accomplish all of my needs.





And you get, you get a couple miles down the road and that’s not working out. You don’t have to trash your application. your .NET code will work just, just swell without that browser context. And you can stand up native UI in its pla

Comments 
00:00
00:00
x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Herding Code 246 – David Ortinau on .NET MAUI

Herding Code 246 – David Ortinau on .NET MAUI

Herding Code