00:00:10 Matt Second, welcome everyone to the.net Maui podcast. We're here to keep you up to date with the latest and greatest.net client development. We'll talk about some measure, some Visual Studio, some blazer and ofcourse.net. 00:00:31 Matt I'm Matt Soucoup 00:00:34 James And now I'm James montemagno. 00:00:36 David And I'm David Ortinau 00:00:38 Matt So you see, I really wanted to enunciate my name because after the recordings I send it through Microsoft Word transcript or transcribe, and I wanted to make sure it gets my name without having to redo it so it gets yours every single time. 00:00:38 James I guess. 00:00:52 Matt James James went to Magno David. 00:00:56 Matt It always picks you up as David work. 00:00:59 David Yes, that's true. That's true. 00:01:00 Matt I was like maybe going to work? 00:01:02 Matt So I mean, it's like it doesn't get anywhere near mine, so. 00:01:06 David Man, you gotta train it. 00:01:06 Matt It's like, that's so cow. 00:01:07 David You're gonna train the. 00:01:08 Matt That's that's what I'm trying to do, so I'll be enunciate ING every single time I make. 00:01:12 Matt Sure get. 00:01:12 James I I use on the for merge conflict and for my YouTube video they use D script which is pretty cool and I run the run it through that and whenever I say net Maui it's. 00:01:24 James As Donna, Donna Maui like Dio and like the person Donna like I'm saying Donna. So I gotta saylike.net, you know. Luckily in that tool, what's nice is you can do a control shift like fine and replace, which is pretty nice, but I'm just like, Oh my goodness, like it's, you know? 00:01:43 James I mean, we always had the same problem. 00:01:44 James With Xamarin too, it would be like. 00:01:45 James Yes, famr in or something like that with this, like a salmon salmon. 00:01:50 Matt So, so what's cool at the word one because it is Microsoft. It picks up.net Maui with period any T all capitalized Maui all capitalize. So it gets it like that's built in. Yep. 00:01:59 David Wow, that's powerful. 00:02:01 David I was gonna actually just say that I was doing some translation this morning for a survey that I'm running and I wanted to get it into some some other languages and I was noticing that the tools I was using to kind of help me out. 00:02:14 David They really get confused with the.net part because of that period, because it seems like it's the end of a sentence or the beginning, and so I just started stripping it out when I was doing the translations and that seemed to really help, and then I would throw it back in at the end, but. 00:02:30 David Congrats to Microsoft Word for getting it. 00:02:32 David Right now. 00:02:35 James I like it. 00:02:35 Matt Office 365. 00:02:37 James That's amazing. 00:02:38 James You showed me how to do it. 00:02:39 James I need it. 00:02:40 James I need to do it. 00:02:41 James Wait, give it a go. 00:02:42 James See what's backing up. 00:02:43 James Or they just have like you. 00:02:43 James Once you have your workflow setup you like, boom, you're going to go. 00:02:46 James Just like, you know, I recently been Frank and I on the merge conflict next week, so people was in this on Friday or whenever this comes out, we're talking about upgrading. 00:02:56 James Libraries and doing stuff 'cause rank these updates SQL Lite, Dash, net, but it doesn't really need to update it, just the dependencies. 00:03:00 David Yes, again. 00:03:03 James But I was updating a bunch of my libraries and I want to make sure that as people move to net six and down in mauiand.net seven which will talk about that they can seamlessly migrate and update their projects and their self. 00:03:17 James Which means you've got to have all those dependencies and all those new gets updated. 00:03:21 James So if you've been. 00:03:23 James Following me on Twitter, I have been that hackathon week over here and I haven't gotten to hack on a lot, but I did write a new SQL Lite sample and a new SQL Lite documentation for the for the docs on learn.microsoft.com. Awesome. 00:03:39 James Did that, yes, uh, put links to that new documentation, which is fun. 00:03:43 James Now the other thing is that. 00:03:47 James You know, just like me, I've been wanting to upgrade some of my apps and I've been waiting for this Bluetooth plugin to upgrade, and it's it's so we're we're there. 00:03:58 James We just got the green light yesterday on GitHub actions, but you know, Alan Richie is like, hey, use my thing because it's like it's already ready. 00:04:03 James It's all stuff I'm like yeah, I don't want to re re. 00:04:05 James I don't want to rewrite, I don't want to rewrite it. 00:04:07 James I want to move progress forward. 00:04:09 James I want to do his least amount of work as possible. 00:04:12 James And then you know people are like, hey, I'm still using your settings plug in because you have this app before as Xamarin Essentials came out and. 00:04:20 David They want to do the least amount of work possible. 00:04:23 James Yes, so my settings application is now updated and media plugin and all these other ones. 00:04:29 James The Settings plugin supports 14 different platforms. 00:04:34 James That's all I got as all the old XAML ones, all the new net sixones.net framework.net six, all of them. They're all updated. 00:04:42 James All every single framework I could possibly include that would compile in Azure DevOps, it's doing it. 00:04:48 James So to continue onto your list, I know there's like happier as a list or jailed as a list of like updated. 00:04:54 James Libraries like I've just been. 00:04:56 James Jamming on it, just keeping it going. 00:04:57 James So it's out there as we progress. 00:04:59 James And so, so we have a whole conversation on, on merge conflict upcoming about my strategy and frank strategy. 00:05:06 James And if we're going to only target down at 6:00 or we do down at 7, like what does that look like? 00:05:10 James And we kind of talk in depth on that, which is pretty fascinating, I would say. 00:05:16 James So it's a good convo, but all those libraries gotta get all the libraries. 00:05:19 James That's the slow but sure. 00:05:21 James And it honestly it only takes me like. 00:05:23 James 30 minutes to do a library. 00:05:25 James So it's not bad, it's not. 00:05:26 James It's like I don't want to change any source code for the media plugin. 00:05:29 James I did only because I wanted. 00:05:31 James To support Mac catalyst. 00:05:33 James 'cause the new platform I had to like add support it and I just removed some features that weren't supported. 00:05:39 James Make it so. 00:05:40 David That's that's a good start right there. 00:05:43 David I mean, having libraries available, like I said, we're running a survey right now and asking people what their upgrade experience is and what we can do best to help. 00:05:53 David And you know, some folks who don't have a lot of dependencies? 00:05:56 David They have pretty smooth sailing 'cause they don't have to rewrite their XAML or anything like that. 00:06:00 David Really just a couple of touch up things. 00:06:02 David A few things have changed, but where things really come down to some things that are outside of many developers control. 00:06:10 David Is, you know, SQL Lite or whatever the third party dependency is. Something I did actually just see is that Friday the Azure admsell.net shipped publicly their supportfor.net, Maui. So that's exciting. It had been in preview for a while. 00:06:29 David And I saw from Samir via e-mail actually today that Friday it went out. 00:06:36 David So more and more of those coming every week I've been. 00:06:42 David I was searching the Nougat feeds in GitHub over the weekend as well, and. 00:06:47 David Some pretty exciting things just in general are out there, so if you can't find the library that you need, maybe there is an alternative. 00:06:56 James Very cool. 00:06:57 James Yeah, I love it. 00:06:58 James It makes a lot of sense. 00:06:59 James I was also, I was doing the learn metelmann. 00:07:01 James I were doing the learn live series, which is going to pick up again in October, at the end of October and a lot of people had a lot of questions. 00:07:08 James About like, oh, can I do this thing? 00:07:11 James You know, this control or access this API, and one was about secure storage or whatever. 00:07:18 James I said, yeah, you know, there's an API, but like also like you can just write the source code like it's just there, you know? 00:07:23 James So that's one sort of thing that we were kind of. 00:07:25 James Talking about is like. 00:07:26 James Don't forget that. 00:07:28 James That the API's are available. 00:07:31 James For you to actually, you know, put out there. 00:07:34 James So that's another thing I think where as we continue this story and update the documentation, you sort of see that go a little bit more I think of talking about, yeah, don't forget all those API, iOS and Android APIs are there, right. 00:07:46 James So be good to go. 00:07:48 David Absolutely shouldn't be more than just a couple keystrokes away, really. 00:07:52 David But you know, that's part of getting our documentation more fully written out and samples for all of these sorts of things so that people can kind of see that in action and and hopefully fall in love with it like we. 00:08:05 David Have it's great. 00:08:07 David So we've got some new releases out. 00:08:09 David Where you talk about this? 00:08:11 James I'm right? 00:08:12 David Let's do it. So 22 big releases from mauiwehavea.net, six service release 5 that went out. 00:08:21 David Typically when we service release we don't do big blog posts about that, so you can kind of see that by checking the nu get feeds for the manifest updates or go into. 00:08:32 David Our release is on the Maui repo, so dozens of quality bug fixes and things like that in there, as well as some version bumps for dependencies like skia Sharp and Tizen and some of those things. 00:08:47 David But the bigger news wehavea.net 7 release candidateonefor.net Maui. This is really cool, and this is the first time that Maui developers are seeing the upcoming release in.net 7. 00:09:05 David So to recap kind of what this looks like and what you'll be able to do in here. Even more bug fixes than you got there in the service releases that we've been shipping all along the way. With.net. 00:09:15 David Six really. 00:09:16 David The big thing for mobile developers is maps is now joined in the fun and actually the maps packages. 00:09:24 David You probably will find them for net six and net seven. 00:09:28 David Both of them should be published or were being published, but we're talking about it as part of our net 7. 00:09:35 David Scope of work. 00:09:36 David It it does also support Mac Catalyst, so on Mac you can actually see maps as well. 00:09:42 David And it's all the same. 00:09:44 David You know, annotation features and things like that, that Xamarin developers are familiar with. 00:09:48 David Dropping pins, custom pins. 00:09:50 David Drawing polygons and you know so you can build your Strava clone or your whatever your fitness app clone is. 00:09:58 David Yeah, yeah. 00:09:58 That's cool. 00:09:59 David Some of the coolest things I've seen done with maps is like, you know, hey, an app is doing something agricultural related, right? 00:10:06 David And so you have different plots of acres of property and you're farming this over here and that over there and you can basically do a ton of a Geo mapping across. 00:10:17 David And monitoring your soil, whatever. 00:10:21 David You know, really interesting scientific stuff that goes way over my head, but it looks really cool when you roll it into an iPad app or something. 00:10:30 David So the one interesting thing about maps is the win UI toolkit does not yet have native maps. 00:10:37 David It is something that is on their future road map, but it's not there today. 00:10:43 David So if you look at the Community toolkit you can see both an open issue with the proposal for enabling a windows. 00:10:50 David Map as well as a pull request that includes the code you would need to enable the handler for a map on Windows and the way in which this was done is using a a browser so it uses a webview and then loads up. 00:11:06 David Uh, I think it's Bing maps or could be something else I actually not not remembering, but that's kind of just a stopgap. 00:11:15 David And then when Windows or win UI does release a native map, we can then add that in the box for.net Maui. 00:11:22 David So I think right now if you only bringin.net Maui and then you run on Windows. 00:11:27 David You'll either get a warning message or you'll get a a Gray box. 00:11:32 David So that's great news for mobile developers, and that actually came up in the survey as well. 00:11:37 David We need our maps, need to be able to upgrade our apps from Xamarin, and we have a map. 00:11:42 David The, the, the rest of the Big featuresin.net seven for us. And you know, I say they're big features really. The big bulk of the work is quality improvements across the. 00:11:52 David Board bug fixes. 00:11:54 David But there are some new things in here based on what we were hearing from customers using Maui over the past 6 to 8 months. 00:12:00 David And those are around desktop. 00:12:02 David So when you're building desktop apps, you often have need for context menus, for tooltips, for right click gestures for hover and and also for being able to easily control the size of the window and position the window. 00:12:20 David Matter of fact, I was recently talking to a customer. 00:12:22 David Or who's building a desktop app with Maui and they said we have a minimum size requirement. 00:12:27 David How do we constrain to make sure the user can't go below a certain size? 00:12:32 David And I was, you know, thankfully, we were able to tellthem.net seven. It's super easy for you. You could now have a minimum width, minimum height. Then you set that value. 00:12:42 David And it will constrain your window. Same thing with maximum width and height as well as you know your X&Y positions et cetera. 00:12:49 David So All in all, it's going to be a pretty good release there for for those desktop features and for everybody because we're continue. 00:12:57 David Doing that, that March towards, you know, stability, quality, making sure that everybody is super happy with achieving whatever they need to dowith.net. 00:13:07 David Maui performance is looking really good. 00:13:09 David App size is looking really good. 00:13:11 David Really know if anything it's a little bit faster, a little bit smaller. 00:13:16 David It hasn't regressed. 00:13:17 David Which is something that we're always watching out for as we're slamming new things into the box. 00:13:22 David Slamming makes it sound like it's a. 00:13:25 David We're not making sausage here, making software. 00:13:29 David So yeah, that's kind of the the gist on that. 00:13:34 David You know, with having.net seven side by side, with.net six on your box. We did a lot of work are I say we'd the engineering team did a lot of work. 00:13:44 David I just sat back and watched the messages go past me, but essentially, you know, with Visual Studio you can install. 00:13:51 David You know versions side by side. 00:13:52 David You can have the stable version in the preview version, right? 00:13:55 David I mean, we all do that on Windows for sure. 00:13:57 David Some of us have five or six installs going. When it comes to netandthen.net preview installs, it's the newest one that wins, right? Like by default. And then you can do some things like a global global dot Jason. 00:14:11 David Where you constrain that directory to a particular versionof.net that's installed on your machine. 00:14:18 David Well what we've done, what the team did for.net seven is made sure they allowed essentially a multi targeting type scenario where you can still load up a project in solutionthatis.net. Sixeventhough.net Seven is your default install and it will build that, compile it, and run it as a. 00:14:37 David Net 6 app, no problem. 00:14:40 David And then you can also file new in the same directory a.net 7 application and it will build and run with.net seven just fine. So you don't really have to worry about you know which version of dot net which TFMR my. 00:14:56 David Isn't so that will hopefully help a lot of people out and make this a smooth kind of, you know, transition from 6 to 7. 00:15:04 David If you do want to upgrade your apps from 6 to 7, 'cause I can see on your face is on the video. 00:15:10 David You're you're asking how do I Dave? 00:15:12 David How do I upgrade? 00:15:13 David From 6 to 7. 00:15:13 James Dave, how do I update because I have a lot of dot net six.net Maui applications? 00:15:19 James How do I do it? 00:15:20 David 'cause 'cause you know from from.net framework to dot net six for Xamarin. Not quite so smooth right? You got you got some work to do? 00:15:30 David No, we we have worked so 6 to 7 actually super easy. All you do is you go into your CS project, you change the six to A7 everywhere you have a target framework. 00:15:42 David And then you, uh, I recommend delete your bid obj folders out of your directory. 00:15:49 David close that Visual Studio, reopen the Visual Studio to make sure it restores the dependencies from a clean state, and then you and then run it and most cases you will. 00:16:01 David Just work. 00:16:03 David Which is the kind of upgrade we're looking for, right? That's the future that you're going to get when you get on the.net Maui. 00:16:10 David I wants a train, but I feel like it needs to be a boat. 00:16:13 James On the way, on the wave, yeah, there's. 00:16:16 David Always a way visit. 00:16:18 James So I did this yesterday, I updated everything and everything was working pretty great. 00:16:23 James Now I we have a Maui samples repo and I had an issue on my end where I you had a Jason Global. 00:16:34 James To use up, I deleted it and then everything seemed to work just fine. 00:16:37 James So I don't understand global jasons as much as I should. 00:16:40 James And I was talking to Frank about this, too, and he's like, oh, that should work. 00:16:44 James I don't know. 00:16:44 James But like, I don't know. 00:16:46 James Pretty much what I've done and what seems to be working fine is if I create a new down at 7 project it works. 00:16:51 James If I create a new down at 6 project it works. 00:16:55 James Now that's because I have both done at 6 and down at 7 installed on my machine. 00:16:59 James So that should continue to work overall in general. 00:17:03 James So but I think what we'll end up doing for those Maui samples. 00:17:07 James Is do you think? 00:17:08 James We'll duplicate those into the.net 7 folder and then update all the TFs. What are your thoughts? 00:17:12 David Yeah, I don't know. 00:17:14 David I yeah, I thought about that too. 00:17:16 David I I really don't like the idea of having to maintain multiple versions of the same sample and keeping them all working. 00:17:23 David So, so I don't know if like the seven should just kind of build on top of the six 'cause like. 00:17:28 David You can still build all this examples. 00:17:31 David With your. 00:17:31 James Only seven install. 00:17:33 David You should be able to, yeah, yeah. 00:17:35 David Uhm, now the, you know, I don't know. 00:17:39 David Listeners, we need your feedback. 00:17:41 David Is Alice what to do? 00:17:43 David I don't know. 00:17:43 David What would be the, you know, the most useful. 00:17:46 David I maybe, you know, we just nuke the six, bring everything from 6 to 7 and then like, I just don't want to have to maintain multiple versions of all the samples. 00:17:55 David That was kind of the headache 'cause Xamarin. 00:17:57 David We had so many samples. 00:17:59 David We had the Android samples. 00:18:00 David The iOS samples, the form samples, and there were hundreds of projects, hundreds, and that just became a real burden to maintain and keep everything updated with each release. 00:18:13 David We definitely want to be able to use all of these samples to validate all of our releases as we build that. 00:18:18 David You know, build that repository up. 00:18:20 David But yeah. 00:18:21 David Don't have a good answer for it. 00:18:23 David I love to know what listeners think, what what the community thinks. 00:18:27 David And you too, James and Matt. 00:18:31 Matt How about a warning tag that says this sample is no longer being maintained? 00:18:36 Matt Just a little bit. 00:18:37 Matt Let it go, let it go to pasture. 00:18:41 Matt I don't know. 00:18:42 James I need to think. 00:18:42 Matt Right. 00:18:43 Matt That's seven. That's my. 00:18:45 James I I like the idea of. 00:18:48 James I like the idea of. 00:18:50 James Things like six thought it was like the base, like if it works anywhere, it's here. 00:18:56 James I don't know. 00:18:57 James It's something we really got to figure out. 00:18:59 James We can always reorganize it. 00:19:01 James Like the idea was, hey, these samples were here, but if you go to the blazer samples, they have like, hey, here's 10 samples and like, they duplicate it. 00:19:08 James Like, that's it. 00:19:09 James But I think I like the idea like if you actually go to the Maui samples will put a link to this in the into the. 00:19:15 James So the document basically it's github.com slash.net/maui dash samples. Very simple, straightforward, love it. There's also blazer and blazer samples. 00:19:24 James So what's cool is like I was I was just messing around. I had just done the SQL Lite Dash net sample and the 6.0 'cause. 00:19:30 James That's what we ran because I started it on Monday and then everything came. 00:19:34 James Out on Tuesday. 00:19:35 James But I wouldn't put it in the seven dot. 00:19:37 James Oh, because I just created a 6. 00:19:38 James .0 app, but what I like. 00:19:42 James If you go in there, you know. 00:19:44 James David has updated samples where it's just like and. 00:19:46 James Here's the map sample, right? 00:19:47 James And here's the. 00:19:49 James In fundamentals, here's a context menu and a tooltips like. Here's new stuff added in net seven, but everythingfrom.net 6 still works. 00:19:57 David Yeah, yeah, I like that. 00:19:59 David You can see what's in seven by looking at the folder structure, but it does have, you know, other complications. 00:20:05 David So I I think we may want to. 00:20:08 David Consider some alternative organizational methods we always do, like a readme index that which we already have an index in there, but we could. 00:20:17 David We could utilize that to kind of say here are the things that are introduced in seven. 00:20:23 David I don't know that we actually have this. 00:20:24 David See, this is the thing, right? 00:20:25 David This is our first foray into going from a major version to a major version. 00:20:30 David So there are workload things to figure out. There is the.net runtime and side by side multi target thing that I just described that had to be worked out. We're we're definitely. 00:20:43 David Covering some new territory in a lot of spaces, and this is just one of them. 00:20:47 James I kind of feel like. 00:20:49 James If we rename the folder 6 from 6 auto to like Core, I don't know it isn't even core but. 00:20:57 James Like this is the this. 00:20:59 James Is the base you know, like. 00:21:02 James This is the base of like everything in this folder applies. 00:21:06 James I know. 00:21:06 James Here's the seven features. 00:21:08 James Here's the 8 features. 00:21:09 James Here's the 9 features. 00:21:10 James 'cause, ideally it's all in there, and it's all. 00:21:13 James Good to go. 00:21:15 James The question is, like, do we want to target or do we say, hey, we're gonna move everything to dot net 7? 00:21:20 James Like hey, here's heresa.net 7 folder which is features specific to Donna folder, but hey it sit down at 7. But here's animations where we just update all the TFM. 00:21:30 James In one go. 00:21:32 David Yeah, so maybe like stable in preview, we can use terminology like that. 00:21:36 David And so preview is the upcoming release and then once it becomes stable, those things could fall back into the stable folder that that'll create some link and SEO problems, but. 00:21:48 David Those are solvable. 00:21:50 James Yeah, something to think about. 00:21:51 James Let us know. 00:21:52 James Go over to that GitHub repo and give us some feedback. 00:21:54 James On how you'd. 00:21:54 James Want that organized? 00:21:59 David Good, would love it. 00:22:01 David But yeah, so far feedback on the on the release seems fairly positive. 00:22:07 David There have been some workload hiccups and so if you find it, hopefully by the time people hear this it's all resolved like the engineering team knows what. 00:22:17 David The issue was with the workload install update situation. 00:22:21 David If you had a brand new clean machine everything was great, but we don't all go out and buy a new machines every time a new release comes out, so. 00:22:30 David If you found that you were getting some bizarre message about, you know, iOS and catalyst workloads not being there, even though the TFM recognized something something that has been resolved. 00:22:41 David Hopefully by the time you're hearing this, things are building right now as we're recording. 00:22:46 David Those usually take, you know, the better part of a day. 00:22:49 David For validation and code signing and testing and everything. 00:22:53 David And then we'll push them out to Nougat and everybody will have them. 00:22:56 David But yeah, other than that, people seem pretty receptive to the features, which makes sense since the features are there because people ask for it. 00:23:06 James Awesome, I love it. Now this is available in command line, but also Visual Studio 2022 seventeen .4 Preview 2.1. 00:23:15 David One correct on both Windows and Mac by the way, which I think may have gone under the radar for some folks. 00:23:18 James Don't wait. 00:23:22 David Uhm, so hey, we just shipped both Windows and Mac on the same day. 00:23:29 James I love it. 00:23:30 James Celebrate it. 00:23:31 James So go check that out. 00:23:32 James And there's a bunch of stuff inside of 17 for pre. 00:23:35 James You two, that's all in there. 00:23:36 James So not only do you get, you know, all this goodness, there's actually a new rollback feature. 00:23:41 James So if you do need to rollback for. 00:23:42 James Some reason you. 00:23:43 James Can do that. Multiple git repositories. There's a bunch of new enhancements to the Test Explorer, a bunch of stuff for C developers, arm 64 support they I think they added node I think we're still working on. 00:23:55 James IOS, Android, Mac, windows for ARM 64 development. 00:23:59 James On an ARM 64 machine. 00:24:02 David Right, right. Yeah. 00:24:02 James Write down the road, yeah, yeah, it's coming at some point. 00:24:05 David It's coming, coming. 00:24:07 James All sorts of, oh, they have built in markdown support as well. 00:24:11 James So there's a preview feature. 00:24:12 James You just turn that on so you see it side by side, which is rather a bunch of new data tables table like visualizers and they got all sorts of good stuff, always updating all sorts of good. 00:24:23 James So just go check it out. 00:24:24 James Install it. Go get it. 00:24:24 Matt The big one for me there is the inline name. 00:24:28 Matt Variable refactoring. 00:24:30 Matt You know how when you change in variable name you get like that window that pops up way up top? 00:24:34 Matt Now it actually changes. 00:24:35 Matt You can change the name of a variable right in code like you. 00:24:38 Matt Don't have to. 00:24:39 Matt I don't know. 00:24:40 Matt You don't have to jump your eyeballs around on this screen. 00:24:43 Matt It's actually change a variable. 00:24:44 Matt Yeah, actually it makes total sense. 00:24:44 Matt That's cool. 00:24:46 David I think so. Focused. 00:24:48 David Yeah, it does. 00:24:49 David I've been so focused on SDK things that I was completely unaware of that whole list of things you just rattled off. 00:24:54 David I'm super excited now. 00:24:56 David It's like the rollback thing I I need to I need. 00:24:59 David To know more about that. 00:25:00 David Markdown preview? 00:25:02 Speaker 1 But yeah. 00:25:03 Matt I saw that just before, James. 00:25:04 Matt When we were doing the learn life, you had the markdown in your Visual Studio. 00:25:08 Matt I was like, what's that? 00:25:10 Matt I didn't say that, but I was like. 00:25:10 James Oh yeah, like magic. 00:25:12 Matt Let's let's let's find out. 00:25:15 James Yeah, that's that's one of the cool. 00:25:16 James You know, there's all sorts of stuff. 00:25:18 James I was. 00:25:19 James What else did I do in there? 00:25:20 James Oh, I got access to a new feature. 00:25:25 James Uhm, you had to sign up for it now, but I got access to it. 00:25:30 James It's called. 00:25:33 James Enable port tunneling for web apps. 00:25:36 James This is a super cool feature Visual Studio on Windows. 00:25:39 James What this does is, and let's say you debug a Web API, you know you're on localhost. 00:25:49 James Now, that's fine if you're on Android, but not really 'cause. 00:25:52 James There's cirts and then HTTP versus HTTPS. 00:25:54 James It's kind of always been a pain. 00:25:56 James We have documentation that outlines it, but what if you want to test that on your iOS device? 00:26:02 James What if you plug your iOS device into your Windows machine? 00:26:05 James You use hot restart. 00:26:07 James You can't talk to localhost. 00:26:09 James But you can port tunnel, so when you hit debug on a Web API what it does is it will register a publicly available. 00:26:17 James You have to turn it on this feature in your in your deployment script obviously, but. 00:26:21 James When you debug it will. 00:26:22 James Give you a publicly accessible URL for your Web API, your website or whatever you want, which means back in your.net Maui app. 00:26:30 James You can update the URL that you're calling. 00:26:33 James To be that URL so your iOS app that's running just locally in debug mode can speak to your localhost through this port tunnel. 00:26:43 James And if you add a breakpoint into your Web API, when you hit that get monkeys on your phone, it hits the breakpoint in Visual Studio 'cause it's still running on your machine. 00:26:52 James It's a banana. 00:26:54 James It's amazing. It's so cool. 00:26:57 James That's a game changer. There are like honestly like 100 different features in the in the preview features and Visual Studio on Windows. 00:27:06 James So, like, you know, all sorts of stuff. 00:27:08 James Give it a, give it a look. 00:27:09 James What else we got? 00:27:10 James Oh my gosh. 00:27:10 James OK, let's progressive. 00:27:11 James Matt, what do we got going on? 00:27:13 James 'cause you and I've been. 00:27:13 James Doing a whole bunch of stuff together. 00:27:16 Matt Well, we had that whole cloud skills. 00:27:17 Matt Well, let's start with the learn lives changes that's still ongoing. 00:27:21 Matt We did what, three of them? 00:27:22 Matt We just got our three third one done. 00:27:23 Matt We're not halfway through because there. 00:27:25 Matt Are seven of. 00:27:26 Matt But we aren't taking a quick break till the end of October because Ignite starting up here so pretty soon. 00:27:31 Matt So that's going to take on learn. 00:27:35 Matt What is it? 00:27:35 Matt What is it called? 00:27:36 Matt Burn TV now learn tracking TV. 00:27:38 Matt I forget what training TV it doesn't matter. 00:27:39 James Whatever it is. 00:27:41 Matt We're taking. 00:27:42 Matt The point is we're taking off till end of October, but you can go check out. 00:27:45 Matt I'll put the link here in the show notes, but James and I go over each of the net Maui, learn modules in depth, where we? 00:27:55 Matt Talk about every single point made in there. 00:27:57 Matt We talk about those points. 00:28:01 Matt Over and over again we really turn them out and then we go over some code and we actually type it out and we make it better as we go to and we explain every point online. 00:28:12 Matt So we got three done. 00:28:13 Matt I'll put the link to all three shows that we have done so far. 00:28:17 Matt The first one is really just an introduction to dot net, Maui on the whole. 00:28:21 Matt And then we get brought into some XAML. 00:28:23 Matt What XAML is and how you build their UI is with SAML. 00:28:26 Matt And today we got into layouts, stack layouts and grid layouts as well. 00:28:31 Matt Just kind of exploring everything with that and I'm not even sure what we get into next. I can't remember what module #4 is. 00:28:36 Matt About off hand. 00:28:38 Matt Oh, resources like making the apps. 00:28:42 Matt Pretty styling and stuff like that I believe is the next one. 00:28:46 Matt So it's super cool. We have three done. You can catch up on them each are an hour and a half, and then afterwards for 1/2 hour James and I jump into a teams chat and you can ask us anything you want, either about the module that you just saw or any other thing that happens to cross your mind. 00:29:05 Matt So yeah, and the cool thing about learn live though, is that we have a moderator on a background. 00:29:10 Matt Either Katie or John is usually back there answering questions, and they do get passed up to us as well. 00:29:16 Matt As we go along. 00:29:17 Matt So yeah, learn live keeps on chugging around along and it's a it's a lot of fun and we're. 00:29:23 Matt End of October is when we kick back up, but three of them are there already and going along with that since we're covering allofthe.net Maui learn modules, we had a cloud skills challenge with that as well where people you registered for it completed all7.net Maui. 00:29:41 Matt Learn modules. 00:29:43 Matt James would be sending you a sticker pack. 00:29:46 Matt You had to do it by September. 00:29:48 Matt 30th but guess what? 00:29:49 Matt It's over. 00:29:51 Matt It was only it's only good for the 1st 500 people and we. 00:29:51 James Is it really? 00:29:52 James Do we hit five hundreds? 00:29:54 Matt Have it 500 people have completed. 00:29:55 James Oh my gosh, we did. 00:29:57 James Wow, that's amazing. 00:29:59 James We've had. 00:30:00 Matt And 50 when I just. 00:30:01 James Checked how many people have signed up to do it that, I mean that's that's 500 people that completed all seven challenges. 00:30:09 James Oh my gosh, how many people signed up to do it? 00:30:11 James So far like. 00:30:14 Speaker 1 Try it. 00:30:14 James Billion, no, I think. 00:30:16 David They made another now. 00:30:17 Matt No, I I was pretty impressed. 00:30:20 James I was pretty good. 00:30:22 Matt Still should do it. 00:30:23 Matt You have till the end of September to finish it off. 00:30:25 Matt But you're not going to get a sticker pack any longer on ports in that. 00:30:30 James Yeah, you still do it, though. 00:30:31 James Things don't do that. 00:30:31 Matt We had 500 go getters. 00:30:34 Matt Who got up and got? 00:30:38 James Yeah, so. 00:30:39 Matt Yeah, pretty pretty neat stuff there. 00:30:42 Matt So another thing that I really like is now this is an extension to Visual Studio, so it's not new with the latest previews of Visual Studio though, but Mads put together something called Rainbow braces for it. 00:30:54 James Just installed it. 00:30:55 James I just installed it. 00:30:56 Matt Did you just install it? 00:30:56 James I'm so excited. 00:30:58 James So I have two machines I just installed. 00:30:59 James So excited. 00:31:00 Matt Now, David, you're probably old. 00:31:02 Matt David, did you have braces when you were a? 00:31:03 Matt Kid at all. 00:31:04 David Did I have braces? 00:31:05 David Yes, I had breast. 00:31:06 David My dad is a dentist, so. 00:31:07 Yeah, so you. 00:31:08 David I'll brace this. 00:31:08 Matt Probably had the with the little rubber bands around the braces that he turned in and turned. 00:31:13 David Yeah, yeah, yeah. 00:31:13 Matt Off or replaced? 00:31:15 Matt Yeah, rainbow braces. 00:31:17 Matt I don't know this really reminded me of the little rubber bands or. 00:31:19 Matt Anyways, these are brace matching where you get different colors for your braces. 00:31:24 Matt So if you have a bunch of like a four loop, and you have if statements inside the four loops and all that other stuff, your braces are going to be matched so you don't actually have to like line your cursor up and then move your cursor up. 00:31:35 Matt To see where things are color coordinated. 00:31:39 David Does it have a cuddling preference? 00:31:43 Matt Everybody gets hugs, everybody get bugs. 00:31:44 David Get sounds yeah. So? 00:31:48 Matt Yeah, really neat and. 00:31:51 Matt Yeah, so go, go uninstall. 00:31:52 Matt It's called rainbow braces and extension will put a link to the marketplace for it where you can actually go and just right away install. 00:32:01 Matt And another extension that I'm super excited about is for bicep. 00:32:06 Matt Infrastructure as code, so we had a bicep extension for. 00:32:11 Matt Visual Studio code forever. 00:32:14 Matt Wasn't in Visual Studio though, it is now. 00:32:17 Matt So what bicep does is it allows you to create infrastructure as code. 00:32:22 Matt So essentially Jason files to create your Azure resources with and as opposed to ARM templates which are very verbose and hard to remember. 00:32:33 Matt Biceps are. 00:32:34 Matt Very slimmed down, easier to do and the support that we have in Visual Studio through this extension gives you like Intellisense and lets you know when you did an air. 00:32:44 Matt The Intellisense is very nice because it pops up and says alright, you're doing a SQL database. 00:32:51 Matt We'll here are your options that can go along with it and everything. 00:32:54 Matt Like that so. 00:32:56 Matt Totally cool. 00:32:56 Matt I'll put the marketplace link in for it as well. 00:33:00 Matt And yeah, bicep in Visual Studio, so check in your Azure resource creation right into your source control. 00:33:07 James And also if you want to see some Azure bicep files in action or get front, Marcus felling from the playwright team actually just did a pull request through the down at podcast apps to convert our arm templates into bicep files as well. 00:33:24 James So you can see the kind of before and after the. 00:33:26 James They're going through all the implementation, which has been fun. 00:33:30 James So kind of cool seeing that out there and seeing how. 00:33:33 James It goes, yeah. 00:33:34 Matt Man, much nicer couch, more understandable and slimmer. 00:33:39 Matt I like. 00:33:40 Matt Pretty cool. 00:33:42 Matt So I guess we're talking to Azure. 00:33:43 Matt Should we keep on talking Azure? 00:33:45 James Save it you cool. 00:33:46 James Pleasure so much Azure, who I I helped with this blog. 00:33:49 James Can I? 00:33:49 James Talk about this one. 00:33:50 James Yeah, you talk about the blog. 00:33:52 James Oh, Melanie Quinn, fantastic. 00:33:54 James Human being the main PM of Azure functions, which I'm one of the biggest fans in the entire world of. 00:33:59 James I love Web API, but I love Azure functions. 00:34:01 James Maybe even more because Azure function of these on demand scalable goodness input outputs just pure joy bliss. I understand it, they have a new mode called isolated mode which enables them to ship support for newerversionsof.net even faster. And it also gives sort of this common startup class. So if you're coming from. 00:34:21 James Get on a core down in Maui this startup, dependency injection. 00:34:25 James All that stuff works with this, which is cool. 00:34:30 James Alongside Azure Web apps and Azure app service. 00:34:34 James That's all. Yeah, that's that. Announced supportfor.net seven. Azure functions just announced supportfor.net seven as well. 00:34:43 James So this is really cool because not only can you use Azure functions with this new isolated worker model that is talked about, but it's integrated into Visual Studio 2022. Guess what? 00:34:54 James Version 17.4 preview so you can go in, create it, launch it, publish it, do all this stuff. 00:35:02 James Which is really, really neat and not too long ago I had some of the PM and engineers on one of the on dot net shows to. 00:35:10 James Talk about this. 00:35:11 James V4 model. 00:35:12 James That's the same model that's usedin.net 7.6, so you can kind of see that. 00:35:18 James Coming up but. 00:35:18 James It's a great blog post if you want to upgrade and do stuff. 00:35:21 James And if you have an existing dot at six one, you can easily now upgrade to dot. 00:35:25 James Net 7, which is really cool. 00:35:27 Matt Yeah, no reason not to gowith.net seven functions like you said, going isolated. 00:35:32 Matt Pretty much insulates you from the underlying functions runtime, so you can do really whatever you want and whatever you need to do. 00:35:38 Matt So kind of removes any dependencies that you had. 00:35:38 OK. 00:35:42 Matt Another cool thing that just happened last Thursday as I talk about this, but it be well I guess last Thursday when the podcast comes out to anyways. 00:35:52 Matt I did a little thing on Azure Cosmos DB TV about integratinga.net Maui app to use Azure Cosmos DB. 00:36:01 Matt So we just went through it, introduce what.net. Maui is 'cause a lot of folks on who tuned into Azure Cosmos DB TV. 00:36:09 Matt Are not net my way developers. 00:36:10 Matt So we introduce them to the great world of Net Maui development. 00:36:14 Matt But then Mark Brown and I, Mark Brown is a PM over on the Azure Cosmos team went through and talked some best practices about calling over to Cosmos from a net Maui application, the things that we can do to improve performance and so on. 00:36:29 Matt So it's actually kind of neat building up a net Maui app, too. 00:36:33 Matt Some call Cosmos in the best way possible, except we did hard code the connection string and which you should never ever do. 00:36:43 Matt It was a demo and we called it out that you should never ever ever do that. 00:36:48 Matt And I did recycle the regenerate the keys right after the show, so. 00:36:53 Matt My cosmos is safe. 00:36:55 There you go. 00:36:56 Matt Yeah, so check it out though. Yeah, really interesting to hear how we can perform even better with.net, Maui and Cosmos. 00:37:04 Matt Weather nice and we'll do a quick Azure service of the month and this kind of builds up on Azure functions. 00:37:12 Matt James, your favorite thing and web API's. We know what those really cool about. These web API's which runs on app service, Azure functions runs on app service and now this Azure container apps is really all part of the whole. 00:37:25 Matt Microsoft Compute, Azure ecosystem and So what I like to think about Azure Container apps as being is like Azure functions but for containers. 00:37:37 Matt And so what's nice there is you make your app, put it into a container, deploy it up to Azure container apps. 00:37:44 Matt And then it will respond to various things like say you can actually build a web app itself with the whole front end and everything and respond to it, but if not being pinged it will scale down to zero to nothing. 00:37:55 Matt So it's like it has this whole serverless model of containers in Azure, but there's more to it. 00:38:01 Matt It's built on top of Kubernetes, so you get like the whole Kubernetes. 00:38:04 Matt Infrastructure behind it, but you don't need to know anything about kubernete. 00:38:08 Matt These to be able to use all the infrastructure and. 00:38:10 Matt Everything with it, yeah, you need it. 00:38:10 James I don't know anything about Kubernetes As for sure. 00:38:13 Matt I know you have Kubernetes and they abbreviate it K-8 and I had no idea for the longest time that those two were the same thing. No clue they are. 00:38:20 James I thought Gate was it's own like separate product, yeah. 00:38:23 James Yeah, so did I. But. 00:38:26 Matt Yeah, what's even nicer or even better, I don't know. 00:38:31 Matt Super cool though with container apps is that it's great support for if you want to build up microservices. 00:38:38 Matt So you think if you have a container app and by uh. 00:38:40 Matt Mint and then you put individual container apps within it. 00:38:45 Matt You can have many microservices in there and they can communicate within each other, but not be available to the outside world to communicate with. 00:38:54 Matt And it's just by on clicking a checkbox and that works. 00:38:58 Matt So you kind of turn off public ingress. 00:39:01 Matt To them and then you can dapper Izum dapper which is I can't remember what it stands for, but it's something. 00:39:09 Matt It's I can't remember what they have to censor, but what it does is a sidecar architecture thing, meaning this executable that sits along with your app that adds things to it such as like pub sub. 00:39:22 Matt Communication mechanisms so it can communicate to different between the app itself. 00:39:29 Matt It does state management that you can add into your app as well. 00:39:33 Matt All easily. 00:39:33 Matt You don't have to, so with the pub sub you just. 00:39:36 Matt Turn on dapper. 00:39:38 Matt Turn on in in your code. 00:39:41 Matt Download the new get, put it on, and all of a sudden you put in, let's say, service bus on the background and it just works. 00:39:48 Matt So when I say it just works, you're just kind of. 00:39:53 Matt Declaratively enabling service bus or whatever type of other. 00:39:58 Matt Service or messaging that you want to push out. 00:40:02 Matt So dapper is kind of built in from the get go so you're not actually having to. 00:40:08 Matt Do it yourself other than using the SDK in your code. 00:40:13 Matt But yeah it's is a lot of stuff I guess for a low amount of work. 00:40:19 James So I think that that actually brings me to my pick him up. 00:40:22 James Odd because I'm just going to go back to the down at podcast app because we've been updating it. 00:40:28 James A bunch of engineers and PM's have been working on. 00:40:31 James Rightnowwedonthave.net seven support in there yet for Donna Maui, but we totally will. That'll be on the road map here pretty soon. 00:40:37 James Flip a few TFs and we're done. 00:40:39 James That's what David said. 00:40:40 James We all we have to do is boom and I can't wait because the desktop support should be really cool to like actually right click on stuff and do stuff Dave is. 00:40:47 James Going to get in there. 00:40:47 James Make it all pretty and and what's cool? 00:40:51 James Is that a bunch of things have happened. 00:40:52 James There's been. 00:40:53 James Some of those are powered by Azure Container apps, so you can see how that works, where it scales out our worker services and our Web API's and our website and stuff like that. 00:41:01 James But additionally, Markus also not only added those bicep files, but also added playwright tests for the website, which is pretty cool, the Blazer app that's in there, and then additionally another. 00:41:14 James Part of the story in this Dynamic podcast is that there's an entire. 00:41:19 James Power apps demo in there for like a little approval process powered by the same API's that are powering the down in Maui and the website applications. So it's really, really cool to be able to see the. 00:41:31 James The the power apps come come in line with like Pro Dev Low Code API has Orleans, it has distributed systems as container. 00:41:41 James Apps and it's still a. 00:41:43 James It's still an application where I think if you get it, if you download it. 00:41:48 James I think that it's not crazy, crazy architecture where it's like, oh, I gotta figure out all these things. 00:41:55 James It's like, here's still an API. 00:41:56 James OK, this API when it's deployed is just running inside of Azure Container apps. 00:42:00 James But to me it's just a Web API. 00:42:02 James I don't need to know anything about Docker, I don't even know. 00:42:04 James I don't need to know anything. 00:42:05 James I can just run it locally and it's just talking to SQL Server and all this stuff, but it has all these things in there, so it's really kind of cool. 00:42:12 James And and and what this does is it exposes. 00:42:16 James Uhm, the? 00:42:18 James It exposes the API through API M, which is API management, so we can talk to power apps 'cause you're already authenticated. 00:42:25 James The next thing we want to do is actually work on a teams app integration as well, so you can like do stuff, talk to that same API and you can build teams app with Blazer, right? So you can actually get.net kind of everywhere. 00:42:36 James Talking to everything and doing all the things, so it's a really cool sample. 00:42:40 James I think it's really, really neat to kind of show the hybrid, the native, all the different stuff that's in there, so. 00:42:46 James Give it a. 00:42:46 James Look, I'm really into it if you haven't looked at it yet, definitely. 00:42:50 James Give it a go. 00:42:52 James That's my pick. 00:42:53 Speaker 1 Off the pod. 00:42:57 David My dogs are freaking out right now. 00:43:00 James Well, that's. 00:43:00 David So cool, James. 00:43:01 David They yeah, they heard you. 00:43:03 David They got really excited. 00:43:04 David And also moms home. 00:43:07 David Shut it. 00:43:08 David Keep that in the podcast now. 00:43:11 David That's awesome. 00:43:11 David I I recommend the podcast to folks all the time to see something that's a real world you know, application that has a back end and talks to services and persist data and does authentication and all that sort of thing. 00:43:22 David So that's great. 00:43:23 David My pick of the pod would be the. 00:43:25 David The newly released publicly available. 00:43:27 David Azure Active Directory msal.net package on Nougat. I think that a lot of people have been waiting for that to be out of preview and full. You know, fully ready to go with updated samples for Android and iOS especially so. 00:43:43 David Hope that everyone loves it. 00:43:45 David And if you have any issues with it whatsoever, phylum some mirrors all over it. 00:43:49 David We want to make sure that's successful for. 00:43:51 Matt You cool. 00:43:52 Matt And dapper stands for distributed application runtime. 00:43:55 Matt I looked it up. 00:43:56 Matt I knew it was kind of weird where you had the A&P or application, it doesn't matter. Distributed application runtime my pick of the pod though. 00:44:02 Matt Is another distributed framework. 00:44:06 Matt Orleans, Microsoft Orleans I'm just learning all about it. 00:44:10 Matt I don't know tons about it, but what it can do is it helps you to like, persist and manage data across different application stores. 00:44:17 Matt And but it hides. 00:44:18 Matt All the implementation details from you, it's was a Microsoft garage project I think all.net. 00:44:26 Matt And you can code distribute it. 00:44:28 Matt It's actor based and you can code everything as if you were single threaded. 00:44:32 Matt So yeah, has like built in fault tolerance and all that other stuff in to help you scale real nicely. 00:44:38 Matt I'm still learning about it though, so I can't give you any more about it other than. 00:44:43 Matt What I've been picked up. 00:44:44 Matt There's two learn modules on it that you can go check out, though. 00:44:47 Matt I'll put the item. 00:44:47 James Yeah, and it's it's in the podcast out by the way, too, because like, previously, so Brady, uh, who does a bunch of Orleans stuff, was like, hey, I want to like, implement Orleans in this thing. 00:44:48 Matt In the notes so. 00:44:59 James And I was like, OK, well, let's like do something that you know makes sense, right? 00:45:03 James Let's let's make sure that it makes sense and what we're doing for the listen together mode. 00:45:08 James We would. 00:45:09 James Uhm basically like on the Web API would, it would look at the stores and then it would manage all of the the the open rooms via database because it had a crossover different, you know, services, but with Orleans it can share that state across the different services, so it's managing the rooms. 00:45:30 James And all the connections and things like that. 00:45:31 James So it's actually really. 00:45:32 James Well, I also don't know how it works and Brady didn't tell me, so I need to go figure it out. 00:45:36 James I also installed the rainbow stuff is so cool. 00:45:40 James You know, everyone needs this in their life. 00:45:42 James It's really neat. 00:45:43 James So go, go get it, rainbow braces. 00:45:46 James It's it's fantastic. 00:45:47 James It just makes me very happy all of a sudden to look at curly braces. 00:45:52 James And opening closed brackets. 00:45:54 James This is very very nice. 00:45:56 James I think they need to extend this to the XAML though as well. 00:46:01 James XAML needs a lot more colors in it in my opinion. 00:46:05 James But anyways, nothing to do for this week's podcast, this month podcast, whatever. Here it is. Let us now go over to the net mauipodcast.com website. There's a contact button, I think. Is there a contact button.net mauipodcast.com? 00:46:21 James Uh, there's not a contact those, but you can reach out to us on Twitter at James Montemagno at code mail, Matt at David, or now you can click on the host and we have. 00:46:30 James Now they've been working now. 00:46:31 Matt David work. 00:46:33 David Second, I'm embracing. 00:46:34 James That's his alter ego. 00:46:35 James Yeah, yeah, you can. 00:46:38 James It, yeah, go it. 00:46:39 James Embracing it. 00:46:41 James I I see. 00:46:41 James What you did there with the braces? 00:46:44 James Alright, let's just end this thing now, alright? 00:46:46 James We'll see everyone next month. 00:46:47 James Have a good. 00:46:48 James One bye. Bye. See ya.