What’s New with .NET MAUI featuring Maddy Montaquila

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
welcome to this episode of Dev questions with Tim Corey join us as we tackle the questions you are asking about a career in software development understanding the industry and new technology if you are just starting out or you want to grow stronger as a developer this is the place to get your questions answered now here's your host expert developer and online educator Tim Corey alright welcome to a special episode of Dev questions here at Microsoft build with me today I have a special guest Maddie mataquila welcome Maddie and you are on the pm.net Maui team correct I am yup product program manager whatever you want to call it PM so what does that mean so we basically if you drew up a Venn diagram and you had customers and you had the business and you had the engineering team we are the little sliver of the overlap we're trying to make all those three pieces talk to each other okay so depending on the day my job is completely different but I was a computer engineer which is how I ended up on the.net team I wrote software and then I was like I could I I like this but not enough to do it all the time and that's how I ended up in devtools it was kind of wild okay yeah I'd like to hear more about that like where to get started in this whole process did you go to school for this do you go to school and decide to change careers what'd you do yeah well let's see it all started um probably in the 90s when I when I installed Barbie Fashion Show on my computer I thought I was the coolest person in the entire world because I clicked some buttons and all of a sudden I could design Barbie's outfits which was pretty great I don't know if that was actually the 90s I have no idea what year that came out but probably around then um and I didn't realize there were people who built these things and so when I was looking into college I was like you know computer sort of thing I should I should do that but I really thought I would go work on chips like right you know I was like Hardware and so I started with electrical engineering almost failed calc 3. and was like you know I don't know if this is for me um and so I I started it you know moving more in software and I thought I was gonna do robots or embedded stuff and I played around with that and then I started doing some like GPU research and doing like big data because that was all the buzz when I was in college I was like the beginning of the Big Data thing and um I did an internship at Microsoft as a software engineer and I was like hmm I don't I don't know I like it but there are so many things that bother me and I don't like writing tests and I don't like JavaScript and I'm getting really angry because all of the decisions we've made on this product are just totally wrong like why are we doing this like this and I was fortunate to have a really really good manager and Mentor who was kind of like you know could work on influencing the product you need to be technical for some for some products and I was like no that's fake that means I quit engineering like I'll figure it out I did not figure it out so I ended up uh going back to school doing another software engineering internship and being like this PM thing you know what I'll give it a try so that is kind of how I fell into this it was a lot of luck and like not doing well at things so that was good thanks yeah but it's a really fun and and so when I was an intern as a PM at Microsoft they acquired xamarin which was a startup at the time and I'm in the Boston area there were boston-based startup and my boss at the time was like whoa we just Acquired xamarin and I was like what is that sounds horrible that's the worst product name I've ever heard in my entire life and they moved into the same office I was interning in so I got to know some of the people on the team so when I graduated they were like do you want to come work on net developer tooling and I was like no but I'll take the job and sure enough here I am almost five years later so it is a wild ride together yeah I have a similar experience I was actually an electrical engineer okay um one year yeah I made it one year I made it through I didn't make it through account it was one oh so I was earlier okay now I went back and got calculus one two and said this is really not for me um so I was again Hardware I loved Hardware I love playing with you know circuits and Gates and all the rest and but they're really my my love was software it was the making stuff work and and writing software and so so yeah I can understand that you I didn't want to give up my career I thought right I'm a failure if I quit electrical engineering but the reality is you're not you're just find the right spot for you excellent so do you write code now or do you just influence code now there are many reasons for that not uh not to forget how bad my code usually is but I write a lot of Maui apps so or I you know I don't think I've actually published anything in recent memory but I write a lot of Maui code and then I'm like wow this is hard so I should fix this um I did ship one string change in Visual Studio in the Manifest of something and apparently I did not do the order of things right and the error was very vague and it broke our entire build and nobody could figure out why like oh the PM string change broke a build haha but actually we don't know why so that was one of the only lines of code I shipped that's a badge of honor though yeah everyone has to break something exactly once I did it and I like texted all my friends I was like I broke a build with a strange change this is great so good so um what is new and interesting about Microsoft in dot net Maui specifically right now I mean yes it's a whole list but is there a favorite thing or two that you're working through or bringing out recently yeah so Dana Maui for those of the uninitiated we shipped last year at build very exciting um and it is cross-platform.net iOS Android Mac Windows um and and you can use Visual Studio you can use visual studio for Mac you can do whatever you want we have people building games we had someone build like a doom version rebuilt in Maui everywhere yep I was like okay cool yeah but lots of like business apps Airlines use it for like the pilot to check off that the plane is ready to go I don't know people use Maui everywhere it's very cool um I'm more on the tooling side of things so once you actually open up the IDE and you start typing the code like what's that experience like which is fun because that was the thing I probably hated the most as a developer I had to use like um oh my gosh what was it called the the predecessor to Android Studio that was just awful but Eclipse okay yeah and the debug button was just a little bug and I was like this is weird um my favorite thing that we have done probably in the past like year or so is we've started unifying all the different ways to change your app while it's running so a couple years ago it was more like you made a change you had to rebuild your app and we call that hot reload or we called the fix of that hot reload where you would make a change while your app was running and it would deploy that change without you having to stop and restart the app and wait for a build and whatever it is but everyone was having this idea at the same time so we did it and then another team did it and then another team did it and then there became like eight different hot reloads and we were like all of these are very similar what do they all simplify and all yeah yeah bring them together yeah but they're all slightly different and a lot of people have very strong opinions and some of these things were built on Technologies from 10 years ago that they brought up and and this one uses this button and this one goes on file save so it's been a really fun project the past year just trying to find all those pieces and like make the Matrix and then start to slowly pick the best way forward without angering anybody and um negotiating how to get all those things merged into one experience so we're pretty close now I think almost everything you hot rila now goes through one kind of hot reload the.net hot reload mechanism um which is fun because I actually got to step outside of Maui and outside of Mobile land and the people in the web told me a lot of things about web that I did not know and they were like you know we have to hot reload CSS and I was like oh no but that's been a really fun project um it's come a really long way so all of that like make your life easier without having to restart your app is good um and of course AI this build everything is about you know AI this AI that so we've started to look at how you can take copilot Visual Studio or chat GPT or whatever the AI flavor of choices and help that with you like getting started with your apps if I say like I want an app that looks like this or does this can we make that a really good experience for people who are new to Maui to get up and running and bootstrapped without getting thrown into an app that they have no idea what it does but without having to learn a lot of the painful parts of any programming language yeah that's that's a big deal I mean the idea that we switch back and forth so much and we have to jump into this and jump into that and learn all these different systems and processes is difficult so that streamlined process is great um staying inside of visual studio is great not having to jump around um hot reload been wonderful oh good because I love it personally but it's been wonderful because it's it makes that process easier I'm not I'm not the best at the first iteration being perfect oh so I put the first iteration and look at it and go that's not right you know that's horrible um so let's fix this one little bit at a time until it's right and so just be able to do that more quickly and and more efficiently has been awesome so yeah I remember one customer when we were early in the hot reload days being like I just couldn't get my label to be where I wanted it and every time I moved it like two pixels I had to wait 45 seconds for the build to deploy oh my goodness that's a tough experience yeah that is rough so that's better now good excellent we appreciate it so when we talk about you know chat GPT AI co-pilot all the rest um you're talking about like UI changes potentially being in there so we can actually maybe not have to know xamarin or xaml quiz deeply yeah that is a really big thing we're looking at so the co-pilot for those of you who are in the private preview um it is not great at xaml it has a very hard time either way definitely the same um I've actually asked it for pages and xaml and it's given me a C sharp before and I'm like hmm nice to know that I will not be replaced by this so that's good but we've been looking at how we can a you know like train models to be more resembled friendly or you know xaml literate if you will but also the the parts of UI development that need kind of that helping hand and so getting started is a really big one just saying like this is I want something that'll look like a login page right it needs to have a profile or an icon and two text boxes and a button right you should just be able to say like give me a basic login page okay and then the next thing that's been really fun is how do you make the AI iterate on itself and being like all right this is cool center those text boxes or okay make my label or my icon up top make it a circle and pull it from this file and just start to get it to you know work with you almost like a pair programming right right so it's obviously still very early as all of the AI stuff is but that's one of the the main things we're looking at the other for those of you who are um not current windows or Maui or xaml developers mvvm model view view model as an architecture can be really hard to just wrap your head around that was probably my biggest barrier to entry when I started on the team so just being able to say like hey give me a view model that does what I need it to do to populate this page like excellent this is yeah this is a list View and I need this data set do the middle so we've been looking at things that could potentially make that easier AI is hard and I don't really get it but it's very cool and when it works well it works great so well that's been kind of the theme for everyone listening I think to this build is that was great it looks complicated yeah so yeah so yeah it's I'm sure it's a uphill battle trying to figure out how to get it to work right work well yeah but but yeah the idea that we can we can take a a tool like that and make our jobs even faster you know learning xaml is a little bit tricky especially for people who haven't been in that space before um so um now the xaml4.net Maui is different than say uwp WPF or um when UI correct yes so people before the xaml people get very upset with me the xaml itself is just markup language the namespaces the API the control surface is what's different gotcha so the xaml itself isn't like a different syntax but the flavor I call it the flavor right the flavor of xaml is different so what you would call um a button with content in uwp is going to be a button with text in in Maui so that can be complicated but the general feeling of like this is xaml that that stays the same fortunately is there any any thought to kind of bring those together or is that kind of a difficult proposition without much value it's probably the latter we have had a lot of attempts over the years to unify them like xaml standard was a thing xaml islands all these different things um the fact is both of them have their pros and cons and are better for the use case so WPS ammo is awesome for desktop like wpf's xaml we think of as like the golden standard right it just works um but it didn't translate well to mobile which is why is xamarin and now Maui was different in the first place and so for us to go and contribute that back or to come up with something shared we're sacrificing on both sides so we've kind of at this point in time and things change all the time so who knows at this point in time we've kind of pocketed that idea and we're letting people you know use wpf's ammo if that's what they want uwp's animal of what that's what they want what we are working on is kind of more migration stuff so the migration assistant now will take your or the visual Studio Upgrade Assistant yeah it's an extension you can get and it will now take your uwp projects and migrate them to one UI for you so it does a lot of xaml transforms for that so we're looking at what kind of possibilities there are to extend those to WPF to Maui or uwp to Maui or Maui to something else like there's a lot of options there excellent yeah so now Maui is cross-platform yep so we're talking Mac and windows desktops as well as IOS and Android so is there any thought to Linux desktops yeah we could click a button and make Maui work on Linux we would and net runs on Linux now right so it's not so far away um frankly the only reason we haven't is just we have other priorities right now and a lot of it is you know quality has been our big push for.net8 kind of refining the desktop story in general doing things for keyboard listeners so if you want to make custom hotkeys and there's a lot of that stuff that we've been tidying up the the Linux problem speaking candidly is that there's no good UI toolkit so for Maui to pick one means that Microsoft is now making an opinion on the best Linux UI toolkit and we don't want to be the people to make that decision because we get ourselves in enough trouble it's probably not a good idea that old Microsoft again yes exactly so what I would like to see is for us to make it easy to swap out like your own either drawn controls or UI toolkits and it's already much easier with Maui than it was in the past but I would really like to see someone in the community with like a good drawn UI toolkit make that able to run in a Linux container and we can start leveraging that and maybe go that direction I don't know if that will happen the other thing that we're looking at is if we can bring like just a couple controls in the Blazer webview over to Linux so it would be nice if you had a Blazer hybrid app which is a big part of Maui now where you just take your Blazer app or components and shove them into Maui and they run locally um maybe all people need on Linux is just a Maui app with the title and a couple buttons and their Blazer webview but we're not sure we're still in the early days of kind of doing that research a lot of what we see people wanting Linux 4 is embedded so um they would need a command line interface for Maui which is a whole thing we haven't even thought about wow bigger fish to fryer right now sure yeah yeah um so how do you do that research how do you find out what is best good question oh my goodness um well we come to events like this that's a big part we have a whole lot of ways on the PM team and at Microsoft in general and Maui and net are part of the developer division so we have a whole like guidance for the developer division on how we should do customer research we have an amazing user experience team that will set up like quick pulses so people can come in and just see something or we ask them like a set of questions really quickly and then bam bam bam and that's data and we do we do these like Hands-On concept value tasks we call them so we'll click you through like a PowerPoint or you can see uh demos of something we're building or you can go and use it and then you rank kind of like the benefits of it the limitations of it and we can use that data we have um a couple like interrogation rooms I call them that's not what they're actually called uh they are literally like one-way glass like you're in an episode of SVU Law order and you sit there and we watch the customers on the other side of the one-way glass use the product and we can see the screen share this was the first time I did this was the first time I realized like nobody knows how mvvm works because the poor customer kept trying to like edit the view model to make a button show up on the page and I was like oh my God it's not just me this is great so that's the thing and then of course surveys we run a lot of surveys both in Visual Studio like those gold bars up top but also sometimes we'll tweet them we do a lot of community events and we just talk to customers and learn about their apps Microsoft is you know very we have really good relationships with Enterprise customers so folks who are on Azure who are looking for a mobile solution the Azure customer specialist will come to us and be like hey this person's looking for blah blah like can you do that and we kind of take all of that feedback in all its different ways and try and holistically put it together a lot of what we do is not necessarily like validating things but prioritizing among the things we have validated so and we have data you know Microsoft is very good about data I cannot see anyone's personal information no matter how hard I've tried sometimes I just want to email the person who is triggering this one bug over and over and I just can't and it's very frustrating I cannot see your source code as much as I want to so that's reassuring but uh we'll look at that we'll you know look at Dash words and we'll for hot reload for example like we wanted the amount of time of a hot reload session to go up so we wanted to support more times of more edits so that you had to stop less and so we watched that number pretty closely for a while we were working on that excellent yeah so yeah it's it's important then to give good feedback yes so you hear what's most important yes because as you said there's there's so many things you could do so what what's most important excellent I want to Circle back to somebody mentioned earlier which is Blazer hybrid yeah um can you talk more about that experience compared to just regular.net Maui yeah so Blazer hybrid was kind of born out of this feedback actually that the Blazer team was getting a lot where they wanted customers using Blazer really needed a desktop app or an offline scenario or just a lightweight way to have the Blazer App working when the computer all of a sudden is in the truck for the field agent and they don't have their hot spot anymore right um and so we were like well you know we could put peanut butter and some jelly together and we could make them and then interesting and so that's kind of where it started it also works for mobile which is great but really what Blazer hybrid does is it just takes the folks who want who are web developers who are Blazer developers who have Blazer and Razer files it makes it really easy for you to translate those experiences to a client app so we say like mobile or desktop is client platforms um it makes it easy for you to do that without having to learn something new it also makes it really easy the way that we've seen it used a lot is for people to build component libraries used across both their web and their mobile apps so that your developer team is using the same stuff so your branding is the same or if you have a web portal that's different than your mobile app but you know it uses a lot of the same bits and pieces you can just take the little blazer components over and so it's caught on really well um we kind of threw it out there like we don't know if this will land but you know we can do it we want to do something like it and it really took off so it's been cool to watch um I get the question a lot will Maui Target the web at some point I don't know again it's one of those things that sure like one day if I have all the resources in the world and they let me do whatever I want absolutely I'm not sure when we would get around to that kind of thing but the Blazer to desktop translated really well Blazer to Maui and so we definitely have our eye on if the other way would be useful um there's all sorts of challenges with all that stuff though so we'll see yeah now just to be clear here when you're using a Blazer hybrid app yeah you have access to everything Maui does correct yes okay yeah so it's literally just another Maui control is the Blazer webview and you can reference your library or your component or page or whatever your razer file and it just kind of loads up in your xaml or c-sharp um you can also you know pass data between the two very seamlessly you don't have to pass anything it just has all the data so if you have things in your Blazer component like you're iterating a counter and then you also have that counter and like the taskbar on Windows that will stay updated right that just works so yeah excellent yeah it's really cool so is there any kind of advice you would give for a newer Maui developer just getting started or things they should find resources they should go to um that you provide or that they should know about yeah learn.microsoft.com is a good starting point for pretty much everything we have different types of walkthroughs we have like self-guided ones we have video series we have um a click through kind of learn as you go like course type thing with different modules we also have an amazing community so I have seen a lot of um our customers and people who build like packages that ship in our community and people who write a lot of blogs like they're very accessible on the internet you can reach out to people and ask them questions and they're generally really nice about responding we have a community stand up the first Thursday of every month where we'll go through some of the more popular blogs from that month some of the more popular like PRS and libraries that people have shipped out so that's a good way just to get exposure to who's in the community and what's going on and that's really fun we also usually have like a demo or something random on there that's on YouTube yes it's on YouTube in the visual studio twitch okay so if you follow the.net Twitter or you will see the link to it I think live.net live period dot period net excellent is your website for all that um but there's a lot of different ways it really depends what you like we have a lot of people who make great YouTube videos now um we are working on some kind of like in ide like can we give you a walk through that just pops right up that would be nice I don't know that'd be great maybe one day yeah um but it's it's pretty easy to get started just download visual studio it's free for students and for community and if your company makes under a certain amount of money yeah a million dollars yeah and free for personal use too so you can just check it off and reinstall everything for you that's great yeah so we got a question for you now this is more broad not just Maui um but think of a person who's kind of starting out in development what advice would you have loved to have had back when you were starting out that you would love to give someone else oh my goodness uh that nobody knows things off the top of their heads like it is okay to look things up on the internet you are so conditioned when you come out of college to not Google things or Bing things or now in this AI world oh my gosh that's like a whole other spin I didn't even think of when I started this answer but like ah I look things up all the time the developers I work with look things up all the time it is totally okay to be like how to iterate over a string like that's normal that's what people do don't feel like an idiot because you do that and as all of my friends who had gone into software started to realize this at the same time we were like do you do this do you do this oh my God you did oh my God I'm not an idiot I'm not an idiot like you just have this horrible imposter syndrome where you're like these people just know things they don't they have the internet like use it that's what it's for um that and like if coding's your hobby cool there's a lot of people who love to code in their free time if that's not you that's also fine especially on the.net team where we have all these amazing people who have like been around in the community forever I was like I don't have a library with three million downloads like what am I doing wrong with my life and at a certain point I realized like if everybody on the team was like that none of us would be able to relate to people who aren't like that and it's good to it's good to not do the same thing everyone else is doing it's fine but man now that people have ai this is great it's wonderful it's wonderful I I appreciate that I think that that's a that's a big deal is yeah knowing that you know there's other people like you yes not just you know you're not alone you're not um an idiot yeah exactly we're all idiots yeah no I mean it's okay to look things up nobody's gonna slap you on the wrist don't copy things that don't have an open source license that's a bad idea like follow the law but you don't have to memorize how c-sharp looks that's crazy use that brain space for other things absolutely yeah so I I appreciate you being here thanks for jumping in thanks for being a dead question podcast I appreciate your um contribution to the community in helping us make things better awesome thank you for the time and Happy build enjoy the rest of it yes thank you and thank you for tuning in um thanks for coming to this special episode of Dev questions and as always I am Tim Corey thank you [Music]
Info
Channel: IAmTimCorey
Views: 8,004
Rating: undefined out of 5
Keywords: .net, C#, Visual Studio, code, programming, tutorial, training, how to, tim corey, C# course, C# training, C# tutorial, .net core, vs2022, .net 6, .net maui, dotnet maui, build 2023, microsoft build
Id: wf-jtXGku6E
Channel Id: undefined
Length: 26min 56sec (1616 seconds)
Published: Thu Jun 22 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.