00:00:10 Matt Welcome everyone to the.net Maui podcast. We're here to keep you up to date with the latest and greatest and. 00:00:22 Matt Net client development. 00:00:23 Matt We'll talk about some Azure, some Visual Studio, some blazer, and guess what? 00:00:28 Matt David and James we're going to talk about. 00:00:30 Matt Some.net Maui. 00:00:31 James No, my goodness that's amazing, Matt. 00:00:34 Matt Indeed, so I'm Matt Soucoup 00:00:37 James I'm James Montemagno. 00:00:38 David Right now and I'm David Ortinau. 00:00:40 James I totally forgot that that you had more to your spiel, Matt. 00:00:43 James I thought we've only I changed 100. 00:00:47 Matt I changed it. 00:00:48 Matt Up a little bit. 00:00:48 Matt Now, but my mom. 00:00:49 David And you've thrown him off his game. 00:00:50 James Gay, I'm sorry. 00:00:52 James I'm sorry it's my fault. 00:00:53 James You know we were just talking before the podcast. 00:00:55 James I just got so excited because I act him actively now. 00:00:59 James We'll probably have to announce this. 00:01:01 James Next podcast, but I've actively been creating. 00:01:05 James I'm going to save the world. 00:01:08 James The the world first dot Net Maui workshop. 00:01:11 James Until someone finishes it before me, but I I I had this very infamous Xamarin forms workshop for a very long time. 00:01:19 James I taught it a lot of things. 00:01:20 James David helped me with. 00:01:20 James It and we did it at Ignite. 00:01:23 James We did a bunch place and I've been moving this over to Don and Maui, which has been a super fun prog process. 00:01:29 James To not only see how easy the code can migrate over, but to take advantage of a lot of the new features and infrastructure and a lot of the cool dependency injection and just a lot of cool new done at 6 and C sharp language features. 00:01:44 James And it's been a blast, so I've been enjoying that I'm almost done. 00:01:47 James I'm I'm presenting it at Dev intersection soon so I better get it done by then. 00:01:52 James So my goal is by end of month so it better be done and adding a new section on app theming, so that's exciting. 00:01:58 David So you you are actually not the first, but I'm sure that you'll be the first to to do it. 00:02:04 David Super duper well now we had we had something in the community tweet about doing a like multi day thing for our customer. 00:02:12 David And I I you know, so we sat down and and had a, uh, a Skype data, Skype. 00:02:18 David What do we call these things? 00:02:18 David Teams calls these days. 00:02:20 David We had teams call and he walked us through kind of what his content was and how it was received, what went well and thankfully it. 00:02:29 David It all seemed to go really well so. 00:02:32 David Nice, that was actually quite a while ago and you have even more to talk. 00:02:35 David About UM 00:02:36 David I think these things are. 00:02:38 David It's a blast to put together like we have a blog post for the new Preview 14 of dot Net Maui and it's always fun for me because then I get to get into the code and learn something. 00:02:48 David You know we we add new features like Menu Bar for desktop applications. 00:02:55 David And I'm like, oh, sweet. 00:02:57 David What does this thing do? 00:02:58 David And you get to learn all kinds of new stuff that wasn't there when you did. 00:03:03 David The old Xamarin forms workshop. 00:03:06 James That's true, yeah, it's been really excited to go through it all world second, then I will say I won't take probably the world 18th by the time. 00:03:12 James It actually comes out. 00:03:13 James But yeah, I I'll be excited because I I really, you know, I think the workshop is a single day workshop, so I think it's exciting to be able to go through it all. 00:03:21 James But yeah, David P. 00:03:23 James It's out. 00:03:24 James Menu bar what the heck is that? 00:03:25 James What is that? 00:03:26 David Happening, yeah. 00:03:26 James What is it? 00:03:27 David So so when you have a desktop application and if you're into UWP you actually had a menu bar control and so you could put it in your application and and scaffold out the different menu items you want. 00:03:41 David You know, desktop applications traditionally have this at the top. 00:03:45 David Of course I'm looking at teams. 00:03:47 David Right now, and all of the all the menuing, so to speak is on the left hand side in a sidebar and that's become very common for modern application design as well. 00:03:58 David But then you open up something like Outlook and you've got a. 00:04:01 David Ribbon you've got traditional menus at the top and then you've got a left hand side bar as well. 00:04:08 David So it's like you get this mixture of UX paradigms in in patterns for how you do these things, but the menu bar essentially is that kind of a tree view popover that does the file edit. 00:04:21 David View et cetera, et cetera. 00:04:23 David And it can be whatever you want, and you can do data binding to it. 00:04:27 David You can put commands on it. 00:04:29 David You can, I hope, generated at runtime because that's what I need to do. 00:04:34 David And so I added it to my weather app and I have a locations menu where you can select which location you want to be seeing the weather for, and then you can also add locations in the weather app. 00:04:48 David And of course, once you've added a location, the menu should update. 00:04:52 David We'll see if I if I actually get that working, that's a. 00:04:54 David Future enhancement that I'll be doing so this runs on Mac and Windows. 00:05:00 David I don't believe it does anything on mobile, I believe it's ignored on mobile because the pattern there is that you'll use toolbar items, which this is actually written very similarly to that. 00:05:12 David So if you're used to doing toolbar items for Android and iOS, the menu bar API's will be very similar. 00:05:21 David And but Preview 14 has so much more than that, tons of issues are closed in this one. 00:05:28 David I mean the the team went on a spree closing emerging P. 00:05:32 David Ours so collection, view and Carousel view are pretty much implemented in this version, ready for your thorough review and filing issues against them. Something near and dear to James is heart essentials, so not 100% coverage yet in. 00:05:52 David Preview 14 there were a few PR's that didn't get merged before the release, but everything has got interfaces now. 00:06:00 David They're all interface all fully testable, and they've all been updated and touched, so this is very exciting. 00:06:08 David Poor poor Ryan Davis and his essentials interface. 00:06:12 David This nu get package is going to lose lose followers, but that's OK. 00:06:17 David I'm sure Ryan happy. 00:06:18 James About it, yeah, totally wow that's amazing. 00:06:20 James I did notice that something was happening there. 00:06:23 James I thought I think I was inside of the source code. 00:06:27 James Now that is. 00:06:27 James Really cool because. 00:06:29 James You can now use the built in dependency injection services which I've been talking about non-stop in this workshop. 00:06:36 James I now need to update this workshop to use these new interfaces. 00:06:39 James Which is something that that I think is really nice as it injects it in and we talked previously on Preview 13 that you know the essential stuff is all scaffolded and all handled for you automatically if you remember back in the Xamarin forms days. 00:06:54 James If you when you create a new project. 00:06:56 James There's a bunch of. 00:06:56 James Code right, and then you'd have to have for permissions and different set. 00:07:00 James And that's all handled for you, and there's this really nice extension method on the app Builder that just says configure essentials and you can pass in stuff like if you need it to set keys and stuff. 00:07:10 James But this is cool because. 00:07:12 James It's just all in I know. 00:07:13 James Do I need to do anything to use these interface so I need to say like add IMAP or add I whatever no it's just there and it just. 00:07:19 David That's just there. 00:07:20 James Is handled amazing. 00:07:20 David I'm pretty sure it's just there, unless you're leading me to answer. 00:07:23 David You already know, but no, I I believe it's all just there. 00:07:25 David It all just works. 00:07:29 David Uh, you gosh you were saying something? 00:07:31 David Oh yeah, I remember when you would add back in the day when you would add the Yammer essentials nu get package to your project. 00:07:38 David It would you know pop up the. 00:07:40 David Readme with all the code you then had to go copy into your a time. 00:07:43 David So yeah, so yeah, that's all. 00:07:46 David That's all thing of the past. 00:07:47 David It's a whole lot easier to do this and and something that I think was also in Preview 13, but we did some additional work here in 14 around it. 00:07:56 David You can now use that same constructor injection. 00:08:01 David For your your die with shell. 00:08:05 David Content pages, so in your shell content page you can, you know throw your viewmodel in there or your services or whatever is needed on that content page and it will be provided. 00:08:17 David The only change I think here is that you do need to register both the content page and the viewmodel with the DI container. 00:08:25 David Service so that it's aware of both of them. 00:08:28 David That was not the case initially and there is an upstream work item to potentially reduce that back down to just the viewmodel or the service whatever you're injecting. 00:08:43 David There are only 11 properties left to be implemented on all of the control. 00:08:49 David That's super exciting. That's you know. The bulk was like when we were at our highest number. It was close to 1000, probably I don't know. 00:09:00 David So only 1111 left. So within the next two weeks we'll get those PR's merged and we'll be at feature complete. 00:09:09 David So that's super exciting. 00:09:10 David 'cause then we can turn our full focus and attention to closing out bugs and making this thing a really nice solid release. 00:09:19 David For our May GA target. 00:09:23 David Uh, so the next release ought to be a release candidate. 00:09:26 David I don't see anything blocking us from doing that because feature complete and API complete is what we're looking for. 00:09:34 David And then we'll we'll turn our focus to quality and we're getting tons. 00:09:39 David Of contributors from across other teams within. 00:09:43 David Net and Visual Studio. 00:09:44 David So as well as the community, a lot of those interfaces for the essentials work came from the community, so that was pretty fun. 00:09:53 David So glad to see that the community is able to get up and running with us and contributing to the project as well, because one of the one of the key goals with the transition of our architecture in. 00:10:05 David Maui, from Xamarin, was to make it more contributor friendly. 00:10:10 David Not to say that we've we've done that perfectly, but I think it's a. 00:10:14 David It's a whole lot easier now to get involved than it was back in the Xamarin days. 00:10:20 James That's perfect, and now all people need to do is get Visual Studio 17, Visual Studio 2022. Seventeen .2 Preview 2, correct? 00:10:28 David Yeah, exactly so we're still riding the preview channel, so as long as you stick with the preview channel for the next several releases then you will be getting the right versions of Maui. 00:10:40 David I did get a question just this more. 00:10:43 David I can't remember. 00:10:45 David Hey, should I use Maui check? 00:10:47 David Are we still using Maui check? 00:10:48 David Does anybody update in Maui check? 00:10:50 David So Maui check isandwasa.net CLI tool that Jonathan deck, our lead engineer put out to help developers get their environment setup. 00:11:01 David Uhm, but really we recommend using Visual Studio at this time. 00:11:08 David If you're on a Mac, we have some instructions for how you can get your Mac setup from the command line using the dot net workload installers. 00:11:16 David Very soon we'll have some some VS Mac, and I know we're going to talk a little bit about VS Mac here in a sack. 00:11:24 David But don't use Maui check unless you really, really, really, really know what you're doing. 00:11:29 David You're probably not going to get yourself into a bad state, but you know we just need to focus on doing one thing super well, and in this case that's Visual Studio. 00:11:38 James Nice makes sense to me, that's what I've been rocking after a deep, deep cleanse of all the previous previews and stuff like that, and it's been smooth sailing up to this point. 00:11:48 James But yeah, talking about Mac, you know, as we as we probably talked, there's a new preview out, but you know, weird, there's always new previews coming, so preview six came out in February. 00:11:58 James I'm assuming preview seven. 00:11:59 James I don't actually have the news, so I'm assuming it's out already. 00:12:02 James Maybe it's. 00:12:02 James Coming, I don't know, but only. 00:12:04 James So is that there's been more and more work towards the native Mac OS UI running on top of the net, six Clr which is very exciting with Native Arm support as well. 00:12:15 James That was announced in Preview 5 in January, which is really cool, and they're they're they're finalizing the the native UI for it in general. 00:12:24 James And dumb Jordan gave a nice update about Xamarin and Netmap. 00:12:28 James Now we are making a lot of progress towards this and they said nearly all of the Xamarin features have been migrated to VS 2022, which is a large undertaking as there was a lot of rewriting there and that they are getting a lot of questions about Don Amaui that's for sure and and their plan has always been to finish this. 00:12:48 James Xamarin support. So finish what's currently supported today that developers are GA on and then shift focus towards makingthe.net Maui. Experience fantastical. 00:12:58 James And of course things that are already built into Xamarin, like the XAML, hot reload, the live visual tree. 00:13:02 James Those were just sort of common. 00:13:04 James Over to Don Amaui as well. 00:13:06 James Same thing with you know they're going to work on the multi targeting and the C sharp stuff, but they said keep up to date on the latest blogs and we'll put the blog to this one. 00:13:15 James But if you go to devblogs.microsoft.com, you'll find all this stuff there, so you'll find the oh, they literally just put out the previous seven as I literally. 00:13:25 James Go on there so it's it's there, it's available. 00:13:27 James Uhm, there's a whole bunch of new things in there. 00:13:29 James I'm just reading it for the first time. 00:13:30 James We're figuring it out as we go. 00:13:32 James People wow, previous seven available, right as I speak these words. 00:13:39 James Yep, they've ported the last of the preference screens, which is amazing. 00:13:43 James New code formatting, Azure function support. 00:13:46 James Xamarin mobile tooling is back and ready for feedback. 00:13:49 James It's done, it's finalized. 00:13:50 James Look at that, it's out there ready for feedback. 00:13:53 James Yeah, feedbacks. 00:13:54 David It's ready for us beyond just interesting phrase. 00:13:58 David I want to know what Jordan really means by feedback. 00:14:01 David What do you mean? 00:14:01 James So I don't know. 00:14:04 James No, now they're going to shift focus towards Donnelly, so we'll see how it goes. 00:14:08 James There you go. 00:14:10 David Yeah, it's it's a. 00:14:11 David It's the same VS team that's working on. 00:14:14 David Obviously the Xamarin and the Maui stuff 'cause it's all very similar. 00:14:18 David Add in to the product. 00:14:20 David So so we we get a lot of bang for the buck by having the same code shared and looking forward to. 00:14:28 David Definitely the Maui things light up, but we have so many customers and projects for Xamarin and people working on the Mac that we need to make sure the Xamarin stuff works really, really. 00:14:39 David Well, because we will support Xamarin for quite a while, yet at least through November of 2023, we'll see if we need to extend that out, but. 00:14:52 David Sarah is going to be around and productive for quite a while, so don't don't. 00:14:56 David Stop can't stop, won't stop. 00:14:59 David And all your stuff will migrate nice and clean to dot net sixand.net 7. 00:15:04 David Of course, nice and clean doesn't mean you don't have work. 00:15:09 David We all have. 00:15:09 David We all have work to do. 00:15:11 David Nothing free, but you know it's all gonna be worth it. 00:15:15 David You get, you get to use allthe.net hot reload stuff. All this XAML hot reload the live visual tree. The live preview. It's awesome teachers, right? 00:15:24 James I mean. 00:15:25 James I'm in, there's a lot other things happening in the world of dot. 00:15:28 Matt Net yeah sure is. 00:15:30 Matt Hey, I always wanted to let you guys know that the Visual Studio Mac team has a monthly newsletter. 00:15:34 Matt Do you guys know about this? 00:15:36 Matt I didn't, but I'll put a link to it in the notes. 00:15:40 Matt I didn't until I found out about it. 00:15:42 Matt And yeah, totally do it and you guys can then ask. 00:15:45 Matt Jordan himself what he means by feedback, so I know David, you'll be right on top of that, but no, it's totally cool. 00:15:51 Matt You can get a monthly update of what's going on with VS Mac straight from the team, and interact with them too. 00:15:58 Matt So GitHub actions. 00:16:00 Matt Let's get to it there so. 00:16:02 Matt Get up actions. 00:16:04 Matt It's David Pine has an article out about it and it's geared towards the. 00:16:08 Matt Net developer, which I always like to see 'cause get of actions when you when you think about it, it's a CI CD system or GitHub. 00:16:16 Matt And how is that different than Azure Dev OPS pipelines for Azure? 00:16:22 Matt Dev OPS systems. 00:16:24 Matt Well, it's kind of the same idea behind it, right? 00:16:28 Matt But it's different and that's how David kind of goes through. 00:16:31 Matt The guy goes through and tells us like all the different terminologies for it. 00:16:35 Matt You know, GitHub actions actually is the platform you're building a workflow for it, which is kind of like your DevOps pipeline and then you have different events and different triggers. 00:16:45 Matt That happen on it, and the best thing is, is he builds up a GitHub work. 00:16:49 Matt Flow for net. 00:16:51 Matt So it's like an intro to GitHub actions for the. 00:16:55 Matt Net developer, which when I was learning about GitHub actions I needed explains it for net people and which is really priceless and it's a great article it he has a whole file in here of a YAML file. 00:17:09 Matt Workflow file. 00:17:11 Matt And there kind of leads you through step by step about setting up a.net GitHub action. And so James for your projects. 00:17:19 Matt Do you use GitHub actions to CI CD your stuff? 00:17:23 James Yeah, quite a lot of things right now for a lot of my existing libraries, I still have them in Azure. 00:17:31 James DevOps, which is great right? 00:17:33 James And I have different files there for the net podcast application that we've talked about before, those are all running in GitHub actions and we're actually working to. 00:17:44 James Uh, get up actions, builds and deployments for the Donna Maui applications too. 00:17:49 James Right now it deploys the website the back end services and you can easily build libraries and apps for Donna Maui because it's all like kind of command line stuff. 00:18:00 James And what I do already on Azure Dev OPS, which I can. 00:18:04 James Also do now on GitHub actions is you just run net work. 00:18:09 James In workload install whatever it is Maui you know and that's it. 00:18:14 James And that's a command. 00:18:14 James And then it installs it. 00:18:15 James So it'll installed on it done at six. 00:18:18 James You install the Maui workload and bingo, bango you got all the stuff that you need and those you know those system images basically have all of the other stuff. 00:18:29 James That you need so the Android, the Java is all that it's all on there. 00:18:33 James You just need to tell it. 00:18:33 James Hey, you install this. You know configuration on there which is really cool. So I think our good friend Gerald on the team has a bunch of YouTube videos on how he set up. 00:18:42 James His Maui apps to be built with GitHub actions, and that's all be documented and all super good. 00:18:48 James So I'm really excited about that, but there's a lot of cool things that you can do too. 00:18:51 James So for example, I like this blog because he not only talks about like using like code QL for security vulnerability we use, we had a let's learn.net on getting it. 00:19:03 James Jon Galloway and my team. 00:19:05 James He set up a Jason validator. 00:19:09 James Basically because we have a bunch of Jason verification stuff and sometimes we can mess it up. 00:19:15 James So he just added a GitHub action that was like hey, validate my Jason in this folder so if everyone is doing a pull requests it'll just boom. 00:19:25 James It was like one click and it just configured it. 00:19:26 James It was done so it was really really neat. 00:19:29 James I I love it so it's really cool. 00:19:31 Matt Yeah you can do like yeah various status checks if you're reviewing PR's, so make sure like the project actually builds or validate the Jason before you go. 00:19:39 Matt And yeah, David goes through and shows us that in there and you can actually installthe.net workloads. 00:19:46 Matt To run your GitHub action as you're getting to jameslikeits.net workload, install just like you were sitting at the at the terminal. 00:19:54 Speaker 1 You know what you do that. 00:19:55 Matt Up in GitHub. 00:19:56 Matt And long time before when I first started talking about this, I was talking about Azure DevOps. 00:20:01 Matt If you're in Azure DevOps ecosystem, you can still use that, and that's what I wanted to get across. 00:20:07 Matt There's no reason not to use Azure Dev OPS at all if that puts you if that's what you're comfortable in, go ahead. 00:20:12 Matt And use that. 00:20:13 Matt But if you want to explore GitHub actions and you have a GitHub repo. 00:20:17 Matt That's there for you to explore too, and this article is a great way to get. 00:20:20 Matt Into it so. 00:20:22 James Major differences right is like get up actions your codes in GitHub, Azure Dev OPS. 00:20:26 James Your code can be anywhere basically, and they all run. 00:20:29 James They love YAML files and you can do infrastructure as code and all that stuff and it just depends. 00:20:33 James There's a lot of similarities there. 00:20:35 James The Yammer is a little bit different. 00:20:37 James Yeah, actions are different, but in general the concepts are the same. 00:20:41 James I do like some of the stuff that that Azure Dev OPS has in there because you can do like gates basically so you can be like oh someone needs to approve stuff and. 00:20:52 James Do stuff but. 00:20:55 James GitHub just added support for Mermaid Files. 00:20:58 James You know about mermaid files. 00:20:59 Matt Inform me, James I. 00:21:00 Matt I know that this brand new from GitHub, right? 00:21:03 Matt So give me some more information on that. 00:21:05 James So Mermaid is like an open standard for markdown that enables. 00:21:11 James You to draw. 00:21:12 James Diagrams OK in this call I'll put a link. 00:21:15 James We'll put a link to the GitHub blog 'cause it's very nice. 00:21:17 James Very nice blog page that they have here. 00:21:19 James And pretty much what it does is like you create a it. 00:21:22 James Just if you were doing like a code block like tick tick, tick, C sharp, you do typically take mermaid and then you have some special. 00:21:30 James Little Mermaid syntax that's in the in the markdown file, and you can be like graph and then it'll make specific graphs and diagrams and pipelines and things like that. 00:21:41 James And this is cool to automatically do this, and in fact, in another blog post from Mr. 00:21:47 James David Pine, he talks about how you can do not only code metrics. 00:21:51 James But also visualize workloads with mermaid files and create diagno class diagrams and a bunch of other stuff. 00:21:59 James So a bunch of cool stuff in there. 00:22:01 James But imagine if you you know want to generate stuff on demand. 00:22:05 James You can. 00:22:05 James You can generate mermaid, but also just put mermaid in there to help describe the the process. 00:22:10 James Inside of your markdown file, which is. 00:22:12 James Really cool. 00:22:13 Matt Yeah, that's super needy. 00:22:14 Matt I'm just looking through this blog post that will include from GitHub on aeroclube davidstow how to actually generate these and say I just do like mermaid graph and like let's say you want to have a flow chart, you just do node a arrow to be and it makes that flow chart. 00:22:31 Matt A to be for you like 2 little check boxes on the screen. 00:22:35 Matt Yeah, it's really neat. 00:22:36 Speaker 1 It's cool. 00:22:36 Matt And then yeah David goes through and it shows you how to do it. 00:22:40 Matt With GitHub actions with your net project. Perfect for us.net developers. Listen to the.net Maui. 00:22:47 James Podcast, that's right. 00:22:48 James That's right. 00:22:50 Matt Yeah, and you know what else is out for us.net mauidevelopersor.net developers in general. 00:22:55 Matt Is C Sharp 11 preview? 00:22:57 Matt Get a sneak peek at it it's I don't mean C sharp 10 is just down. 00:23:01 Matt I don't even have a full grasp of all that and all C sharp 11 is out. 00:23:05 Matt I mean, come on. 00:23:06 Matt Everybody innovating too fast. 00:23:08 David Have have you either of you noticed a new C sharp 11 feature that you're gonna look into if you. 00:23:16 Matt You know what? 00:23:16 Matt There was a big what's the best word to say discussion on Twitter? 00:23:22 Matt About one. 00:23:23 Matt It's the one I'm calling the Double Bang Bang. 00:23:25 David Thanks, new operator right? 00:23:26 Matt Bang, yeah where it's like it's to a null check for parameters to make sure they're not null in the. 00:23:34 Matt Function definition, so you would do, you know, function name string. 00:23:40 Matt And I think it's is it Bang Bang Raptor string or bang. 00:23:42 Matt Bang after the parameter. 00:23:44 Matt Parameter name right after the primary name. 00:23:46 Matt So string name David name Bang Bang and then it automatically generates the null. 00:23:53 Matt Check for you. 00:23:54 Matt After that I I kind of like it. 00:23:57 Matt I I kind of like it and so yeah so. 00:23:58 James I love it. 00:24:00 Matt But there was people didn't like it and there was a quite a bit of back and forth. 00:24:04 Matt And a couple weeks ago about it, I don't know you can put it in constructor. 00:24:09 Matt I mean it executes before any of your code would execute in that method, right? 00:24:13 Matt Sampling in constructors. 00:24:14 Matt You can put it into a lambdas as. 00:24:17 Matt Uhm, why not I I like it, I mean it, but I I guess it's kind of terse, right? 00:24:23 Matt So maybe if you don't know it, but I don't know. 00:24:26 Matt I'm all for. 00:24:27 James It, yeah, I think it. 00:24:28 James It saves you, you know a few lines of code which I think is nice and it's optional, right? 00:24:32 James If you don't want to use it, you don't have to, but if you're checking against null, then boom, it's going to check. 00:24:33 Matt Right? 00:24:37 James Against all, I'm kind of excited. 00:24:39 James It's a weird one, but Kathleen opens up with it in. 00:24:42 James Here is well, one that you can use this in your existing dot net 6 apps. 00:24:47 James You don't have to be done at 7 'cause you know you can use any version of C sharp. 00:24:51 James With any any you can use in.net framework apps, it doesn't matter because you just need to go into your CS prod and set the Lang version right these things. Now 90% of the things are compile time things. 00:25:05 James Some things are built like C sharp features are in the specific runtime, but like if they're compile time. 00:25:11 James Things with Roslyn as you have the latest version of Roslyn in Visual Studio and and the dot net installed, you can still use it like I booted up a. 00:25:20 James NET Framework app and I just said yeah, you see sharp 11 and it just did it right so you flip on preview here. 00:25:26 James This one is cool. 00:25:26 James Is this allow new line? 00:25:29 James In the holes of interpolated strings, this is really interesting because I don't know why that's in the holes of it, but think of it this way, right? 00:25:38 James Let's say you're like having an interpolated string, whereas like count is and then you put. 00:25:44 James You know, count. 00:25:45 James But imagine if it was like something really long and you needed to. 00:25:49 James Do a new line in there right? 00:25:51 James And let's say you're doing like LINQ queries, so ideally you'd have like this dot blah blah blah and then you new line dot new line dot new line. 00:25:59 James Dot you couldn't do that today. 00:26:01 James It has to be all in one line. 00:26:03 James It can be really really long now if you're inside of that little squiggle for the interpolated string, you can just add a new line and it just ignores it and it just kind of works magically. 00:26:13 James I don't know, that's really neat to me in general, so. 00:26:17 James Well, it's a small little thing we're like, oh this should. 00:26:20 James It should be smart enough to figure out what I'm. 00:26:22 James Trying to do and then it does it. 00:26:24 James Start believing go get it. Last thing I want to talk about in the news for dot net developers and specifically for.net Maui developers is the thing that the Nougat team put out. And if you've heard of a website called Nu Get Outta work. It is a website. 00:26:38 James In which it has all the packages for. Net and they've been working on stuff over there at the team, and when you go over to nougat.org and let's say you search for a package, I'll just say Xamarin forms. 00:26:50 James For example, 'cause, why not when you tap on that puppy, a few things will happen. 00:26:56 James It will actually tell you like what the? 00:26:58 James The right away what the package is compatible with and higher so it says dot net standard 10. So you could just see that right away, which is really cool. But if you actually tap on this new framework. 00:27:09 James Tab this is crazy. 00:27:11 James This is what I've always wanted. 00:27:12 James Is it it it it inspects the metadata right? 00:27:18 James And and Frank Frank Krueger Fugah did this as well. 00:27:21 James But inspects the the the the info in there and it gives you. 00:27:25 James This big rid of, like all the possibility of the target framework, monikers TFs. 00:27:29 James We call them and when you when you tap on the Xamarin forms, it'll say hey this is has.net standard 1020 mono Android 10 Tizen UAP, Xamarin iOS 10 Xamarin Mac. This is what's in there. 00:27:43 James And you can just immediately see it right away, so not to like. 00:27:47 James Open it and nu get package Manager Explorer and do a thing and do this other thing. 00:27:51 James It's all right there. 00:27:52 James Which is pretty neat in my personal opinion. 00:27:55 David Yeah, I've been. 00:27:56 David I've been using this quite a bit myself as I've been looking at the more popular nu get packages that are used in Xamarin. 00:28:04 David And you know, I want to make sure you know are are these going to be compatiblewith.net sixand.net Maui, or do we need to, you know, make some recommendations around these particular libraries? 00:28:16 David You know, typically the rules of resolution you know. For example, the Xamarin forms libraryis.netstandard1.net standard 2, but then it also has these Xamarin iOS 10, Xamarin Mac et cetera et cetera, and so it's like well which one is going to win when it's brought into a project. 00:28:37 David Is it going to? 00:28:38 David Who acknowledge the Netstandard 2 or is it going to fall back to the Xamarin iOS 10 and what's that going to mean for compatibilitywith.net 6? 00:28:50 David So working through all of that stuff and trying to figure it out and make sure that we know what to recommend to people. 00:28:58 David This chart right here becomes super super useful and then being able to see the dependencies because this is another thing that once you start to see the different libraries that are dependencies for the library you're working on. 00:29:11 David They may have different requirements. 00:29:13 David Uhm, you know, maybe theyrenot.net standard. Maybe they're just salmon iOS. 00:29:18 David And then that becomes interesting. 00:29:23 David And boy, if you go look at an Android package for one of the Android support libraries, you'll get a very deep nesting of dependencies. 00:29:31 David But yeah, I'm super glad that they have this on here. 00:29:33 David I did notice on a a different package management website that it has a download by week. 00:29:42 David Trending graph, which I think would be sweet Mr. 00:29:46 David List to add to the nougat.org pages. I would love to see that 'cause it's nice to see you know. OK, yeah, Xamarin forms has been downloaded 34.2 million times. Whoop Dee Doo. 00:30:00 David But you know, I want. 00:30:01 David I want to see the week over week numbers. 00:30:03 David Man I want to see the trend. 00:30:06 James But in this put in a feature request, I'm ready. 00:30:08 David I just did. 00:30:09 David I just did I just it just happened. 00:30:09 James OK, good. 00:30:11 Pretty good. 00:30:13 James You see, I was listening. 00:30:14 James Do it well. 00:30:15 James I'll vote it. 00:30:16 James I'm not voting it right now. 00:30:18 James OK. 00:30:19 David Don Matt, where's your vote? 00:30:21 Matt I'll get to it, David. 00:30:23 Matt I have to think it over whether it's worth it or not. 00:30:25 Matt Oh really, when you when you think about it? 00:30:27 Matt I mean, how many of those downloads are just re stores of the same project? 00:30:31 David Oh spoken like a true cynic. 00:30:34 Matt Yeah, yeah. 00:30:35 Matt I mean, I'm totally afford those Amar forms is the best package out there until. 00:30:39 Matt dot net Maui is GA. 00:30:40 Matt So there you. 00:30:40 David Until now, hey there you go. 00:30:41 James Don't even have a package. 00:30:42 James Is there package David? 00:30:44 David So it is on Nougat, but it's a workload package. 00:30:49 David It's not a new Git library package, so it's. 00:30:52 David It's different, so that's another thing that we that I know has been discussed. 00:30:58 David How should those different types of packages be surfaced, if at all, on nougat.org? 00:31:06 David Yeah, so it's not. 00:31:07 David It's not the same nu get package that you're used to, but it is actually hosted in the same infrastructure. 00:31:13 Speaker 1 This thing yeah. 00:31:15 David All will become more clear as things roll out. 00:31:20 Matt Cool, so how about some Azure news and I'll I'll double this one up for Azure service for the month 'cause you both know how I like to do that here. 00:31:27 Matt We go add your. 00:31:28 Matt Notes so so this one is called. 00:31:32 Matt I thought originally when I was thinking about this was just app service, right? 00:31:36 Matt But this is app service. 00:31:40 Matt And so there's a difference here between the two of them, so they both host web apps, right? 00:31:46 Matt So you have your regular app service where you deploy Web app web app on or Web API on. 00:31:52 Matt But the difference between an app service environment and an app service is that the App service environment is going to be fully. 00:32:00 Matt Isolated so like if you have to run anything for compliance. 00:32:05 Matt Generally that's what you're going to want to do is that you're going to want to have it fully isolated. 00:32:09 Matt So like you're a big company or you have like any special, like possibly like a government agency or something like that and you just don't want anybody else on your. 00:32:18 Matt Sharing your stuff so you can be fully data isolated app service environment. 00:32:22 Matt It's what you want to go with. 00:32:23 Matt Now I'm bringing this up in the Azure news, even though it's kind of a isolated type of deal like it's not going to be applied for everybody. 00:32:29 Matt V3 is out, which is brand new and it brings up a couple of interesting things here. 1 pricing got a lot better. 00:32:37 Matt That's always great. 00:32:39 Matt Two, they let you now deploy. 00:32:42 Matt Now this is really neat 'cause this is Azure and the cloud right? 00:32:46 Matt And the clouds always about sharing stuff. 00:32:48 Matt You can now deploy on your own hardware. 00:32:50 Matt Here with this app service environment, which is actually you know like wow you know like 'cause you're actually now pretty much renting your own hard drive in the cloud. 00:32:58 Matt So with app service environment V3 you can do that. It's going to be able to scale out. 00:33:03 Matt Quicker and now. 00:33:07 Matt To kind of give everybody an idea of how this works, then. 00:33:10 Matt And you create this app service environment or ACE thing, and then when you deploy your apps on it normally how you pick like WUS or E. 00:33:20 Matt East Asia for your regions. 00:33:25 Matt When you deploy a web app in the region, it's going to be your app service environment, so it's like completely isolated. 00:33:32 Matt It's just you on that it's like your own Azure region at that point, so just kind of give an idea of how that works. 00:33:40 Matt So yeah, this whole ACE. 00:33:42 Matt Idea app service environment was pretty neat to me when I heard about it version 3 pricing is better. 00:33:48 Matt You could if you wanted to go your own hardware to it. 00:33:53 Matt Yeah, gonna deploy faster to or scale faster as well. 00:33:58 Matt So in redundancy within the same Azure regions, everything you would ever want for your own isolated app web apps. 00:34:06 Matt So yeah, how will we hit up the. 00:34:08 Matt Pick of the pods. 00:34:09 James Pick out the pods. 00:34:11 James Are we going straight to the pick of the pods? 00:34:13 Matt Yeah, let's go straight to the pic of. 00:34:14 James The pods all right pic of the pod. 00:34:17 James Dot net community toolkit. 00:34:18 James This is different than the net Maui Community toolkit. 00:34:22 James This is in the same community toolkit GitHub organization, but this is really cool because Sergio from the Windows App Store app team is kind of like working on this with the community, the NPM. 00:34:37 James On our main engineer on I should say I'm PM ING it too. 00:34:40 James But basically this came about a long time ago as a Windows Community toolkit and there. 00:34:45 James Was a few. 00:34:46 James Packages in there. 00:34:48 James Like Mpman performance and diagnostics and what they did is in the latest version 8.0 preview which is currently out Preview 2 or preview Threes. 00:34:57 James Out they they restructured it all and they said, hey, this isn't really a Windows community toolkit thing that's required. This really can be used anywhere in any.net. 00:35:08 James Applications, so we're going to create a Windows Community toolkit add-on at Maui Community Toolkit at WPF Community Toolkit and just a.net community toolkit that can be used everywhere. 00:35:18 James And this has three packages today. 00:35:20 James One is diagnostics performance and I've Sergio coming on the on net show in a few weeks to go through them all. 00:35:27 James But my favorite is the Mvme library, because it is mind boggling, amazing and will link to the blog that they put out. 00:35:37 James They put it on the if ifdef. 00:35:39 James Blog, But they're going to be moving over to the. 00:35:41 James Net blog, which is very exciting. 00:35:42 James But Sergio put out this blog. 00:35:46 James And it blew my mind because he had this section called Mmap toolkit source generators and I was who was this 'cause? 00:35:52 James I love source generators and I did a video on it on my youtubes which will put a link to as well and what it enables you to do is delete all your code and it just writes all the code for you via magical source generators that are done even before compilation. 00:36:06 James They're all just there as soon as you write it. 00:36:08 James So, for example, if you had a a first name and a last name you you would have a backing field and a setter, and you would set a property and you down property notify. 00:36:17 James And you do these other things. 00:36:19 James You can just put an attribute on a private string first name of observable property and it generates and scaffolds high performance optimized code for you automatically. 00:36:31 James And it does this for properties. It does it for commands, you can do just about anything with it. It's amazing and it works on all.net versions. 00:36:39 James Which is really really, really cool and this is different. 00:36:42 James Then there's some libraries out there that do this, but. 00:36:45 James But they do like IL weaving, which is a little bit different than this, and there's actually just stares generators that are also like text and and other system text. 00:36:55 James Jason and other things have source generators too, which I think are going to be the future soon. 00:37:00 James I'm really excited about it, but this. 00:37:01 James Thing is, mind. 00:37:03 James Boggling amazing, you'll never have to write an I command. 00:37:05 James Or a relay command or an async command or anything. 00:37:08 James Here again, this library takes all of my library helpers and it throws them in the garbage and says just delete all the code that James used to tell you to right shove it in here, and it's just unbelievably cool. 00:37:20 James So it's it's the best thing since. 00:37:21 Matt Sliced bread, is it going to be in your workshop? 00:37:24 Matt James the 1st or 18th ever workshop? 00:37:26 James Yes, I I I actually have everyone write the code and then. 00:37:30 James Delete all the code which is great. 00:37:32 Matt It's really emphasizing the point. 00:37:34 Matt Alright, so Speaking of not having to write any. 00:37:37 Matt Code dev containers. 00:37:40 Matt Yeah, have you guys heard about Dev containers? 00:37:43 Matt I what it is essentially is it. 00:37:46 Matt Is it wait for you to run a project inside a container? 00:37:49 Matt So let's say and I got into this because I screwed up. Somehow my.net installation on my Mac, I could no longer run. 00:37:57 Matt Not going to do.net run any longer, but what, uh, dev container allows you to do it gives you similar to a regular container right where you. 00:38:06 Matt Generally you just have a docker container that runs an application well. 00:38:10 Matt A dev container will let you have development tooling then inside. 00:38:16 Matt Well, a container. 00:38:17 Matt But then you can actually start developing within right in it, right? 00:38:21 Matt So then I can like just say hey David, you want to have all my Python in my NPM and my project here. 00:38:28 Matt Just clone it from GitHub, run it in. 00:38:30 Matt It has like a dev container Jason file. 00:38:33 Matt Open it up in Docker, use the Visual Studio. 00:38:36 Matt Remote connection extension away you go. 00:38:40 Matt You can debug. 00:38:41 Matt You can step through the code port forwarding. 00:38:43 Matt You can open up the website everything and it's so great. 00:38:47 Matt I was able to not have to try to. 00:38:51 Matt On messupmy.net installation my Mac OS I just use.net and a dev container. Now it works, so laziness one out where I just learned about something new and.net still screwed up on my Mac somehow. 00:39:06 Matt I don't know what I did, I have no idea, but it's working in great in the dev container. 00:39:12 Matt So check them all. 00:39:15 James That's awesome, how about you, David? 00:39:16 James You gotta pick up. 00:39:17 David The pod I do, yeah, so I notice this on Twitter. 00:39:21 David That's where I get all of my news. I'm sure it's all true, but this one is true. We have added the Pop up control to the.net Maui Community toolkit. 00:39:33 David So you just mentioned this, but this is the other community OK, and I don't think I've. 00:39:37 David We're chosen this one before in my pics. 00:39:41 David But the best part was is that when it was tweeted by Gerald of course. 00:39:48 David Brad B Rad More says wait. 00:39:53 David There are pop ups in the XCT I need to RTFM more. 00:40:00 David So there are so many great things in the Community toolkit. 00:40:04 David Whether it's converters behaviors. 00:40:08 David But also tons of great very useful views and even some layouts I was using. 00:40:15 David Gosh, I don't remember what it was called. 00:40:17 David There's like a uniform layout I think is what it was called and it will just essentially. 00:40:22 David However, many children you put in it, it will just uniformly space them out in in the in the the page that you give it. 00:40:29 David So there's some great stuff in there. 00:40:31 David Highly recommend folks take a look and. 00:40:36 David Stop rewriting the same stuff that's already there. Nice if it doesn't exactly meet your needs. The team will work with you to get a PR where it needs to be, and merge it and then at some point that code may indeed find itswayinto.net Maui itself. We actually did bring in. 00:40:55 David Oh gosh, what was that? It was one of Brandon Minnick's babies. We brought into.net Maui. I can't remember off the top of my head, but the code will have a chance. It's like the tryouts for the bigs. 00:41:10 David Not really, it's a really good library, so check it out. 00:41:14 James Yeah, awesome. 00:41:14 Matt That pop up control. 00:41:16 Matt Brandon and I were just talking about that yesterday. 00:41:18 Matt That's a big big PR that they put in as. 00:41:21 Matt The 157 commits she went and then just the comments going back and forth. There's like 150 comments just discussing, and it's it was a big deal to for them to put that in there. 00:41:30 David Well, yeah, 'cause it's. 00:41:31 David It's all platform specific implementations of things so so you get the you know the right experience on each platform and it was a similar effort to get that into the Xamarin Community toolkit. 00:41:44 David So a lot of great work from many people to make that happen. 00:41:50 James It's awesome, it's so good, nice, but we did it. We got through another podcast together. Now David's gonna go eat some dinner. 00:41:58 James Thanks everyone for tuning into the down. In my podcast we did it give all the feedback to the team. We appreciate it. Don't forget to subscribe. Share with all your friends checkoutthe.net. 00:42:10 James YouTube got lots of stuff coming out every single week over there. 00:42:12 James All sorts of good stuff done in Maui. 00:42:14 James Community standups on Donnett recordings. Whole bunch of good stuff. Check out the blog as well. That's gonna do for this month's done and by 5 guests till next time. 00:42:24 James Thanks for listening. 00:42:25 Bye bye.