mergeconflict256 James: [00:00:00] Frank Frank Frank, Frank, Frank. It is Microsoft bill 2021. It's a conference from Microsoft that happened in may, but it's May 31st. Now it's over. Frank: [00:00:21] Is it May 3rd? It's not made 30. Oh gosh. How is time moving so fast? I guess this is the beginning of the. Beta summer on May 31st Google, you should have been the beginning, but neither of us got super into it. So this is the one where I got a little bit more into it and I realized, and I started installing betas on my machine. It's too early for betas. I should should've I should've held out a little longer, but I had to try me some James: [00:00:48] betas. I also installed some, not even beta, some previews, Frank that's right. So I, you know, we'll get to it later. But when I think about visual studio and.net and how things are architected now, I feel really comfortable. Like I've installed previews of Don at six and on installed them, like you just delete a folder and you're like, cool, it's gone, you know, uh, compared to. When I think Google IO, I'm updating my Android devices. I'm updating, you know, different bits and pieces and SDKs on iOS. It's like I got to install all of X code and maybe a new release of, you know, Mac iOS and update all my devices. It's a little bit more of a process than running a command line that says, please update this to the development environment and it's done. That's a nice experience. That's not bad. Frank: [00:01:42] Yeah, for sure. I was just playing around with a little Android because I'm all across platform me with Ms. Build coming up because it's your apps have to run on all the platforms. And I think someone even made the statement at some point, all apps will be multi-cloud. I took that as a little bit of a. Challenge. I'm like my app will never be multi-cloud sir. James: [00:02:01] How dare you suggest? Frank: [00:02:04] Yeah, I am native client forever, but I knew where they were coming from. And I actually really liked, um, there was a, there was a really hard stress on cross-platform. So like multiple languages, multiple platforms, all that kind of stuff. And, uh, uh, so I was playing around with Android and I noticed the Androids up to at least API version 30. And so I make fun of dotnet being like keep changing things, but at least they're only at version six, you know, I haven't had to deal with 30 of these things. So it's true. You know what though? I probably will mark that everyone, when we get up to.net 30, James: [00:02:42] 24 years left to go. So, um, Frank: [00:02:45] gosh, I might just see it. James: [00:02:47] So what was your first build experience? Frank? It's not, but let's pretend. How was it? You virtual little hybrid, you know, you went to dub dub last year. You went to Google IO this year. Uh, what, what did you think. Frank: [00:03:03] Uh, I like the conference. I like the in-between parts in the conference when it's not always necessarily like a, the specific talk that I'm going to. I always like, Microsoft's this not, this is maybe my first bill, but it's not my first and Microsoft conference. And I love the in-between little socializing that all my Twitter friends show up on. And so I just love that. Like, Just getting to see my Twitter friends on TV part a little bit community stuff, you know, like that, but it did open up with, um, a big Satya speech and I love Satya, but my goodness, I cannot understand him. He talks very grand concepts. It was a funny mark difference between apple, where they're usually just. Pitching some API or something that's been added to the operating system. Satya was talking about the entire world and how technology is changing everything and came up with two phrases that I absolutely love that I just pulled straight out of this tech conference and I'm going to use for the rest of my life, mark that word. Uh, Tech intensity. That was first, my first favorite and then developer velocity, and then developer velocity got repeated throughout the entire conference. I'm like, Hey, Microsoft, you know, I'll move at my own pace. I don't have to move quickly if I don't want to. But Microsoft kept telling me to move quicker. James: [00:04:31] It is, there is a velocity of how fast people move. We want to make sure that anyone can move at any velocity that they seem fit. But you're right. I think that it's fascinating because. I went to PDC. I went to early build. I used to go to these conferences, even Google IO, which they were very heavy on one set of technology. Right. When you go to WWDC, you're going to be hearing about Mac iOS, iOS, iPad, iOS, watch S and T V U S like that's pretty much it. Right. And everything around it. When you go to Google IO. It used to just beat Android and some browser stuff. And now it's grown into Firebase and to flutter into a few other things, but it's still mostly focused on mobile and web development in Google cloud platform is kind of there. We're not really just Firebase focused, whereas build over the last few years. Has been an everything conference because Microsoft is an every developer company. And they're even more than, you know, for developers to do so much more than that. I've worked for this company, obviously. Um, and I work in the developer division where we focus on developer tools and inside developer division. Right. There's there C-sharp there's Java work. There's TypeScript, there's Python work. There's um, vs code there's visual studio. There's DyNet Maui there's, you know, there's the dotnet run, there's all this stuff. And. Uh, that doesn't even include all of the cloud, which is, uh, there's, there's so much, so it's. There's a lot to cover. That's what I'm trying to say. Frank: [00:06:03] Yeah. Uh, I, it was a little bit humbling actually, because I consider myself a pretty up-to-date programmer. I know the technology's out there, but then scrolling through the session list, it would be like a one out of 10 sessions would be something that's actually, um, Important to my job and not that the other ones aren't important, just important to me. And so I'm just like, wow, there is so much out there that I don't know about and don't use. And actually someone on Twitter was making a good challenge to everyone. Um, go to a session that. You have no, I don't know anything about, instead of just going to the sessions that, you know, stuff about, go to the ones that are crazy. I did not take that advice, but I do love me some power platform and I love their demos. So I would sneak in and watch as many power platform things as I could. It makes me think of being a VB developer, James: [00:06:59] lots and lots of power platform. Not as much as before. I think that that was kind of nice as I went into the schedule builder. And there were things on demand. There was a backpack. I don't quite understand the backpack, but you know, I'm throwing stuff into my backpack. Frank, Frank: [00:07:14] you're strong people, as far as I can tell, you're throwing presentations and people into your backpack, which is, I think the analogy breaks down a little, but I would have loved to have been at that meeting with that. Now, when she came up, James: [00:07:26] just throw it in, in the backpack. So it's all in the backpack and it's on your schedule or in a backpack. And I got it. It's a safe list to watch later. It's fine. Uh, But it was cool because I did go into the schedule builder and I literally just typed in.net and all the sessions that I wanted to go to were there. And that was it. And I was pretty happy with that. And then I tuned into the CR the homepage a little bit, and homepage was nice with like, what's coming up. I was doing stuff. The power platform is great because, uh, if it's a low code, no code solution. However, I don't know if you caught it so much this year, they introduced kind of. Two big things. One thing that makes the no code even more, no code, but then they may introduce one thing that made the low code a little bit more code. Frank: [00:08:10] You know, I did have a snarky comment to make, um, well, snarky comment, one, I don't think windows was mentioned until about 30 minutes into the opening keynote, which I found really interesting, but number two, as far as I can tell, the very first piece of code written on the screen was for the power platform, a low code solution. And the irony just struck me. And I really enjoyed that, that the first pizza code was for the no code solution. James: [00:08:38] Lots and lots of no-code. Well, I want to talk about the, the code part of the whole code. Um, one thing that, uh, some of my fellow colleagues and some, some people that you may not like, you're like Pierce Bogan over here, a big shots Pierce, uh, the Xamarin team, he works on.net solutions for power platform. The one thing they really showed off heavily that I've been in lots of meetings about, which is about bringing your.net web API APIs. Directly into the power platform. So for example, let's say that you had a web API to get and set pizzas. You could just, um, link that into the power platform and it would generate UI for you and to do all this stuff for you, you could point it at the backend accordingly. So, and they all dated. They're like publishing to Azure through GitHub actions and all this stuff, but it was really simple as like, Hey, I created a new solution. Here's my gets. And then boom. Here's. Here's here's my backend and an application with like no code, because the developer that, you know, in the back end, your backend developers do. And I thought that was really neat. It's a nice extension of, Hey, listen, there, it's sort of realizing that low-code, no-code only goes so far. Right. And then you're going to need some code. Frank: [00:09:57] Yeah. But, um, that's perfect. That's exactly what it should be because, um, We shouldn't be hand coding against API APIs, just, you know, anyone who's ever used access knows this is not the right way to be building apps or, you know, the way we do with code, we should be doing it the power platform way. And I wonder if you can answer me a marketing question that I didn't quite understand, uh, can people sell these components? Could I go on there and sell my API or do they not have a store for components and power James: [00:10:30] apps yet? I don't know. That's a good question. I do not know. Uh, I would have to look that up. Yeah. I Frank: [00:10:38] would love to be in the component business, honestly. Uh, I, I love building apps. I love building native apps, but for enterprises and internal apps, I think this is, these are really powerful solutions. James: [00:10:51] That's a good question. You know, and, and the power platform, we're talking about power apps, which has only one part of the power platform, which also has flow and power automate and all these other things. Ah, I don't know if there is a, what I'm thinking of is, uh, like a marketplace kind of extensions. I'd have to look at that. That'd be interesting. Frank: [00:11:11] Yeah. The only reason I'm thinking of it is, and one of the presentations, uh, someone had a little premium and a little diamond by it and I'm like, Ooh, I want to sell premium components. Uh, Yeah. And if we're not making this clear, what's neat is the component becomes like a little, uh, your API becomes like a little object oriented component that has properties on it. You can call methods on it that are your API APIs, and you can pull out information from it. And that gets bound to a UI and Presto Banco. You have an app. I am totally here for that. James: [00:11:47] Nice. There is a thing called a partner and maybe a partner can build. Things, Frank: [00:11:56] there was an interesting distinction called citizen programmers and. Other programmers or citizen. Yeah. The idea was projects are more than just programmers. They're the project manager, they're the clients that are going to use it in the end. And Microsoft was really pushing on a collaborative, uh, foundation for all of that. So they wanted everyone to sign in and be able to mess with your beautiful UIs, which, you know, pros and cons. It's good to have division of labor, but at the same time, we have been a little bit too developer heavy. In the past. So I'm, I'm here for the citizen programmers, which I think is a terrible term. So I'm going to keep using it now. James: [00:12:38] What was the really cool thing that you were talking about? The no-no Frank: [00:12:42] code? Yeah. Yeah. Okay. No, no code a few months or weeks ago. I somehow convinced you to do a show. Um, GPT three. The new magic neural network out there. That's changing everything. Not really. It's, it's still in early stages, but James, they did the amazing thing of using GPT to generate. And I'm a little unclear, but code or UI for your apps. So you tell it a little bit of something that you want, and they had a pretty narrowed. Downfield on what it's capable of. I'm hoping actually you remember a little better than I am because I just got, once they said the word GPT three, I just got lost. I was just imagining all of the wonderful things you could do with it. Uh, but there is some kind of natural translation of things. Again, trying to get more people into the development process where. You tell it and what English or something, and it gives you a little something. Can you help me, Jane? James: [00:13:42] Yes, it is called power FX, uh, which is fascinating for it. But for example, it's powered by GPT three. And what you could say is you could say, uh, You could write in because you could do a bunch of, you could say, show me all of the customers, uh, from the us who have an expired subscription, right? Maybe that's, you know, those are some key words, a query and it would then generate the query for you based on that. Love it. So if you don't know the database syntax to go do that stuff, it just recommends based on your natural language and then generates a UI for you. Frank: [00:14:18] I kind of wish they would just bake GPT right into the database then like, why even do the translation step, make the database, do the translation step, but I love it. It's perfect because it's, it's doing that hard task of English to code and that's kind of what the breakthrough of GPT was. I was amazed when I was getting it to generate very simple classes with very simple properties on it. And that's because these are early days. And GPT 30 is going to be scary and, you know, kicking me out of a job, but I don't know. I'm just so happy to see it deployed, uh, in a real project. I'm excited for that and I want it, I want it. I'm in visual studio. James: [00:15:00] Very cool. Yeah. I think it's only at the beginning of how this will begin, like you were saying. So to me it was neat. Very neat to see that demo. And, you know, uh, I gave, uh, I gave a talk, uh, in the student zone student zone, uh, which was, uh, introduction to popular programming languages, myself. I talked about a little, uh, programming language called C sharp. I don't know if you've heard of it. Frank Frank: [00:15:25] is, did that come after C plus plus or before? James: [00:15:29] After Frank: [00:15:31] after maybe after, James: [00:15:33] um, also it was a C-sharp and, uh, Python, uh, Christopher Harrison did a geek trainer on, on Twitter. Uh, he did and on Python, which is a cool contrast. So I actually opened up and I talked about, you know, and Brian Clark was, was there's also another streamer works in cloud advocacy. He, he w we talked, he talked quite a bit about. You know, why are we talking about multiple languages? Because they each have different use cases and it's not a, this or that. Right. And that's kind of the theme of this conference is, you know, Hey, it's cool to use power apps. If that's your use case, you need to build this thing. Or if you want to use a full, you know, uh, stack with.net, or you want to use serverless stuff, or you want to use whatever, right. It's, it's those things. And that's kind of like the Microsoft, uh, which is. What people been, I think about. So it was cool to be in there. And then I, you know, I, we kind of talked about, you know, Python and C sharp, but the programming languages. So like th they're, they're all not that different. I mean, really, they're not that different, right? I mean, do you have a semi-colon at the end yet? And of course, you know, there's different things, but the code that you write, you know, you just, you fall in love with the language. Like if you fall in love with, um, you know, VB, like you're talking about, right. So it's, whatever it is, it's good to go. I like how things are also. Cross they calling it fusion development. I think as a keyword you were looking for earlier, which is enabling teams with a different set of backgrounds and their coding experience. Being able to all collaborate effectively, which is something that. Uh, you know, I've also often had to do with like designers, you know, and I, and I wish that these tools existed when I was working with game developer, you know, in the game industry, because it'd be cool to have the designers, you know, generate queries and do stuff to make it simple. Instead of me having to build an entire tool or I could build a backend that they could integrate into. So there's a kind of cool to see these worlds collide in a way, if you want them to, they don't have to. Frank: [00:17:31] You want them to? Yeah. I need a side tangent. Acento see Sharpton for a brief moment. Uh, did you see anything on C sharp 10? James: [00:17:41] I watched maths and, um, Dustin, Dustin. Frank: [00:17:48] Yep. Yep. Global usings James that's two words global usings. So when you were saying, like, what are the differences between C-sharp and, uh, Python? I, my fallback answer to that was, oh, C sharp makes you write so much a boy or a plate to get going. So it doesn't look as nice to a new programmer, but yeah. Uh, with C-sharp nine, we got top level statements. And with C-sharp 10 working in global usings, these are magic because you put the word global in front of your using, and all of a sudden it gets applied to every file in your project. And the beauty of that is you can hide away a lot of like, uh, references and project imports and things like that. You know, I'll probably do a global using system just so I can get rid of that junk at the beginning of everything. But I was thinking, you know, with those two little features, you can actually, it really is just the difference of a semi-colon between, uh, C sharp and James: [00:18:46] Python. It is in fact, I don't know if you got to see the minimal web API demo. Did you see that at all? From his car? Uh, Frank: [00:18:54] no. And I'm angry. Cause I think I saw a little something on Twitter in some I'm drawing, but I think I've seen it. How many lines did they get it down to? James: [00:19:04] So they, they got it down to less lines than express with Java. Well, of Frank: [00:19:09] course always got to compete with them JavaScript. James: [00:19:12] It's like two less lines, but here's the magic of it because you talked about global usings here's the cool thing is I believe that new get packages. And frameworks can define their own. At least the@leastasp.net core does, but maybe not nougats, but at least. At least the framework handles the SDK 10. So at least that core 6.0 defines global usings. So, you know, when you're on asp.net core and there's like 20 using statements, you never have to write a global using statement or a using statement ever again, because unless you're doing extensions because all the base ones are there. So to build a web API, You just do like map dot get are mapped up post and you like write a little bit of lines of code. It's like really simple. You also can use the top level statements with it. And they, they bundle all the boiler plate out of the way. So it's literally just like a file that says like map dot get, or like, you know, service dot, get, add cores or something like that. You know what I mean? It's. Mind blown the blowingly. Awesome. It's so cool that, uh, marina Gaga did that demo with one of the engineers on the team. I forget his name. I apologize. Um, that was super duper cool. Definitely worth going back and watching, uh, that part of the it, that was in the.net six. All right. Net six talk on demand. It was super duper good. So that was really cool. That was one of my favorite features. Those two things together. Like it blew my mind. Cause I knew about global usings. But then when I saw the minimal BP and I was like, wait a second, it defines all of the using statements for me. Like I never want to write using Xamarin forms ever again, which will be using Microsoft dot Maui. I never, I don't want to have to write that. Why would I'm already in a Maui app? You know what I mean? I'm already it's so, so cool. Frank: [00:21:07] The irony here is. And, uh, Maui just came out and has demonstrated that you now have like startup classes and things like that. And so now I want minimal Maui because you have to do all this weird component registration. They copied the bad parts of asp.net. You have to have your eye everything. And now I'm wondering if we can get that down to a. It's few lines is ESPN on that, but that's just a joke. It's it's no big deal there. There's no reason to have code golf like this, especially in your startup files. Like if you're most apps you create your startup file in the beginning and you never ever touch it again only sometimes when you're adding little bits to it. I always that's usually the goal. Do you remember the bad old days? When we used to put so much stuff in our like app delegates and iOS, like we put everything in there. James: [00:22:00] Uh, I I'm. Okay. I got some, I was doing a video on my YouTube. I have it's in the next few weeks coming out and one's on. One's on like styling the status bar and another one's on what is it on? I have it here. Uh, one's on dependency injection. And I was showing these features and you know, you need to write a little bit of code to set the status bar appearance on iOS and Android and Frank. I just wrote it all in the app delegate. I was just too lazy to, I was like, it's four lines of code. It's like five lines of code just out. It's not in the app delegate, but it's in the Elliot. So like, it just keeps growing and I'm like, and there's all these assembly exports on top. So I am excited to, um, yeah, to, I mean, I was, I went back to remember how you'd go back, like back back in the day. You would do all the global styling, like all of the styling of your app would be in the app delegate. And it was like so ugly, but at least it was all in one place. So I guess that's good. Frank: [00:22:57] Well, at least you've set yourself up for the future by putting it in a separate class. It's a little sad that it's in the same file, but at least when you make that transition over to scenes, you, you, you can call that code. Then James: [00:23:08] the thing with the app delegate is once you start building an app, there's a bunch of things in there that you like a bunch of overrides you actually need to implement. Frank: [00:23:16] Yeah. Yeah. And they're complicated. There's so many ways URLs can open your apps, especially when you adopt say, um, what am I saying? Scenes not seen kit, no seeing kits. Wonderful and glorious. Don't ever say anything bad about sinking. Okay. Well, we should move on from my diversion tangent there. Um, I don't have much else to say about power platform because I really don't know too much about it, but. Then I saw a Hanselman video and he kind of knocked it out of the park that acute little like Tik TOK opening, and then had a bunch of people, um, talking about their products in a very casual setting. I'm not doing it justice, but it was fun and entertaining. And I almost remember this from past conferences and I'm really enjoying this format where you basically have an interviewer and an interviewee. But they're doing a false casual premise, you know, like I think I've seen somewhere, they were having lunch and in this case they were practicing for the demo or like brainstorming the demo, but it was a fun, little conceit and a fun little skit. And it didn't detract from the product because you still got that wonderful dynamic of interviewer interview E and I think giving presentations. Um, there's a real difference in how you present information when you're being asked questions and answering them, or if you're just giving a presentation. And I think if you're just giving a presentation, it's much harder because you're just this talking head and people need to stay somehow engaged with you and it's your job to keep them engaged with you. Yeah. Where then interview where interviewee situation. It's a lot easier. It's a, it's a social dynamic. It keeps you interested. I'm curious what the next question is. I'm curious what the next answer will be. I'm giving this such a clinical description for what was a very enjoyable video. Please get me out of this, James. It James: [00:25:13] was an episode of Seinfeld. Frank: [00:25:15] Thank you. Yeah. With the camera work of the office. James: [00:25:19] Yeah. Oh, even better. Yeah, it was exactly. In fact, I think an office and an episode of the office is a better representation cause they knew the cameras were there. Uh, so that's even a better representation. I mean, and it was fantastic. Hanselman told me about it and I like this because either, because this is a part of a keynote, big thing. And it's like, Hey, either go all the way in or all the way out. Don't go in between. You might as well just go all the way. And, and, and this was, uh, this was cool because this, this events, I was like a little bit longer, was like two hours with multiple individuals and little key, you know, little interviews here and there. And then there was this, this big, like 30 minutes chunk Hanselman's Frank: [00:25:58] well, is that really two hours? Because of all of them, this one flew by, I actually was, I actually stayed for every presentation and it, so, wow. You got me Hanselman. James: [00:26:08] I think it was two hours. Hanselman's thing was 30 minutes of it. But before that, they had Scott Guthrie, after that they had re rejection and they had, um, Kevin Scott on anything after that. So they, a lot of people in this, in this one, mega and animated, like shows and cyber shows and all those things. And it was, it was so well done. There was so many people I loved. It blended all the different technologies was talking about tech intensity and developer velocity and all the products, but it blended in and all the things that we knew we knew about right. They talked about visual studio, 2022. It talked about how reload it talked about WSL. They did a cool demo where they debugged, um, a website on windows. Into the edge Linux version, running on Ws algae, which we just talked about and debug that from windows, visual studio, like so cool. Right. Then they showed a really cool demo of code spaces. And, uh, specifically there were a debugging, a website. And they shared a there in their dev code space online, which is like a private dev container thing. We'll talk about dev containers where you go into that a little bit later, but they talked about this and then there was a, uh, you could run everything local and they would forward the ports, but there was a share link. So like you could share it with someone so they could see it and like, it, it, somehow it created an Azure. I have no idea what it did, but I thought, well, that was really cool. So it blended all these things together and I thought that was a cool way of showing. The, as a developer, there's a lot of things that we care about that we know that you care about and you can do all these things. Uh, and it, it, there was a cohesive story Frank: [00:27:55] in there somewhere. Yeah, there was, but you, you got me a little confused, but, um, no, I actually, I think I'm kind of queer, uh, code spaces is like a get hub feature and that's slightly different from like vs code live, right? Like live editing, but I assume they're kind of built on the same technology or something, but there are just a way to collaborate on programming. Am I right? James: [00:28:21] Yeah. So there's three things that we're thinking about live share. That's just me and you collaborating a code together. Okay. Okay. Got it. Code spaces. That's a good hub thing, which is like RBS code in the browser. And then there's, is that Frank: [00:28:33] an beta right now? Because I haven't figured out how to turn that on. It's like a James: [00:28:38] preview preview thing. Yeah, yeah. But then, then there's something called, like dev containers. Frank: [00:28:44] Oh, well, this I know about this. I'm going to go on a tangent on this. This is kind of fun. Um, I run phuket.org and I have a wonderful community of developers who contribute to it. And there was a PR sitting there called I'm adding dev containers to Phuket, and I'm like, yeah. Oh, okay. I don't know what these are, but I looked at their code and it wasn't, you know, touching anything important. It wasn't breaking anything. So I'm like, you know what? I'm just going to take this. I have absolutely no idea what you are talking about. Fortunately, Ms. Build explained dev containers to me and I will now relay my very shallow knowledge of them to you go for it. Um, dev containers is simply, I want to do my development inside of a Docker container because I want to, uh, nail down the environment that I want to be in. I want to have exact versions of runtimes and SDKs and software and even operating systems because you can, you know, put in all sorts of different kernels into your Docker. And so what a dev container is, is a combination of Docker files or just one Docker file where you. Create your dev environment and then a little Jason config thing, you know, just telling you silly stuff about all that. The neat thing is if you throw those two files and to adopt dev container and to your project, when you open your project in vs code, it'll pop up a little thing, being like, Hey, Hey, do you want to switch over to developing inside the dev container instead? And through some magic of. Docker and port-forwarding, I don't know how any of this works. I mean, just, it blows my little operating system mind and, um, somehow through all that magic, uh, they spin up, uh, all the necessary Dockers. They need to do that. They set up the communication channel vs code flickers away, flickers back. All of a sudden says I'm running inside a container and it look at me and it does all the mappings back to your source code. So even though you're editing, you're still editing your code on your machine. And what you've created is a really stable dev environment with an IDE. That reloads itself from that dev environment. It's, you know, it's things that you could do in the past. I could certainly create Docker files in the past. I could launch an environment, but then I have to remember how to map paths, how to map all that stuff. And now it's just a few clicks away and I kind of love it. It's James: [00:31:15] kind of perfect. So I just want to let you know that during that speech that you just gave, I went into Fu get on GitHub and I said open and there was a code space button, and it said, do you want to open this and code space? Because it's con it's configured with dev containers? And I said, sure, that sounds good. I just created a code space and I just deployed Phuket. Into my own browser, my own local instance, which means I can completely work on Phuket directly on the web and not ever have to clone your repo or anything. I'm running Phuket right now, directly inside of a code space. Frank: [00:31:53] Well, as a salesman of an IDE, I am totally against this, but as a technologist, this is absolutely amazing. Yeah. What is the port-forwarding when you're going through code spaces, that's even worse. I couldn't believe it was running correctly on my machine. Let alone across the internet. How does internet work? James: [00:32:12] How does the internet work? That is a great question. Frank: [00:32:17] Like, I, I, you know, imagine when we can get like some dotnet six in there, you know, you get your well dev environment for dotnet six with all the actual correct Android versions instead of the Android versions. That probably aren't correct. James is even sending me a link to what I'm sure is. A cool, awesome James: [00:32:35] code space. I just sent you a link to a code space. Um, public, are you Frank: [00:32:41] running a running instance of my web of Phuket running? So through, I don't know how many clicks to three clicks you are running a dev version of my website. That's awesome. Yeah. Kind of world that we live in. Did you pay for that? You should be paying for that? James: [00:33:00] Um, I just, I, I just said, Hey, give me the cheapest. Uh, give me the cheapest thing. And it just totally did it for me. Uh, I don't know paying for it. I don't don't know if I'm actually paying for it. I think it's in preview. I don't think you pay for it, but I'm imagining at some point you pay for it. I don't know. I have no idea. I don't know, uh, at all. Oh, and you can, I can check into source code here because oh, that's crazy. Um, I just made a change. All right. Let's see if I reload this. Hey, this is amazing because what I'm saying is this all worked and, uh, that's pretty mind boggling. Frank: [00:33:38] Um, yeah, it's, it's super cool because it's, it's. It's completing the, um, the full circle. Miss of it. My complaint with Docker was always, there's just so too many moving parts. It's still too much to set up still too much to fiddle with, but I am willing to put adjacent file in a.directory. I am willing to go that far. And once you have that writing Dr. Fox. Docker files is a little bit addictive. It's kind of fun to like get them down in size and do all that stuff. But then again, for a dev machine, you don't really care. Um, so I try to pre-install as, as much as I can. And the dev machine, for example, when you load vs code in the dev machine, it's not going to have any of that. The S codes extensions, preloaded. So. You every time you shut down that dev machine and bring it up, which is mostly done automatically, but you can still do through Docker controls and all that. Uh, it's still gonna, it's going to have to reload those extensions so you can fiddle around with the Docker file and, um, make James: [00:34:41] all that better too. You should refresh that page a changed fuca.org. Tohmatsu magna.com. Frank: [00:34:48] Did you, you were stealing my product, James: [00:34:52] sorry. Anyways. That's really cool. Frank: [00:34:54] Um, did he, did, is that enough a fork or how did you actually do that? Here's the James: [00:34:59] thing is it's in a code space and it's it's so it's, I think what it does is it creates a fork of it and then it creates my own little code space because there's a get behind it. And, and I think I could. Committed somewhere, I guess I could say show me remotes or whatever. I don't know. You know what I mean? But yeah, it's really neat and I'm already logged into my GitHub anyways. It's super duper cool. And that's the thing is see that URL it's like unique to me. So it's my own little magical thing. That's really neat. That's crazy. It works. I'm totally going to demo that all the time, probably with foo.org. So I'm going to stop it now and I'm going to stop paying for it. I don't know how to disconnect. How do I disconnect? Uh, oh, you can also just open in vs code too. Cause you can connect from vs code as well, which is cool. Um, let's talk about done Essex. It's happening, Frank. Frank: [00:35:55] Let's do it. I've finally done it, James. Uh, well, let, let me say the first big announcement that I got, and I guess if I was smart, I could put two and two together, but not at six, we'll be out ish in November. So that was the first thing that I was curious about because I think just one or two episodes ago, I was asking you, like, when am I going to have to start caring about Maui? Cause I did not know the timetable. And although dotnet six is obviously a lot more than just Maui, but, uh, it sounds like they're pretty much shipping together though, and that's all going to come out in November. So just, just dates, I think was the thing I was most curious about this time, but I can't wait to deep dive with you into it. James: [00:36:36] Yes. Um, What do you want to talk about favorite features? Maybe? What do you, what do you think? Frank: [00:36:41] Okay, well, I just got to start with, uh, this is the first version of.net core. I'm going to be mean and call it.net core just because there is a library and there still called net core. So whatever they can actually build iOS apps and Android apps. Mac apps, Mac catalyst apps. James, can you believe it? And some kind of win UI three thing that I don't fully understand, but this is the first version of dotnet that finally unifies Xamarin basically into it. And that's, what's making me so excited about dotnet six. I should have been more excited about it previously, but I could never get it to quite work on my machine. And so I wasn't getting too excited about it, but for the first time I was able to install dotnet six preview four, and. I was able to compile a Mac catalyst app on my Mac. That is a huge deal for me, James, because I spent weeks, uh, suffering to build my first Mac catalyst apps months ago. And that was all such painful stuff. It's so nice to have it baked into a legit. Okay. From a fortune 500 company. Yeah. So that's Matt catalyst, baby Mack catalyst. James: [00:38:02] That's happening? Yeah, this, this me was also extending, it was the first release in which visual studio and windows you could see and use the single project support and Donna Maui, which was exciting too. Frank: [00:38:13] Oh, okay. But let's talk about multi projects. So the very first thing I had to set up was okay. Could I create a core project, which was just net six. Could I create then a UI layer that was multi targeted. So I want, um, iOS and Mac catalyst. Cause that's how I want my app to roll. And I want my thought is I want to break my app generally into these two layers. I have the kind of super cross platform layer and then the light less, the cross platform layer, the UI layer. And the really cool thing is you can say target frameworks. Plural in there and was a, semi-colon say net 6.0, hyphen iOS and net 6.0 hyphen Matt catalyst. You can do net six O hyphen Mac. Uh, what's the windows one. Okay. James: [00:39:01] So right now in windows, uh, there, so I also went to the windows session. It was also very good, talked a lot about project reunion and how things were coming together. And there's right now, when you create the project. This is still early as pre-vis for. So there's some magic bill craziness happening that will go no way. But right now, when you create it, a project with Donna and Maui, you'll get three projects. You'll get the just Maui project. And then you get two windows projects and one project it's, it's also crazy. What it says is it says, include everything from that. Single project up there as a link, and then there's a packaging project. So, um, project re project reunion windows, when you, I three applications, um, they have a packaging project and that's actually what you debug, which is kind of interesting and weird, but it packages up into this thing that you can distribute. So right now there's three, but they're working with that team to make it just part of it. So it'll be in a dropdown that says, oh, just the plan windows and then done. So, and that would be probably. Probably, I don't know what the, they call it, their column, um, TFS, which are target framework monikers. Um, uh, if you need to know those, but I'd probably be, I'm assuming it's like a windows dash, something who knows. Frank: [00:40:24] Yeah. And there's a dash and droid, I think I'm saying, yeah, they didn't shorten it. I hope James: [00:40:32] it's Android. Yeah. Frank: [00:40:33] Yeah. So this, this, uh, multi target dream from one project has been a dream for a long time. So I set up this core project that was done at six. So that's going to be like my model classes. Then I set up the UI project, which in my case, I'm just going to focus on iOS and Mac catalysts. But of course you could do Maui and include all that stuff in there so that I have that multi targeting. And then, uh, I can either. Multitask what that to be the app, or I can create different apps to be the different front ends for my different apps, separate projects. So I haven't decided myself, whether I really want the app app app to be. Altogether in one project, because that gets a little bit weird for some operating systems. You want to include this stuff for others, others, but I probably will just because you can do conditional things and, uh, your project files and say, if I'm targeting Mac, do this, if I'm targeting iOS, do that and using all the standard Ms. Build stuff. Yeah. Guess what I did, all of that, James, all of that without one shared code project. And I even had pound defines all over because of course I had to test that, but that's our favorite use of shared code projects, but, you know, um, Continuous, you worked on bits of continuous. I had shared code projects all over that thing and they are the worst. I hate them so much. The IDs don't like them. I don't like them. Nobody likes them. And I am so looking forward to. Slowly, but surely converting all my apps over to this fantastic multiprocessing multi project targeting framework, future. James: [00:42:19] It's a, it is a beautiful world. Uh, Claire Nevani. She did, uh, an amazing job with the Ms build extension stuff that I use in all of my plugins. And it's nice to see this. You know, the, the unification down at six to say everything uses this thing, everything that's been done essay cause this all works with. Right. Um, and there's interoperability between the different platforms and everything has the same features too, you know, as far as some of those new core fundamental piece. So for example, if you're running Donna six, everything, everything Frank has hot. Reload, including code hot reload. C-sharp hot reload. And I'm imagining it worked with F sharp. I don't know, a hundred percent and it's easy after demos, but I'm imagining if it's a down at project it's going to run and these demos were really cool. Cause you'd expect some simple count plus plus, you know, change that to count plus equals two, right? None or no? Yeah. Uh, Abel showed off a Minecraft cloned game, changing all of the orientation in real time. Like do that, hit a button code in changes in seconds. Dimitri showed one, which was like particle generators and he was moving it around the screens. If you're building a game, just imagine how crazy that is. And of course it was all built into. Uh, Donna and Maui and also blazer, uh, which is really cool. And in some project types, you don't even need to be debugging. You can just, you know, it'll just like do a file wash craziness, injection thing. I don't know how it works. Magic is what I'm saying. It's really cool. So it's nice to see it. And like, that was the promise, like on this side, and then I think it was like hot reload. Everywhere. Every everybody gets it. Everybody, you get high real and you get, everybody gets hot reload. Yeah. You know, and I think that's a, me as a, as a, as an advocate and someone that's out teaching all the time, no matter who's teaching anything.net related. You're it's one part of the right. It's one thing. It's one at six library that can be shared. There were no more, no more standards. No more pickles, no more hacking the CS proj. No more. It feels good. That's what I'm saying, Frank. It feels good. Frank: [00:44:43] You know, I, I was already starting to convert some of my apps to, uh, Matt 5.0, just because it was cleaning up, like a lot of it and you get dependencies and it's a little bit viral, you know, I started switching one thing and then you switched the other project. You switched your project, but thank goodness. Um, I started to do this because I'm going to push onto this net six bandwagon, pretty much as fast as I can. Um, Not just for the hot railroad, but oh my goodness. Hashtag finally, I've been working on, um, hot reload hacky solutions, my whole career, because it's all I've ever wanted. And so I can't understate my excitement enough. So I'm going to understate it completely here and just say, I'm very excited for hot reload, but please hear me. I've been working my whole career because I want this one feature. So I'm very excited for that. You said unification. Which actually, so James, imagine you're me and I just did.net new Mac catalyst. It just blew my mind right there. Gotten that build. Yeah. And I don't think.net run work. I don't remember, but I, I went and found the app and I double clicked the app and it ran. What w what do you think the next thing I thought about was done and publish. Nah. Nah, can I do this with F sharp? Oh, that's the unification because in the dark old past, we have this many to many problem in.net. You have many front-end languages. We have many runtimes, we have many output formats and it's just, the combinations are bewildering. And it used to be in the past that you basically had to hand code the build files for each one of the ways you can direct yourself through that graph. Hm, the great thing about.net six is it's unifying so much stuff. So the first thing I had to ask myself, can any of this work with F sharp or are we still in that battled world where, you know, as sharp as a, a secondary citizen, the good news I'm going to cut straight to the chase here is F sharp worked. Oh, I didn't, I didn't, no, I didn't. I didn't know either. I was stressing out, man. I didn't know because the first thing I tried was.net new Mac catalyst, uh, dash Lang F sharp. And it says, ha no, no, there is no such template, but fortunately I've been programming UI kit for a lot of years. And I typically tapped out. Actually I had to go look it up online. I can never remember how to do somethings. Um, because you never write an app delegate. We were talking about it. Don't write app delegates it's bad, but I wrote out the app delegate by hand, I copied over an info P list file. It ended up being a very simple project file, nothing complicated. There just happened to not be a template. Once I got all that stuff in.net, build bingo. Bingo. I got myself an F sharp Mac catalyst app. No hacks needed. Just had to write out all of the code myself because there was no template included, but that was very reassuring, right? There are a million different scenarios in which that wouldn't work or conditions for that wouldn't work. And I don't know if anyone was actually testing that scenario if you were thank you. But if not good engineering, that that scenario worked. That's James: [00:48:03] true. That's true. Oh, that's really cool. I'm glad to hear that. Uh, anyways, I'm super excited for Donna six down at mountain. Also. I want to say this, a lot of questions about web stuff. We've talked about, you know, we're a little bit in the past, uh, you know, blazer and specifically hybrid applications with blazer, they're called blazer, desktop and blazer mobile apps. Yeah. And those are. Um, literally templates that are called.net Maui blazer. And what that does is it gives you a blazer UI that you can use for some, or all are part of your dotnet Maui application. And of course you can then, um, use your razor and your blazer. App logic and your UI on the web too. So if you're a web developer and you're looking to go that route, right, that's one of the routes that, that is the route to get to the web and to mobile is if you're a web dev the other way around, not, not quite there yet, um, of, of doing that, but that makes a lot of, a lot of sense in a ways, because a lot of web can be optimized for mobile and not necessarily the other way around. Um, but. It was exciting to see even blazer and Don and Maui get a little bit more unified too. In at least the cooperation between the two of them. That was Frank: [00:49:17] really neat. Yeah. I just saw that, that, that was really interesting. It looks like there's basically a laser control that you can just put into any Maui app. Yeah. Okay. So yeah. I mean, why not? Yeah. James: [00:49:31] Is it called a blazer web view and yeah. You just drop it in whatever you want, which is, so that means, you know, if you have like a really cool blazer site or you have a really cool blazer component, you like, or you've seen something cool. And you're just like, I can recreate this in XAML or like, It just made that blazer view and it was like, boom done, right? Like done. You're done. You're perfect. Frank: [00:49:50] I mean, it's just a, it's a better electron app is what it is because you're getting the native Maui world, which will give you access to all the API APIs on the platform very easily, because that's, what's, everyone's really good at. So you, you kind of get best of both worlds there. You can do all your UI and HTML and razor. If you love that. And then you can, uh, get that good old camera. I don't know. I'm trying to, what do you think most web developers don't they have access to the camera, James: [00:50:21] push Frank: [00:50:21] notifications. I don't know. Something like that. All that, all of that stuff. I mean, just the sensors alone and background James: [00:50:28] seeing sensors, you know, you know, you could, yeah, you could, you could. Well, the one thing that was okay, here's one thing that's kind of neat is. Is, uh, there was a demo I saw this was from Don e-com windows, but Dan Roth and some opensource, other people did it too. They used a 3d JavaScript library, like 3d dot JS or something like that. And they use that inside of a dotnet Maui blazer app, which means. Hey, listen, there's a bunch of amazing JavaScript libraries that can also run really fast on these devices. Now they're not going to be, they're not going to be, you know, seen kit. Right. But they are going to be a 3d cross-platform library that you can add into your application. Cross-platform and that's also really, really cool. Frank: [00:51:17] Yeah. I know a lot of people that are web developers and they want to make apps too. And this is just pretty much a perfect solution right there. Yeah. James: [00:51:27] All right. Adding up to 51 minutes and I'm super hungry. So what are other things, Frank, anything else.net or other things that build that you want to tap into? Frank: [00:51:37] Oh, oh, I don't know. I, I I'll bring up one though. I don't fully understand it, but I'm just going to give you the headline PI torch. Enterprise is and what I, what I hope it means because what I can do as a small person is I can create these little pie, torch models and very slowly train them on my very slow video card that I happen to have at home. What I would love to be able to do is train the bigger machines, but even when it's trained, I need to have servers that actually execute these models. And what I believe, please. I hope I'm not getting this totally wrong is Microsoft's giving you an easy way to host, uh, all your code. Uh, specifically for enterprises where you don't necessarily want to host it on the public internet, but you do want other people to be able to access it. So it has all the permissions and things to make data at work. And all of that, what I see it as is basically just the next step in getting AI into the enterprise, because that's always a really hard part about who's controlling the data. And all that stuff and it looks like Microsoft's making good inroads there. It doesn't totally apply to me. I just like to see it from an industrial person active of cool. The stuff is maturing. Yeah. And I guess this James: [00:52:57] is a Facebook and Microsoft Frank: [00:52:59] collaboration or something. Uh, yeah. Facebook runs PI torch, so I'm sure they were involved. Yeah. Okay. James: [00:53:05] Here's the thing I want to talk about in one of my beds. I give you, in case you have another one, which is cosmos DB getting even freer tier. Okay. So this means that the new offering. Is 1000 are use requests units per second. Right? That's a lot. If you're doing stuff before, it was 400, I think, with a throughput of 25 gigabytes per month free. And they released a cosmos DB emulator that works on Linux and Mac. And if you run it locally, It doesn't doesn't use any credits or anything like that. Like it all just works. So you can test everything locally, a hundred percent, which is cool. So that's kind Frank: [00:53:51] of cool. That's really cool because I'm a slow developer. And I w I would definitely write that infinite loop that did inserts into the cosmos DB. So that is very useful. I almost made the joke doesn't run in dev containers, but you know what it probably does probably, probably, uh, that's a cool one and that affects you because I remember we did a whole episode on, uh, how much like reads and writes were costing you for your apps. Yeah. James: [00:54:19] Yeah. So it'd be cool. What else you got Frank? Frank: [00:54:22] Oh, oh, I don't know. I think I'm going to wrap up. It's been 54 minutes. I got my cool, uh, I just feel, say one more thing. They were also heavily, I mentioned it before, but collaborative apps, right? That, that was one of the others. It was tech, tech, intensity developer velocity and collaborative apps. And I'll say I myself am not doing too much. There, but I always thought we would be the perfect thing for creating collaborative apps. Right. And I just like to see, uh, uh, you know, collaborative apps with web apps. What we're trying to do is have collaborative, all apps, all apps be collaborative things. And I think that that's also just a good turn for the industry. You know, just a good maturity level that we're reaching. James: [00:55:08] Yeah, I agree. I agree. Well, let us know what your favorite features or favorite sessions are from getting tired. Uh, Microsoft bill 2021, and also what you're looking forward to with WWDC, which is right around the corner. Frank, can you believe it is so two weeks away? That's crazy. Frank: [00:55:25] Uh, I can't believe that I didn't even mention, uh, vs 20, 22. Yeah, we have, we have an official name, a new vs who doesn't love a new vs. It's three bigger and 64 bits. James: [00:55:38] So yeah, I'm excited. Frank: [00:55:40] I'm sorry. Did you think a demo where they loaded a project that had like 350,000 files in it? I was like, who is making that project. Okay. Bless her soul. If you have to work on a code base. I think I would James: [00:55:53] imagine that that was a real world example, too. I'm not positive, but I have to assume, I don't know. Or else I am not envious of the person that had to create that project. Frank: [00:56:04] Um, yeah, it was like a thousand projects too in the semester. Too much. Okay. Enough, it can load it faster now vs 2020 to get it twice as bad. James: [00:56:15] Um, all right, well, that's going to do it for this week's emerge conflict. Thanks everyone for hanging out with us all. Afternoon here on your walk and your car, wherever you're at in the world. We appreciate it. And of course you can check out merge conflict and all the place to find us a merge conflict of there's also a discord button. You can hang out. There's some notifications when new things drop and there's also a Patriot button reveal. I'm a Patrion that's right. You can help support the show and make it happen. And also you get all of the podcasts early and. Every week, you'd have an exclusive 10 minute ish podcasts with me and Frank, as we ramble about shenanigans, but that's gonna do it for this week's podcast. So until next time, I'm James Monza Magno, Frank: [00:56:59] and I'm Frank Krueger. Thanks for this.