00:00:10 Matt Welcome back everyone to the Xamarin podcast, keeping you up to date with the latest and greatest in mobile development. For Xamarin developers, covering the world of xamarin.net Azure and more. I'm Matt Soucoup 00:00:23 James And now I'm James montemagno. 00:00:25 David And I'm David Ortinau 00:00:27 Matt Ah, we have our regular new recurring guest David Art, now Back and David, I'm so glad you joined us again because you know what? 00:00:35 Matt There is a brand new Dot Net 6 preview dropping. 00:00:38 Matt So fill us in what's all new with? 00:00:40 David That that's right, Preview 3 is going out. 00:00:44 David The door is out the door, so let's talk a little bit about what's in there. 00:00:48 David For net Maui. First off, we have a little utility that one of our team members, Jonathan **** has put together called Maui. Check itsa.net tool you can install. 00:01:00 David Call and it will go ahead and check your whole environment and say do you have all the things you need for Android, iOS, Mac Catalyst and it's being updated soon to be able to support Windows as well which is in Preview 3 so Project Reunion 0.5 just shipped and that includes Win UI 3 support so. 00:01:08 Speaker 4 Yeah. 00:01:21 David Uh, we have worked with the team to enable that for. 00:01:24 David Net 6 and that is included in net Maui now. 00:01:27 David Uhm, you will want to use Visual Studio 1610 latest preview to use that and follow all the instructions for setting up project reunion, but we're excited to finally have that 4th, 4th platform in the in the can. I'm not. I'm calling it a can now, but it's a can, so there it is. 00:01:41 Speaker 4 Yes. 00:01:47 David Ah, let's see what else is in here. 00:01:49 David So a couple updates to the application. 00:01:53 David Arcot. 00:01:53 David Picture in Preview 2 if you did a net new and looked at the code for that, you would have seen that the app was a Maui app. 00:02:02 David It was called Maui app. 00:02:04 David Now it's actually just called application, but we've kind of combined a couple of concepts in there, but this is still the class that instantiates your your window. 00:02:13 David For the multi windowed applications or single. 00:02:16 David But it also now will bring in any app XAML resources that you might have. 00:02:22 David So for those who have experience with Xamarin forms, that will look very familiar to you. 00:02:30 David One of the most exciting things that's in this release is new extensions for the host builder to do native lifecycle event hooks. 00:02:39 David So if you have native things you need to do on Android, iOS, Mac or Windows, you can easily tap into them with a configure lifecycle events. 00:02:50 David Method it's an extension method. 00:02:53 David And you can do simple things like hey I wanna be able to do something when when the user clicks the back button or taps the back button on an Android device. 00:03:02 David But more Interestingly this is something that we are using for the essentials APIs that are now baked into Xamarin. 00:03:09 David I just said separate that baked into. 00:03:13 David Maui. 00:03:14 David Uh, but but this is something that other libraries, like Shiny prism, UM, sharp NATO. 00:03:21 David You know what have you? 00:03:22 David FF image all the great things that are out there in the ecosystem. 00:03:26 David You can use this same method now to initialize any of your platform specific stuff. 00:03:33 David So whereas in the past you would have to run around to the main activity. 00:03:37 David In the app XAML and your Windows stuff or your app delegates on the Apple platforms and you'd have to do special incantations of initialization. 00:03:47 David You can now do this in a single crossplatform, much simplified way using this new host builder method so native lifecycle events makes all of that possible, and we have a blog post that will be up on the Dot net blog if it's not already. 00:04:04 David That covers all of this in detail with code samples. 00:04:07 David So you can see all of this in how you can take advantage of it, or at least give you an expectation of of how you'll be using some of your favorite libraries in the future. 00:04:17 David And then last but not least is the ongoing work to bring all the controls and light them up in.net Maui and bring all the latest layout work that we've been working towards. And we actually have quite a few community contributors that have engaged with us and are starting to submit PR's for these. 00:04:36 David Controls so we call them handlers. It's a it's a new architecturein.net Maui that's much more performant, much easier to extend. 00:04:45 David And we've got a handful of I think, 678 different pull requests from the Community, so thank you to everybody who's begun engaging. Probably the most exciting thing for me is hearing them. Report to us that this is this is really fun to contribute to, and it's much easier to do than Xamarin forms was the code. 00:05:04 David Is easier to navigate and understand and the pull requests or bite size, so that's. 00:05:09 David Really cool couple of the updates to layouts. 00:05:12 David We've now added the layout options for alignment, horizontal layout, alignment, vertical layout alignment that's available on within a stack layout, and the grid and the grid now also auto sizes for the content as well as you can add absolute sizing. 00:05:30 David So yet to come, is that wonderful star Asterisk that will, you know, fill the content? 00:05:37 David Fill the space? 00:05:39 David But that'll be coming up very soon. 00:05:40 David The cool thing about grid is it's being rewritten to be Maui first, optimized for performance. 00:05:47 David We now have layout managers that are, you know, the one Stop shop place to manage all of your layout. 00:05:53 David Much easier to debug, much easier to optimize for performance, so that's a pretty cool advancement. 00:05:59 David Not something that everybody sees, but you will definitely see the benefits of it. 00:06:03 David So all of that, and probably plenty more under the hood, is now in Preview 3. 00:06:09 David We have templates that are baked in and if you use that Maui Check tool that I talked about at the beginning, you will actually get the templates as part of that process and you can dot net new Maui. 00:06:21 David Right from there we also have updated samples in the dot net mobile samples. 00:06:27 David We probably need to rename that 'cause it's got desktop. 00:06:29 David In there too, but we have that repository with updated samples that also include some project reunion samples. 00:06:37 David So definitely check that out. 00:06:39 David I think that's that that pretty much covers the highlights. 00:06:42 James Very cool, one question for you really quick. 00:06:45 James I know that in the. 00:06:46 James That the preview twoof.net six, which included the first preview of Dynamic Maui I remember I was making a video. It's kind of hard for me to name it. I was like I called it the first preview of Mao instead of preview two was because it was the first preview. But anyways, I digress. Now we're all the same run Preview 3 and it. It's happening and. 00:06:54 David Spit all that out, yeah? 00:07:05 James The first previews of the most recent one that show with. 00:07:08 James P2 I've done at 6. That was, for all intents and purposes very command line. First for building deploying there was a little bit of you know VS code experimentation in there, and the IDs were waiting. Is there any update on the IDE support or we still waiting on that and we're still command line heavy and this current preview David. 00:07:28 David Right? 00:07:28 David So nothing has changed there for this preview. We're looking towards Visual Studio 1610 like Preview 2. 00:07:36 David Which hopefully will coincide around the time preview fourdropsof.net six, so at that point we ought to have some good idea. 00:07:48 David Do you support, at least on the Windows Side? 00:07:50 David Mac will be coming after that so but but your experience on the Windows Side will be good and that should include hot reload that instant include hot restart for those who want to do direct to iOS device development as well as remote iOS simulator and remote build host for the Max so. 00:08:09 David Definitely looking forward to that. 00:08:11 David 'cause I I do enjoy some command line. 00:08:13 David I think we all enjoy it. 00:08:14 David It makes us feel like we're in the matrix, but good old Visual Studio is hard to beat. 00:08:20 Matt I do have one question for you, David. We ask it over and over again. Is there any reason why I should hold off on Dot net Maui or hold off on Dot net or.net Xamarin forms right now? Like should I just wait for.net my way to come out? 00:08:35 David I, I think, absolutely at this time, unreservedly. I would say start your projects in Xamarin forms because the migration to dot net Maui when that time comes will be smooth. Whether you do the migration in the midst you know of previews and you actually landon.net Maui when we go GA at dot net. 00:08:55 David Counts later this year. 00:08:57 David Or you actually continue on with some reforms for a little bit longer and transition when you see things to your liking, so no reason not to use Xamarin forms. The migration will be good now. You may evaluate.net Maui, you know, Midsummer, you know middle of the year. I shouldn't say summer because it's not summer everywhere in the middle of the year. 00:09:16 David Uhm, you may look at it and say, you know what, we've got everything we need here. 00:09:20 David And I bet Maui is is good to go and you may jump on the bandwagon there and you skip some reforms altogether. 00:09:27 David But you really can't go wrong either way. 00:09:29 David The compatibility is going to be good. 00:09:31 David The migration story is going to be good. 00:09:33 David We've got a new upgrade utility that we've seen used already to bring people to Dot net six, so all signs point to you can't go wrong. 00:09:43 James Very cool now I did do a video recently just to answer that question. 00:09:48 James The map proposal, which was should you learn Xamarin forms now or wait for down a mountain? 00:09:52 James I came basically the same conclusion right? 00:09:54 James Which is if you are looking to get into mobile develop. 00:09:57 James Meant and you are looking for a place to start. You should start now because everything that you learn is going to apply. There's gonna be new stuff and new enhancements that'll make your life a little bit easier. But at this point, like all the layouts, all the view models, the business logic is fantastic, but I did get a lot of questions, David, so we figured we'd do a little dot net Maui Q&A with Dave and. 00:10:20 James And then I'm going to start it off over here and Matt and I are going to go back and forth and rapid fire. 00:10:20 Speaker 4 I don't. 00:10:25 James I picked some of my top. 00:10:27 James 5800 on here for you. So the first one is from Tanveer. Can you talk about app performance and how it will improve in net Maui over Xamarin forms? 00:10:38 David Absolutely. 00:10:39 David So you know, we've got 7 years of history with Xamarin forms, so it's not like we don't know where the performance is. 00:10:46 David Great, first of all, it comes from the the wrapping of views, especially on Android, is very impactful and so we introduced a while back fast renderers which help with that, and that reduced that overhead of the wrapped view. 00:10:53 Speaker 4 And so. 00:10:53 Speaker 4 00:11:00 David But then we've also got a strong dependence on bindable object and the notification and the communication. 00:11:06 David Between the plat, native platform and the in the middle layer, your xamarin forms layer introduces a little bit of performance there as well. 00:11:15 David Or, you know slow now. 00:11:17 David So with the architecture of the handlers, as you compare that to renderers. 00:11:21 David First of all, you reduce that needed wrapping, and then we also have removed the dependence on bindable object. 00:11:29 David There are additional performance things that are introduced. 00:11:32 David I mentioned just a little bit ago about the layout updates that we are making. 00:11:36 David So we're reducing the number of iterations you do over the hierarchy of your view. 00:11:42 David Free so that we make less passes and we can more directly lay things out on the screen, so that will be a huge benefit, especially as it comes to Android, which is where we see the majority of those performance hits, so it's a pretty well known domain problem. 00:12:01 David You know, it's not like we're. 00:12:03 David Needing to learn too much here, we just now have the opportunity to actually implement these things in a pretty safe. 00:12:09 David Not going to break your world way. 00:12:11 David I'm so looking forward to that. 00:12:13 David Early indications from some very early tests show about a three times performance boost, which is awesome, and we'll see if that that trend continues. 00:12:25 David We're able to maintain that overtime. 00:12:28 Matt So the next question, David comes to us from Tellus and he asks. 00:12:32 Matt So with Blazer support, I guess you're meaning that you're planning to add mobile Blazer bindings Tamale. 00:12:41 Matt But what about the opposite? 00:12:42 Matt Will there be a new get or something similar to run Maui apps on the web? 00:12:48 David That's a good question, so I'm going to take the first part first, so it's not exactly mobile Blazer bindings to Maui in terms of what we're shipping in. 00:12:56 David Net six, the Blazer experience there is going to be a hybrid experience. 00:13:02 David The one piece from the mobile blazer bindings that we are elevating is. 00:13:07 David The Blazor web view. 00:13:08 David Umm, so essentially, if you have blazer investment in a web app, or are you prefer to build razor templates and use the blazor component model but you want to be able to deliver it as a desktop application, then you can host that Blazer web app inside of a blazor web view inside of a native application. 00:13:29 David And that native application is delivered by Maui. 00:13:32 David The cool thing here is if you've ever done any kind of hybrid work with anything else in the past, you typically have a JavaScript bridge or some other barrier that you have to go through in order to interact between your web JavaScript content and your native content. 00:13:50 David Our native application. 00:13:51 David That's not the case. 00:13:52 David Here you have really a seamless experience for the majority of anything that you would need to do, so you know from a razor template you could be directly accessing native platform stuff, whether it's file system permissions. 00:14:07 David It's GPS, you know all the things that essentials provides. 00:14:12 David You don't have to go outside that context, so that's really, really cool. 00:14:16 David Now there may be additional things in the mobile blazer bindings that will introduce overtime, but that really depends on you know the feedback that we hear. 00:14:25 David We're definitely continuing that experiment. 00:14:27 David To see where it takes us, but for now the blazor experience in net six is going to be this hybrid experience and then you can add additional views, add add controls from the Maui toolkit where you need the native things, whether it's a new native window, etc. 00:14:43 David Modal windows, that sort of thing. 00:14:46 David Come on the other part of the question here about running Maui apps on the web that is not in scope for net six. That is certainly something that we have heard many requests for, so I would say it's seriously being considered for. Net seven. While we haven't done formal planningfor.net 7. 00:15:06 David Linux and Web certainly lead the category of things that people are most interested to see. 00:15:12 David So tell us, would love to know more about what your specific needs and interests are in taking a Maui app to the web. 00:15:19 David Uhm, so that we can properly plan things on our side, we're certainly having that conversation with a lot of customers as the topic comes up to find out when you say that, what do you really mean? 00:15:20 Speaker 4 Yeah. 00:15:30 David What does that look like to you? 00:15:32 David What are the requirements from a performance standpoint, ET cetera? 00:15:36 David So it's definitely an interesting thing, and we look forward to tackling that. It's just not going to be partof.net 6. 00:15:43 James Gotta start somewhere. 00:15:44 James I say can't have it. 00:15:45 James Can't have everything all at once. 00:15:46 James Gotta build overtime based on that customer demand only. 00:15:47 David Gotta keep me wanting gotta keep him wanting that's right. 00:15:50 James Yeah, that's right. Or you know you wanna come out with a, you know set of things that you can really fully support full 100% and build on top of that. 00:15:58 James Uh, next question here. 00:16:00 James This is a good one. 00:16:00 James I like this because it kind of goes into this. 00:16:02 James You got the blazer stuff you got people talking about other platforms that you know. 00:16:07 James Acoep says in this comment on my YouTube says what're this experimental things I keep seeing when people talk about down in Maui? 00:16:14 James They they they say, there's envy you and then there is the blazer blazer stuff that. 00:16:18 James Early on and release, both talked about this is experimental stuff and there's first for you view UI. 00:16:25 James What does that actually mean for release? 00:16:27 James Is it going to be included as a not included? 00:16:29 James What is kind of that. 00:16:31 James Some promise versus reality type of situation for the experimental because I'm assuming there's experimental for some reason on there. 00:16:39 David Yeah, so experimentale really means we're not making a strong commitment to it, and it's not going to be shipping in the box, but it's interesting enough that we think that we can learn some things from it, and one of the biggest things that we want to learn from it is what the customer demand is. 00:16:56 David What is the usefulness of this? 00:16:58 David Uhm, so envy you Model view update. It's a. It's a pattern you see in products like fabulous with F#. You see it used in one way or another in flutter, react native and so it's different than than MVVM, which is the dominant pattern in a lot of dot net products which is model view. 00:17:18 David View Model, which relies heavily on data binding. 00:17:21 David Imbue, however, does more of a a messaging loop where it you message your changes up to the application, which then makes an update to your shadow Dom if you will, and then quickly rapidly diffs and and updates the UI. 00:17:37 David Uhm, it's some really cool stuff and you know, one of the learnings we have from our common experiment was the architecture of the handler. So going back to the first question about performance, we decided upon the the approach that we would take to improving the performance of xamarinformsin.net Maui, because. 00:17:58 David And what we learned from Comet from doing that experiment, and we'll continue that experiment to see how far we can take things. 00:18:05 David And in the same way that we learned from the Blazer experiment, the mobile blazer bindings. 00:18:10 David So certainly we're we're being very careful to not say this is going to become a fully supported product in and of itself, and we're also not saying that we're never going to take the the awesome bits that we've learned from it and bring it into our existing applications that we do ship and that we productize. 00:18:29 David And we we have support. 00:18:31 David You know agreements around those sorts of things. 00:18:33 David So in terms of whether Mvu becomes a fully supported product, as comment or otherwise, and whether or not you know Blazer with the mobile bindings becomes a fully supported feature of a product that really depends on on the customer demand and interest. 00:18:49 David So if you are interested in those things and you want to be using them at least. 00:18:54 David Register your interest. 00:18:55 David You know by starring and forking and liking and and any other mechanism you can think of to get our attention, reach out to us. 00:19:02 David Share your business needs in your story with us, you know, we'd love to engage you to to better understand that, but until we have that. 00:19:10 David Understanding of the real business demand and we know that it's worth us investing and and and backing it with Microsoft support. 00:19:18 David We're not going to bring it out of the experimental phase, so not every experiment is going to become a product. 00:19:25 David But we'll we'll cross those bridges as as the value obviously dictates. 00:19:31 David Uhm, yeah. 00:19:32 David So I think that kind of answers pretty much all of that. 00:19:36 David If something is fully supported then it's not going to say experimental. 00:19:40 David I think that's that's pretty good rule, right? 00:19:42 James There that makes sense. 00:19:45 Matt So the key of it is if he wants something bug David for it to take the experimental label. 00:19:50 David Off of it, that's right, right? 00:19:52 David That's at least that's at least one place to start, yeah? 00:19:52 Speaker 4 Net. 00:19:55 Matt And actually, that's one of the great things I learned ever since I'm starting here at Microsoft. 00:19:59 Matt Is that how much the product teams are listening all the time? 00:20:02 Matt So our next one is next questions from Siro? 00:20:05 Matt And we kind of touched on this a little bit before, but he brings up another good point here. 00:20:09 Matt So one, when will the previews a net model be available? 00:20:13 Matt And we've kind of. 00:20:13 Matt We did touch on that before, but when should I really start testing? 00:20:18 Matt When should I put my way through its paces? 00:20:19 Speaker 4 Hey sis. 00:20:21 David So we are shipping every month a new.net 6 preview and they will all include bumps to net Maui in terms of when you should start testing if you're if you're looking for evaluating Maui as a platform to build apps with, which I'm going to make that assumption, then I would wait until May. 00:20:41 David Hey uhm as as the best opportunity for you to do that. 00:20:46 David Enough of the pieces will be there for you to get a pretty good sense of the development experience and what your dev inner loop. 00:20:53 David You know how how productive you feel building apps at that time because you'll have Visual Studio support in some fashion. 00:21:01 David And then you'll have the majority of both plat of all four platforms there. 00:21:06 David And if you are patient, you could wait even a bit longer and let things stabilize a bit more. 00:21:13 David I would say if if the primary interest in testing is more on the performance side of things. 00:21:19 David Then I would wait even longer. 00:21:21 David Because although the pieces will be there in May, the the all the controls ported will not necessarily be complete. 00:21:31 David I would imagine that it that they won't, and So what that means is you'll get the performance benefits on some controls, but not all, and the not all really falls. 00:21:41 David Under the category of what we run with compatibility. 00:21:44 David Shims, because that is one of the nice things that we have been able to do here with the net. 00:21:49 David Maui architecture is still maintain strong compatibility with Xamarin forms because we know there are hundreds and hundreds of thousands of applications out there in daily use and we don't want to leave you behind. 00:22:03 David We want to bring you to the future. 00:22:05 James The future all. 00:22:05 Speaker 4 Yeah. 00:22:07 James Right talking about the future, Prashant Ear asks is it safe to assume that XAML will still be used for UI design? 00:22:16 James Will there be changes to control names or properties? 00:22:19 James Will it overall still be XAML or are there other kind of ways to build UI? 00:22:24 David That's a great question, so XAML is still the leading way to make your UI. 00:22:30 David You have always had the option to use C sharp, and there is a great set of extension methods in the Xamarin Community Toolkit which will also be available in. 00:22:40 David Net Maui that that makes it nicer for you to be able to do C sharp. 00:22:45 David Only UI in net Maui, which again you can do that today in Xamarin forms and and and you know little history fact. 00:22:53 David But Xamarin forms was originally created C sharp only. 00:22:56 David XAML was not added until just before. 00:22:59 David I think version one. 00:23:00 David Well, uhm. 00:23:02 David So it is still XAML in terms of control names and changes. 00:23:07 David The control names are not changing. 00:23:09 David Layout names are not changing we we evaluated that very closely and we talked to a lot of customers and developers. 00:23:17 David And while there is some interest in seeing naming that is more aligned with WPF. 00:23:17 Speaker 4 Yes. 00:23:23 David Or you WP slash win UI. 00:23:27 David There just wasn't strong enough evidence that it was valuable enough. 00:23:31 David You know we didn't win anything from it, didn't really gain us like, you know, another couple million developers or anything like that. 00:23:40 David So the the majority of what we heard was, you know what we're really comfortable with the with the the names that we have and and it wasn't hard to learn and in some cases people preferred it over other names and patterns. 00:23:55 David So so we're sticking with it and it will be the same XAML. 00:23:59 David There will be a couple of interesting. 00:24:01 David It's probably the one that gets referenced. 00:24:03 David A lot is width, request height, request and then minimum width minimum Heights. 00:24:06 David And then. 00:24:06 David 00:24:08 David You know maximum all those. 00:24:11 David The request really throws some folks, so we are actually dropping that and we are re. 00:24:19 David Considering we're not reconsidering, we are rewriting that logic so that it is more of a contract, so it's going to be width and height, min, width, midnight Max, etc. 00:24:30 David So that is one change. 00:24:31 David There may be a couple of other changes we did today just to have a conversation about colors. 00:24:38 David And so if you ever use the named colors in C sharp, it's on the color class, which actually makes the color class quite cumbersome and we are going to be taking a dependency and may may have been done by the time this comes out on the Maui Graphics Library, which has its own implementation where all of your named. 00:24:59 David Colors are on a colors plural class and then your color methods are on the color. 00:25:05 David US and and your your actual color object. 00:25:09 David So it makes more sense. 00:25:11 David It's a better design. 00:25:13 David We just had a conversation with some library maintainers about it and nobody threw up in a huge red flags, so there may be a little bit of a change there, but that really actually doesn't impact XAML. 00:25:25 David If it, unless you're doing like converters. 00:25:27 David But that's not even XAML either, so. 00:25:29 David More of a C sharp thing, but that's kind of where we're at with that. 00:25:32 David We're not ripping XAML out, or any of those kinds of crazy things in. 00:25:37 David At 6:00, but we are looking at, you know, Comet and Blazer. 00:25:41 David And there are other options out there, so our modern trends going a different direction, you know? 00:25:47 David You know, but SAML SAML is here to stay. 00:25:50 David People love XAML. 00:25:51 David I love XAML. 00:25:52 David It's good to go. 00:25:55 Matt I love XAML. 00:25:56 Matt Two, it's not going anywhere. 00:25:57 Matt You heard it here? 00:25:58 Matt Thank you David. 00:26:00 David Yeah, there tends to be. 00:26:00 David There tends to be fear around these things. 00:26:02 David You know, I, I remember speaking at a user group in Toronto back when we were allowed to try. 00:26:06 David Double and the question came up when I showed comment. 00:26:10 David Hey, I just learned all this XAML stuff. 00:26:14 David Did I make a bad choice for my career? 00:26:16 David Absolutely not. 00:26:17 David You know, we are not in the game of ripping out your livelihoods. 00:26:21 David Uhm, we've you know. 00:26:22 David Lessons have been learned. 00:26:24 David Decisions have been made. 00:26:25 David So now XAML samples. 00:26:27 David Good to go, even if even if you know some trend changed things, XAML will still be an option for you. 00:26:35 Matt That's good to hear, and so this next question kind of dovetails with that one about things being there or not being there, and it's from Kevin and he says, what if my main platform is desktop and not mobile? Does it make sense to start already with that and or two? I mean, is.net now we're going to support desktop. 00:26:56 David Yep, definitely supports desktop and all the same. You know productivity stuff that you get with Visual Studio. Once that is is out and shipping in that 1610 Preview 2 around that. 00:27:08 David Time, then you're gonna you're going to have a really productive experience no matter which way you go. 00:27:14 David I would say that and, and we've heard this from Xamarin forms developers desktop is actually a really productive way to go even if you're targeting mobile. 00:27:22 David So you know, being able to stand up a Windows Desktop application and use Hot Reload. 00:27:29 David With that and iterate on that, and then when when the time comes, bundle it and ship it to Android and iOS can be a really good way to go 'cause dealing with emulators and simulators is an additional complexity that can be a hassle at. 00:27:44 David Times and whereas desktop you know your your start times are faster, your deploy times are faster, your hot reloads typically faster, so it's a great way to go now. 00:27:55 David You know? 00:27:55 David 00:27:55 David You know we just introduced Win UI three with Project Reunion. 00:27:59 David Uhm, I would say you know looking towards preview four I would. 00:28:03 David I would definitely recommend that as you're jumping in point to to start with desktop and but you know again, you know even if you started with mobile right now and you you're just doing iOS and Android stuff. 00:28:13 David You're just doing it. 00:28:13 David 00:28:15 David As soon as that desktop stuff lights up for you. 00:28:19 David You don't have to rewrite anything, it's it's all the same code, so you're pretty much good to go again. 00:28:24 David I feel like this is one of those you can't really go wrong questions, answers. 00:28:28 James Alright, so another good one here. 00:28:30 James You mentioned this a little bit when it comes to performance and how a lot of the base layouts are being rewritten, but Branimir asks and this is a good question. 00:28:39 James I don't actually know the answer to this. 00:28:41 James Does dawn at Maui include measurement and layout management for Android like a new implementation, or does it let Android do its own measurement and layout management? 00:28:51 James You know, and which one is more performant? 00:28:54 James I think that's what Brandon Moore was asking is like in the past, Xamarin forms the layout system. 00:29:00 James You 00:29:00 Speaker 4 Yeah. 00:29:00 James You know, in general, anything could maybe have performance issues. 00:29:04 James I never really had any, but you know, could and or you're just going to allow the underlying system do layout systems. 00:29:11 David Yeah, so I'm I'm going to guess that Branimir probably knows that Android layout management is where the. 00:29:18 David The the bulk of Android performance issues lie natively so that that is a that is a good question. 00:29:27 David The way that. 00:29:28 David Net Maui does layout measurement. 00:29:30 David You know the whole life cycle of that is is really a combination of cross platform and. 00:29:34 Speaker 4 Yeah. 00:29:38 David The native platform. 00:29:39 David So we we need to know certain things from the native platform about what it what sizing it's expecting to give us. 00:29:46 David And then we can do the things on our part. 00:29:48 David As I mentioned previously, we are refactoring the way in which we do layout measurement in in the way that we're doing. 00:29:56 David That is, bringing a lot of that logic up into a cross platform layout manager and then optimizing our interactions with the native platform. 00:30:06 David So to go any deeper beyond that, I would be speaking out of the you know. 00:30:11 Speaker 4 No. 00:30:12 David Not the smartest part, so I would definitely refer you to the GitHub to learn more in detail about that and easy heart is a an engineer on the team who probably is the best one to ask questions about that too. 00:30:28 David You know, we have discussions open on our GitHub that would be a good one too. 00:30:32 David To open a discussion on and and see what kinds of responses you get from the engineering team. 00:30:37 James Yeah, I would love to see them Deep dive blog posts. 00:30:39 James Or uh, leading up to the release talking about like a lot of these under the hood changes and enhancements and tweaks back and forth. 00:30:46 James Thing that be really fun. 00:30:47 David Yeah, we actually we have some planned and and then we're just starting them, but the the first ones will probably be around the application and the handlers and then as we as the layout stuff gets more fully baked. 00:31:02 David I think we'll we'll be able to do it then. 00:31:04 David It's still, it's still baking. 00:31:07 David It's still. 00:31:07 David It's still gooey in the middle nice. 00:31:10 Matt So this next question, David comes from Douglas and this could be actually the $60,000 question. Depending on how crazy you want to get butwith.net Bowie, will you be able to develop for iOS without needing a Mac computer? 00:31:27 David So yes, you can develop that iOS application without needing a Mac computer connected where you will need to introduce the Mac as is this still the case today with Xamarin forms is when you need to do your full code signing and publishing. 00:31:46 David For distribution. 00:31:48 David There are also perhaps a few other platform specific caveats where you're going to need a Mac to get involved, but by and large your day-to-day development when using net Maui you with your Windows machine and your trusty iOS device can happily go on your way developing. 00:32:08 David All the functionality of your application, so that is still the case in Dot Net, Maui, and. 00:32:14 David Up 00:32:15 David Yeah, well, I think that's one of the most exciting things and really no matter how many times we say it, it's almost like nobody believes it and so we keep getting the question. 00:32:24 David It's like I've heard this rumor. 00:32:24 James It's true. 00:32:24 James True. 00:32:27 David I'm not sure if it's true is kind of how it sounds. 00:32:30 David It's true you can develop an iOS application with your Windows machine. 00:32:36 David In an iOS device. 00:32:38 James I I agree with you, it does seem like over and over again I'm telling people. 00:32:43 James This and proving it to them and showing it to them and and that's one of the cool parts I think about down and now you're getting all those Productivity Tools and enhancements that Xamarin forms has today so you don't have to wait to do this offline as a Gore right next one. This was a little bit more involved. I think it goes to your earlier question, which is, you know, theres.net Mountain. There's also something called Blazer. 00:33:04 James Desktop, can you talk about maybe the differences between these two pieces of technology? 00:33:11 David Sure, so I I think it'll become pretty solid and everybody minds once you actually see this stuff shipping in previews. 00:33:19 David And it's it's actually all one in the same. 00:33:24 David There's really there's no difference. 00:33:26 David The only difference is in how you use the technology. 00:33:30 David So amaui application. 00:33:32 David If you just add a blazor web view control to the screen in C sharp or XAML, you now have a Blazer desktop application. 00:33:42 David If you have a, if you start a new Blazor desktop application and you just ignore the blazor web view and you go about creating buttons and and edit entries, and you know all the different controls that Maui has, well, that's mauisoitsjust.netitsall.net. 00:33:59 Speaker 4 So. 00:33:59 Speaker 4 00:34:02 David And it all works together. 00:34:03 David I know it's a it. 00:34:05 David It seems like they're two different things, but they have a whole lot more in common than you would imagine. 00:34:10 David And because we're using the same technology investments to deliver both experiences, really this this question is more of a what kind of developer are you? 00:34:18 David Are you more comfortable doing native platform things in the net Maui style? 00:34:23 David Or are you more comfortable with HTML and CSS and you want to be able to have a hybrid experience and dabble in the native platform controls where you need to? 00:34:33 David Then Blazor desktop is your is your starting point, but that same solution that same file, new experience. 00:34:39 David Can go absolutely either. 00:34:41 David Away and you don't have to make that decision before you start your application. 00:34:45 David You can just file new whichever one you think makes the most sense for for your app, and you could get into it and say you know what I'm going to go the other direction, and I'm going to spend more time in the in the native controls or I'm going to spend more time in the HTML and you don't have to rewrite your application. 00:35:02 David You don't have to regenerate the templates or anything. 00:35:05 David It's really it's really that simple, so it's pretty cool and I think like I said, I think that'll be more solid in peoples minds. 00:35:11 David Once you actually have some some bits and some templates to pull down and start looking at. 00:35:17 James All right, one last one here for you from esico this one probably, uh, just something that people don't really know too much about because. 00:35:26 James 'cause if you're building let's say an iOS application in Swift or objective C, obviously Apple have no problem accepting your applications or the App Store. 00:35:35 James Can you talk a little bit about? 00:35:37 James You know how Xamarin and Donna Maui or compiled that you abide by the App Store regulations like the other frameworks out there too? 00:35:45 David Yeah, I mean we say all the time that Xamarin forms is is nativeand.net. Maui is native and sometimes people kind of you know, further brow a test and they're like, oh really, no, really it is. It's a matter of fact. In the current survey, I asked the question. 00:36:02 David And do you ever hear from your customers or your users or other developers certain things and one of those questions was that Xamarin is not native and it comes up which is is is just baffling because it is true. 00:36:15 David It is native and where it applies to this particular topic is underneath the hood. 00:36:20 David We are using the same compilers. 00:36:23 David Yes, we do have a net compiler that's involved and we compile the. 00:36:26 David Net code and we ahead of time compile and we do have the mono runtime in there, But then you know to deliver the actual bytecode and whatnot to Apple when submission. 00:36:39 David Committing, it's going through the same compilers that you would be using if you're using Swift and objective C, So you know all the same security checks and and all the goodness that you get, and you expect it's all there and and so you know there's I I I don't know in terms of like security. 00:36:59 David Updates in particular problems. 00:37:02 David I've never heard of an issue. 00:37:04 David I've never seen an issue reported from a customer that was ever you know. 00:37:09 David Like hey, we got rejected for this reason or that reason and we worked very closely with Apple too. 00:37:15 David So we have relationship and we we worked through some some bumps from an update today themselves posted last year. 00:37:22 David And we're able to resolve for customers. 00:37:25 David Uhm, it. It's a good relationship. We've never had any concerns that.net apps would be rejected censored in any way. All indications are that it's it's still a good relationship and we can have confidence knowing that when you build an application with net, it's going to continue to get accepted into the Apple Store. 00:37:45 David Under the same regulations as any other application, no matter how it's built, I mean, and if you were to decompile and inspect and and IPA application, the code, the bytecode and whatnot would look just like a app built in Objective C and SWIFT. 00:37:50 Speaker 4 Built. 00:37:50 Speaker 4 00:38:02 Speaker 4 But 00:38:03 James Yeah, I think that's the other thing too. There's many, many a cross platform frameworks out there, so they're all doing similar things. Everything is natively compiled and into bytecode like you're saying, and I've been chipping out for 10 years and you haven't had no issues ever. And I also remember that the app model, right? I think it's sometimes you come from a traditional.net 00:38:23 James Background, you understand how net is deployed on Windows, but that is extremely different from evenhow.net core is is is released and of course how Xamarin applications are done in Maui. Applications with net are compiled and bundled right and and mobile applications them so. 00:38:39 James Loves are sandboxed in a way that are are very different. Deployment from other things so you're not like sharing a runtime or.net with other applications. It's all bundled natively into your application, so it's a thing to sort of remember there too is is is. It's a very different app model than you're used to. 00:38:59 James And it's all compiled up like David sent. 00:39:02 James Yep, there you go. 00:39:03 James Wow Q&A done crushed it. 00:39:07 David Good you should. 00:39:07 David You should do more youtubing I don't know. 00:39:09 David Are you into the youtubing thing I'm. 00:39:11 James I'm I'm all about those, YouTube's gotta I've been. I've been dabbling in the youtubes. I've been trying to do more. You know. Longer form xamarin. 101 videos and Xamarin forms 101 videos. 00:39:22 James Kind of walk through some things and I will link to some of the down in Maui videos I've done. 00:39:27 James I'm I'm excited because you talked about the Maui check. 00:39:30 James I was, uh, early beta to internal beta tester, for for John **** is like run this random thing on your computer. 00:39:35 James OK, oh OK, sure. 00:39:36 James OK, and then it's all Red John, I don't. 00:39:39 James I don't know if this sounds bad. 00:39:40 James I was like OK, I'll try to try this one. 00:39:42 James I was like OK, so that was fun. 00:39:43 James But yeah, yeah, so yeah, we'll put a few links to the. 00:39:47 James YouTube's in the uh, notes, but you know, if you're also looking maybe brand new, you're just randomly tuning in this podcast 'cause the title was interesting. We have an upcoming events called Let's learn.net Csharp. We've been doing these, let's learn.net events Jamie Singleton from my team runs. These have different guests. The first one was on Web API, other one was on microservices. 00:40:08 James This month it is on C sharp at the end of the month, the last Friday in the month or so. 00:40:12 James It's going to be 2 hour event live stream completely free. 00:40:16 James Everything you need to know what tools you need, how to learn in the browser, stepping you through getting started with C sharp. 00:40:22 James That's going to be absolutely delightful, so we'll put a link to that. 00:40:25 James In this show notes as well and beyond the dot net. 00:40:29 James Maui News Matt we just got. 00:40:32 James One little article that I wrote about a little update to my app that I did. 00:40:37 James You'll find you Devi, you're talking about all the you know features and down in Maui and there. 00:40:41 James How Xamarin forms has all these great things I've been obviously loving Xamarin forms 5 and we talked about it heavily on the podcast, but I I rewrote. 00:40:51 James One of my settings screens and I was heavily inspired by one of your applications. 00:40:56 James It's funny if you look at this blog post, there's like an evolution of David. 00:40:59 James Dave 00:40:59 James 00:40:59 James Did a David did a sample and he had these really cool radio button things for the theme and I stole it. 00:41:10 Speaker 4 Millimeter. 00:41:11 James I turned that into a blog post about radio buttons and how item templates are awesome. 00:41:15 James And then I took that work and I created a brand new setting screen for my Cadence application. 00:41:23 James I started with a table view. 00:41:24 James Which. 00:41:25 James Tried and true table view. 00:41:26 James Everyone loves a table view in their life and I talked about like the downfalls of how I wanted to create a very beautiful UI and I want it to be exactly the same between iOS and Android and I use this card view UI with your theming and these radio buttons and I dove through like an example of what you may do. 00:41:46 James You can't just copy and paste this code because it's my. 00:41:48 James It's literally my application with my styles, but sort of a here's what it looks like, and I put a little video in there that I think is just real elegant of dynamically changing. 00:41:59 James The system themes are manually changing them, so if you're looking for some inspiration on your setting screen, here it is and I do believe rewriting my setting screen has increased the in app purchase. 00:42:10 Speaker 4 Yeah. 00:42:14 James Uhm, conversion much, much better. 00:42:17 James It's much more clear what you're getting, how to do it. 00:42:20 James Things like that, so it's very delightful. 00:42:22 Speaker 4 Well. 00:42:23 David Yeah, that dumb that settings that radio button templating was inspired by the Fluent UI design that is on. 00:42:33 David There's a website where you can go basically generate a whole theme using the Fluent UI design system. 00:42:38 David And but they also show different controls and how they expect them to be used and what they expect them to look like. 00:42:45 David And that was basically at one of the radio button templates, but then applied to theme switching. 00:42:52 David So I was pretty pleased with it. 00:42:53 David It looks cool and it shows how easy it is to really kind of implement fluent UI design patterns yourself. 00:43:00 Speaker 4 Off 00:43:01 James Yeah, I agree, I love it. 00:43:02 James I love it. 00:43:03 James Well I mean really excited for the upcoming blog posts and if we do get any, we'll put them into the show now so I'm super excited and the DOT Net 6 Preview 3 stuff 2 super excited for that. 00:43:12 James But that's going to do it for the net, Maui and Xamarin and C sharp updates now move on to our cloud news. 00:43:19 James Matt, what do you got for? 00:43:20 James Us Oh yeah. 00:43:21 Matt Since everybody loves some Docker and some Kubernetes. 00:43:24 Matt Do you even know what that is? I don't, but we had a whole you mentioned. Let's learn.net C sharp in April. Well, March was. Let's learn.net and microservices. And so we did a whole of Jamie and Shane. Jamie Singleton and Shane Boyer did a whole show where they actually walked through a learning module and answered a bunch of questions about what microservices? 00:43:25 James No. 00:43:45 Matt And are and. 00:43:46 Matt The funny thing is, is that when we were talking about containers and Docker and Cooper. 00:43:50 Matt That is, the big ship happened to be stuck in a Suez Canal and nobody asked Shane about it. 00:43:57 Speaker 4 Ask. 00:43:58 Matt True, how could you not? 00:43:59 Matt But it doesn't matter. 00:44:00 Matt So I mean, we still have the show. 00:44:02 Matt It's of course it's on Channel 9 and I would highly encourage everyone to go check it out. 00:44:06 Matt 'cause it's a nice intro to what microservices are and how you can come. 00:44:10 Matt Use those in containers and. 00:44:13 Matt Yeah, it's totally worth checking out and the other thing I wanted to point out is our good friend Misha Neal, who I think he's on your team. 00:44:22 Matt James put together this amazing document about going and learning all about like how to build cloud native apps, which has a lot to do with Microsoft. 00:44:33 Matt Versus and I'm putting together a serverless apps on like links out to all these ebooks, and all these resources on how to go out and do all this stuff, so it's like this 101 for net developers to learn all things cloud. I'm going to say Cloud native and all cloud native means is that you're thinking about developing for the cloud. 00:44:53 Matt 1st. 00:44:55 Matt And yet there's like, well, I don't know 20 different books out here that you can go download and learn. 00:45:00 Matt Not 20, but there's a lot. 00:45:02 Matt And it, yeah, it's totally cool and something you should check it. 00:45:05 Speaker 4 Wow. 00:45:06 James Yeah, and actually he's about to have another blog post and tomorrow I think you know, before the podcast comes out. 00:45:12 James But after we record which is answering your top questions from that, let's learn event so there's tons of questions came in and niche. 00:45:19 James Of course, he's he's over in India, so it was different time zone for him on the Friday so you didn't get to attend live. 00:45:25 James But he went through all the chat log. 00:45:27 James Top five themed questions and answered all of them with resources. 00:45:31 James Many of these are in the books too, and then we're putting the video in there too. 00:45:34 James So we'll link to that too. 00:45:35 James And Additionally, to cap it off because it was all microservices niche came on a lot of niche 'cause he's he's really on my team. 00:45:44 James Him, he's cloud native microservices. 00:45:47 James You know what I mean and what's great is that he has a Xamarin background. 00:45:50 James So I asked him to come on the Xamarin show and do an introduction to microservices for mobile developers and creating your first microservice for your mobile application. 00:46:01 James And what you can do with it. 00:46:02 James So there's two videos. 00:46:04 James On the xamarin shell. 00:46:05 James Where he just talks about terminology. 00:46:07 James What is a container? 00:46:09 James What is a microservices? 00:46:10 James What is an orchestrator? 00:46:11 James What is a docker? 00:46:12 James What are the files? 00:46:13 James All these things walks relevant. 00:46:15 James Why? 00:46:15 James Why should you care about microservices? 00:46:17 James What's involved in? 00:46:18 James It's really elegant. 00:46:18 James Great we link to that. 00:46:20 James But then the second video is building your first one locally, testing it, and what he does. 00:46:25 James He uses Kubernetes and what he's able to do is have his mobile application speak to one endpoint. So let's say it's mysite.azurewebsites.net/APIpizza. 00:46:37 James But because of how Kubernetes can do routing, he can change between a V1 or V2A dev or a prod for an endpoint and his mobile application doesn't have to change anything. So you can upgrade your back end and your endpoints easily across your mobile applications by using this micro service. 00:46:56 James Technology to sort of open a gate if you will to to change the Lane sound like a train changes tracks. 00:47:02 James You can easily do that so it's good videos. 00:47:04 James Definitely check it. 00:47:05 James Now lots of micro service stuff, but that's going to bring it up to our service of the month. 00:47:10 James Matt, what you got? 00:47:11 Matt For us, I was looking around on Azure for Azure documentation like what can we pick for the Azure service of the Month and find out I had no idea this even existed is that we have an Azure health bot. 00:47:23 Speaker 4 Huh? 00:47:24 Matt Yeah, I sat there, so yeah. 00:47:25 Matt So. 00:47:25 Matt 00:47:26 Matt Exactly what does that do? 00:47:28 Matt And So what this this health pot does? 00:47:30 Matt It's great for like you can go in and like if you have like it's screening for questions like do you have a fever today? 00:47:36 Matt You know I have you been around so many like the last 14 days so like this like a telemedicine. 00:47:41 Matt Then or going into health insurance stuff like that. 00:47:45 Matt And there's an API for it, so you get this prebuilt like starter Kit and then you can kind of customize it for what you need. 00:47:53 Matt And so yeah, it's pretty neat. 00:47:54 Matt You have a bot and then you'd custom industry built for healthcare and you kind of tweak it a little bit for exactly what you need with your API and you can. 00:48:02 Matt Hand it off to teams and all that other other good stuff that we have built in. 00:48:06 Matt And yeah, or even like a live agent. 00:48:10 Matt Pretty cool stuff. 00:48:11 James Nice, I like that actually went to the dentist recently, which is very scary. 00:48:15 James And also I love the dentist but they had that type of thing but it was a piece of paper so this would have been a lot better. 00:48:20 James Actually I like that I'm going to check that out and that's going to bring us to our final. 00:48:25 James Segment our pick of the. 00:48:27 James Pod if David still around David, do you gotta pick up the pot? 00:48:31 James Do you even know about the pick of the pond? 00:48:32 James Did you do a pick up last night? 00:48:33 James Pick the file. 00:48:33 David Pick of the pod. 00:48:34 David I feel like I did just my favorite thing from the podcast. 00:48:39 James No favorite, you know. 00:48:40 James And it's like any OK if you're brand new to the podcast, 'cause David is obviously. 00:48:45 James This is a library, a service, a GitHub project, tape or anything, anything pic of the pod that is excited. I'm going to give you time to think about it, 'cause my pick of the pod is Visual Studio 2019 sixteen .9 XAML code generation for MBI. Also did a YouTube video on this. 00:49:05 James And a blog post which will put in there. 00:49:07 James But this is the most amazing thing in the world. 00:49:11 James Let's say that you have a, you know, databinding. 00:49:15 James You're creating a UI in XAML for WPF, WP, or Xamarin form. 00:49:18 James And soon down Amaui and imagine you're like tax label and you're like text equals binding first name, But the first name doesn't exist in your viewmodel. 00:49:27 James What're you gonna do? 00:49:28 James Well, all you gotta do is hit that little light bulb and it will automatically generate the property for you and implement. 00:49:34 James I notify property or the command for you automatically. 00:49:38 James It is mind boggling amazing oh I talked to the engineering team on this today and very excited for what they're doing and what they have planned. 00:49:47 James But it is spectacular, and if you're interested in this, it's in the current release 1609 of Visual Studio 2019. It is amazing and I can't wait for everybody use this feature because it blows my mind and it's my pick of the pod pick of the pod. 00:49:52 Speaker 4 Yeah. 00:50:03 David All right, I got one. 00:50:04 David OK, so I would normally say and this is my little excuse to be able to say two things. 00:50:11 David I would normally say the Xamarin forms Community toolkit 'cause I noticed they added shadow support, but since this is one that I don't think many people know about, I mentioned earlier the comet experiment. 00:50:24 David In order to support that James Clancy, the author of the experiment, has shipped his experimental Comet extension for Visual Studio Code. 00:50:35 Speaker 4 Me. 00:50:35 David Now what's interesting about this is that because comma is based on Maui and. 00:50:41 David Net six things, it also works for other. 00:50:45 David Net 6 scenarios such as net mowie. 00:50:49 David So don't look now, but if you want to go enjoy some experimental VS. Code.net six things, check out the common extension and use that in combination with a. Net new Maui project in Preview 3 and you can debug. You can edit, you don't get great XAML. 00:51:09 David Tell us sense, but it's pretty sweet to see some of these things lighting up from the Community if you will in Visual Studio code. 00:51:18 James Nice. 00:51:19 James Cool, how about you? 00:51:20 Matt Yeah, alright, so I'm going to talk about we hit on this a little bit last time, but I really am digging the learn live modules outcome that work that we've been doing lately. 00:51:31 Matt So what it is is that you're going over an actual Microsoft learn module with the experts to help you out through it. 00:51:39 Matt So you're actually sitting there. 00:51:40 Matt It's like going to a workshop at a conference and you're being able to ask questions as you walk through a wired module, and I want to see what's coming up so I can. 00:51:49 Matt Help people understand. 00:51:51 Matt So like one of them that we did recently was like oh, we did a ton of Azure SQL Fundamentals, so you can actually sit down, learn live and actually ask like the product team, you know what's going on. 00:52:01 Matt How do I use Azure SQL and sit down, learn, live with the experts and it's like a full workshop. 00:52:10 Matt At your fingertips at your convenience. 00:52:14 James Very cool, I like it. 00:52:16 James Well there you go that is another Xamarin podcast in the bucket if you will. 00:52:21 James In the bin. 00:52:22 James We appreciate everyone being here and of course will let us know what your questions are. 00:52:26 James You can go ahead and leave comments on that page or tweet us, so I'll put all the links in the show notes or anything you want and we will be following up on next month. 00:52:34 James On another Xamarin podcast. 00:52:36 James Thanks for listening.