 It's the .NET community roundup with Scott Hanselman and John Galloway. Hello guys! Hello! Hey. Yeah, wow. I'm afraid to push any buttons now. I know. Good job. I pour a poured. It's all good. Well, fortunately, we have just one laptop between us. Yes, we only had the budget for one laptop. We've been using most of our budget on things like apparently the folks during the .NET conf party have been getting drunk on peeps. And if you're not from America, you can learn about peeps candy. They're just a trash candy. They're not good. They're not good for you. But you can't stop eating them. Once you eat one, then you're like maybe another one would make it better. That's an addictive chemical. That's not good. Cool. So we've got a couple of different things to share with you. We've got a lot. So a community roundup is kind of like a roundup of a bunch of stuff. One thing is we've got these amazing, we've got, it's so cool watching these things. We had some added like today and yesterday. So 217 worldwide. It's great looking around the world. It was fun. We were noticing like a lot through Africa. I mean like all around the world is cool watching them pop up. We're getting a lot more .NET user groups, a lot more .NET conf local viewing parties. And we point out South America, Africa, all over Asia. We're getting a lot more folks getting involved. We want to make it as easy as possible for you to put together a user group. So there's a couple of things going on here. Of course, these are .NET conf local viewing parties, local get-togethers. But you can put together a user group. We've set up the .NET foundation paperwork here for you to make your own user group, right? Yeah, yeah. So this, we've got these .NET meetups. And then meetup has this thing with a whole meetup pro. What's cool with that is it's an organization where you can join that, we'll pay your fees. And then also we can send messages out to all the meetups. And we can say, hey, we got this thing coming up. We've got .NET conf local. You want in, fill out this little form and we'll send you swag. So we sent all these hundreds of events worldwide. We sent them stuff around the world, which is pretty neat. So this is, I mean, this is, we're up to 62 countries now. Almost a quarter of a million members. So if there is not a meetup near you, why not make one, right? A meetup doesn't have to be 300 people that meets every week, right? It could be a couple of dozen people that meet once a month. And some cool ones are ones like in a company. So, you know, it's just, you work in a dev shop and maybe there's, you know, 50 devs or whatever, start a meetup there, you know? So yeah, there's a link over here on the side where it says add .NET meetup. Or you can just ping me or ping .NET foundation on Twitter and we'll get you out of it. And there's a lot of value in this. You hear people saying, well, maybe this is a good opportunity for you to become a technical speaker. In fact, I think it's actually a really good opportunity to learn because when you can speak about a topic, you actually learn more about it because you prepare for the talk. So to your point about giving presentations to your local and or your internal company, having a brown bag and just presenting on what you're doing is a great opportunity to kind of flex that muscle inside of you about how to explain a topic clearly, how to build a story arc. Yeah. It makes you a better engineer. Absolutely. I mean, that's how I got started with technology and presentations was going to my local user group, watching some and then signing up for a little 10-minute lightning talk and my machine crashed and I got through it and then I just kept practicing, you know? And that, I mean, it's really fun to, and then, you know, to be able to, once we've got these local events, to be able to do cool stuff like this. Yeah, so definitely reach out. If there's anything that any of us can do at the .NETConf hashtag, at the foundation, at Microsoft to get you started with a user group, whether it be an internal or an external one, you let us know and we'll do the best we can to support you. And one thing that we do as part of that is we have this presentations in a box thing. So you'll see today we've been, as the speakers leave after they finish their presentation because you know presentation, they're updating their stuff right up to the last minute, right? So we've been dropping them all in here. They're .NETConf 2019. These are all the ones from there. We also have some workshops and you can see like the ASP.NET Core for Beginners was updated today. All of these, the Blazer and the ASP.NET Core app workshop have updates for .NET Core 3 on different branches. So those are actively updated by the product teams. And when we say presentations in a box, we're literally saying here it is, ready to go. You could go and present a full week on ASP.NET and structure that week however you wanted to do it. You could do this in an afternoon. It just depends on how you want to stress that out. If you're a university professor or if you're teaching, you can certainly go in and put this into your curriculum. And as far as .NETConf is concerned, if you wanted to present some of the content that we've just done in your local language, do that. Grab the slides. We'll try to give you all the slides. We'll give you all the code and all the support. And then you could go and present that to maybe to people who didn't get a chance to see .NETConf. And if people do that in their own language, like let us know and we can help like get the word out for you. Right. Now a little trick that I do is all these kinds of things, like for instance .NETConf, you've seen Blazor Talks presented by like Dan Roth. Or you've seen the keynote presented by Scott Hunter. You can grab these slides. You can watch the video and practice. And I do that. Like I'll say, hey, I'm giving a Blazor Talk. Let me see, you know what I mean? And it's great structure. It's a great place to start with. And then make it your own. You can feel free to take any of these, fork them, change them, update them. And then if you have a workshop, if you've created something, share it with us because we also put in eBooks and third-party workshops. Yep. And we have some community, some workshops like this aca.net workshop. This one, Doty, is built 250 plus. I think it's almost 300 now as PNET core samples. And he just shares those out and regularly lets us know as he updates them. This one here, this eBook here, Shahad's built this out. And this was built out of weekly blog posts. And he wrote an entire book. And he's just given it away as a PDF. And we had him on the ASP.net community stand-up to talk about it. And it's just really cool to see, you know? So we try and share out what the community is doing and these different links they make available. And one thing I want to point out as well is that just because you're maybe not an expert or you're just learning, I'm still learning, you're still learning, even though we're making the product, we're still learning. Don't feel like you can't blog or write an eBook or get involved because you don't necessarily know the topic fully. You know your experience. You know how you have found it. So blog about your feelings about it. Blog about how it, you know, this is how we implemented ASP.net in our company. And this is how our migration to.net core went down. Here's what worked. Here's what didn't. Because your story, your unique experience is worth blogging about. And if you turn it into something like an eBook, we will definitely try to get the word out about it. And some of the best learning I've done is when I blogged, here's something I think I've learned and someone says, that's pretty good, but did you know about this? And then it's like, oh, wow. I could, you know what I mean? And it's a great way to reveal ways where you can improve even more. Absolutely. So one thing, speaking to learning, this is amazing. Yeah. So this is something we've been working on very, very hard and we're very proud of this. You can actually get to this from a short URL, which is dot.net. So DOT.net slash videos. That's our short URL. And it'll redirect you here. You can also go to dot.net and click on learning. It's under videos. And what this is is a series of videos exclusively for beginners. So you have to ask yourself, what does that mean? How beginner is beginner? Are we talking about 10-year-olds? Are we talking about people with some understanding? We try to go right down the middle because we feel that there are people who are learning software in college and there are people who are learning software in boot camps. And sometimes they don't necessarily get the big picture. They'll get the full picture. So what we try to do is put together a kind of a Mr. and Mrs. Rogers neighborhood style, slow-moving, friendly, on-ramp, into dot.net. A lot of times we find ourselves speeding through File New Project, right-click deploy. Look, it worked. Okay, everybody, go, go, go. This is 101 content. I think a lot of our previous 101 content was really 201 content. Yeah. If you're not familiar with that nomenclature in universities in the U.S., of course you have first year of university, second year of university. This is very much first year. So I want you to check it out. C-Sharp 101 really just talks about the language, like literally down to the keyword. Not even thinking about dot.net. I really liked watching these, the way that you built them up in a friendly way. And it takes a conscious effort to do that, right? Because it's very easy to focus on it. Here's what I know. I want to show off this new thing. But stepping back to the level of explaining a concept and doing, now's the right time. Let's talk about what is this using thing here? What is that? So I really feel like the approach you did here was, they're fun to watch. I appreciate that. And what was great was that we partnered everybody up here. We partnered everyone up to get a different perspective on what was going on. So if I use an acronym that maybe someone doesn't know, that my partner goes and says, well, hang on, what does that mean? There were a couple of times in the dot.net one where Kendra said, well, wait, what's this mean? Or I said, hang on, let's do a whole video on Just Hello World. And we had a lot of fun. And these are, I think there's about 80 or 90 videos that we did. They're very short. You know how they say that you could make one nine-hour video or you could make 90, 10-minute videos. These are the ones that you can binge on. They're actually up on YouTube. They are also on Channel 9. So if YouTube is not available at your work or in your country, I want to make sure that we're going to, we do recognize that we will have alternative downloads for everybody as well as being able to download them all offline. So check those out. Those are our 101 videos. Dot.net slash videos. So speaking of the dot.net things that are new, we also added dot.net stand-up. So this is the ASP.net and dot.net community stand-up. We used to have it was live.asp.net. And we didn't have a good kind of central place for doing, for seeing all the different stand-ups. So we do because we've added in like Xamarin, we've added in desktop, all these, all these, because part of the advantage of dot.net is you can build all kinds of stuff with it, right? And some of these are really, really important because you get to talk to people that you don't always see. You get to talk to the actual designer. So here we've got Kathleen Dollard sitting with Emo. And they're talking about, you know, the language and the runtime and the low-level stuff. So whatever topic you're into, whether it be building a web framework and the ASP.net stand-up or doing Xamarin and making a mobile application or some of the internal details about actually designing the next version of C-Sharp, we've got the stand-up for you. These are the real people that are actually doing the work which is really, really cool. Part of this too is we added support in here for these community links. So we're using the URL list which Burke and Cecil built. And so this is a way where we can go in and share out because we want to show off things the community is building. And as part of that, we list all these links here so that you can go and get them. So we don't want just the links to fly by in the video and you say, that's neat. We actually want you to go and subscribe to the blogs or, you know, learn more, try out the code. And if you're doing something cool, send me a tweet, send John a tweet, send anyone on the team a tweet. We'll collect those. And if we feel that it's interesting and of general interest, we'll share it on the stand-up and we'll continue to promote your content or your project or whatever it is that you're working on and you're excited about. Small little shout-out too. This is actually for people that were watching, James Montemagno and I were building this live streamed on Twitch over the past several months. And so we built this prototype out and it actually ended up this, we were able to transfer this over to the team. So that was fun. Cool. So, yep. Cool. All right. Well, so just along with .NET Foundation stuff, we've talked about it. We mentioned some, we had some announcements. Today we talked about AWS joining as a corporate sponsor. We also talked about this maturity model. And it's kind of involved. There's some blog posts and some docs and stuff. So you can go read through it. But the best thing is if you want to get more involved in how the .NET Foundation works, in new policies, programs and stuff we're building out, you can go and check out on the .NET Foundation website and click on Memberships. And is it hard to be a member? Do I need to pay lots of money? And this is something where I think I haven't communicated as well. If I don't have a credit card, like $1,000. First of all, as you join, you have an opportunity to pay dues. And the default amount is $100. Are you paying Microsoft to dues? No, no. Okay, so Microsoft does not touch this money. It goes directly. The .NET Foundation is a separate nonprofit. So it's a nonprofit. This is not money that Microsoft gets to use for stuff. Not at all. So it goes to things like sponsoring projects. We have some set aside. We're looking at doing things like sponsoring local events and stuff in the future. So this is money that's actually available to the board of directors, which is community elected. One of those out of seven is Microsoft. The rest are community elected. So you can pay dues, you said, but you don't. You don't have to. For a student, you don't have to. Student, you don't have to. If you are just somebody and you're applying, you're like, I'm not sure about this. I don't know if I want to apply because I don't want to pay any money or I'm a little tight this week or whatever it is. Don't pay any or pay $5. Like it's a sliding. And nobody will look at it. So you go through. And no one will see it. Nobody will see it. So basically, if you go and you say, $10 is what I'm able to pay, then it checks off the thing. And the next screen that says, hey, did you look at the dues? That goes away forever. Nice. Or if you say opt out, it says, great. You've seen it. We're done. And what do you get from membership? What is being a member of the Foundation? So some of the main things are, you can vote in the elections. We have annual elections. So that is, I mean, the board of directors runs the .NET Foundation. That is, they are in charge. They say exactly what happens, what projects join, what we're going to focus on, what we do. Also, so you can both vote in and run for the elections. Another thing is we have these action groups. And this is a way that you can become involved in things. So say you're interested in outreach and you would like to see more diversity in .NET ecosystem. We have an outreach group led by Sarah Chips. And they're actively working on things. What do we want to focus on? How can we get more people involved? So, and then there's other ones. There's this technical steering group. There's outreach ones. There could be something around education. If there's one that doesn't exist that you wanted to potentially propose and run, we could create one. Absolutely. Yep. So there we go. I need to make sure at the end of this we talk about the virtual attendee parties. But did you want to? So there's a bunch of stuff going on. I wanted to point a couple of things. That may I take your laptop over here and move it a little bit closer to me? Just don't brush the protective layer of dust off of the keyboard. It is just a filthy, filthy laptop. One of the things that I mentioned a little bit I just wanted to talk about was that was super fun. Because I casually mentioned it during one of the Q&A was I took this application. It was a PlayStation emulator. Someone had basically asked the question, I don't know if .NET is fast enough or whatever enough to emulate another computer. And this very nice student went and created a emulator in C-Sharp. And it's up at GitHub and you can go and check it out. It's called Project PSX. And what I thought was interesting about it was not just that .NET could go and emulate something like this. It was very, very fast. But I opened it up into Visual Studio Community and it's important to remember that Visual Studio Community is free. Free. Yep. That's free for open source. Free for students. Free for small businesses. Those are certain sides. Check out the license. And I wanted to convert this from .NET 4.7.2 so Windows specific .NET over to .NET Core using WinForms. Right? Because .NET Core you can now swap .NET out from underneath WinForms put .NET Core underneath and see if I could get more perf. Yeah. Well because you've got a different runtime. You know .NET Core is almost like a brain transplant. It's like yeah it's on the outside it's the same thing but the brain is all set and like super smart. And it brought up a lot of really interesting questions. So first because .NET Core 3 now supports WinForms you might think to yourself well maybe that means it's going to be a lot larger. Well WinForms is a new get package so it's optional right. It's not necessarily going to come along for the ride unless you want it to be. So all I did was make a new project, dragged all of these over into the new project, then fixed up the references and immediately got the thing running. It took about 20 minutes. Now everyone's different but it shows that this particular individual's code was extremely clean. They were just using file streams and binary readers to open up the different things that they wanted to open up. Again this is all just an educational thing. You know certainly if you're going to be doing anything with an emulator make sure that you own licenses to all the things you want to use. But it's really really interesting that folks are going and doing this work. When I put it on .NET Core it was about 30% faster. 30% more. For like basically 20 minutes of work. Yeah for basically 20 minutes of work. That's just one fun example but there's a bunch of examples. You know there's so much stuff that doesn't even get talked about but with .NET Core all the work that goes into optimizing the low level internals like string performance and hardware intrinsics and that kind of stuff. Span of tea. All those things and so it's like you can just by moving to the newer versions all of a sudden your code runs way faster. It's like for free. And that brings up a really important point that there's lots of different things about what does it mean to be fast right? Is it to start up fast? Well there's things that you can do you know to make sure that your code starts fast. Is it steady state speed? Do you want your code to be really really small? We try to make it so .NET Core is as flexible as possible to fit the scenarios that you want whether it be on a Raspberry Pi or with some of our community projects like Wilderness Labs on a microcontroller or whether it be on an Android device or an iPhone. You know it's everywhere you want to be. Speaking of which I think there is an update on the schedule and you're going to be showing off Wilderness Labs tomorrow morning? Yeah so tomorrow at 7.30 towards the end of the evening on Twitch I've got a brand new beta of Wilderness Labs Wilderness Labs Meadow. They got their beta 3 and this is a really really interesting connected things platform again not associated with us just from the community. But it's .NET. It is running .NET so what it does if you're familiar with there you go it's the full .NET standard on a microcontroller not on a microprocessor it's not a full computer it is a kind of like a single task device it's real IoT so instead of a Raspberry Pi which runs a full version of Raspbian or a full version of Windows 10 this is just going to run your library integrates with your cloud however you want it to integrate with and they gave me one of these here it is looks kind of like that and I'm going to try to get some some hello and it's very early days I got beta 3 but it's got a lovely deployment experience you just plug it in over USB you hit f5 it deploys and you're basically flashing the firmware of the device and it basically boots into .NET while it's doing that compilation upfront using mono so you can do something like this say a temperature sensor go and look at a threshold for that and then look a nice .NET event temperature change with a anonymous lambda there and you go and say all right when the temperature changes update the LCD and tell me the temperature so what's exciting about that is that for everyone who's watching this right now and you say oh I'm a C sharp developer and I do wind forms or I'm a C sharp developer and I do you know MVC you just became an embedded systems developer yeah or if you watch Shane Boyer's thing you just became a Kubernetes developer right ML developer or game developer exactly that's what I think so exciting about .NET right now is that we're all being able to take our existing knowledge and our existing experience so if you learn C sharp today you learn .NET today you learn some of these great languages and great libraries you can go and apply that anywhere from 64k to 64 I don't know terabytes you know one other thing we mentioned talking about was the try .NET and that kind of learn experience did you want to show some of that yeah so try .NET is interesting and I just you know when I google with Bing for stuff I just put Hanselman after all the time it just makes it easier to find what you want so try .NET global tool is this thing that powers the documentation as you go around to docs.microsoft.com and you can go and get this global tool and check it out it's really really cool in fact you can just go and say .NET tool install and install try .NET and then you can say in fact .NET try demo which is pretty cool that allows you to run basically interactive documentation it'll say local host and you'll have your own docs locally writing .NET in the browser that's a key thing I think a lot of people have seen try .NET in the browser in the docs and they're like okay that's a need you know Microsoft runs it or whatever but it's are not aware that you can actually run it like locally on your own machine it can work with with a gist or whatever and exactly and what's exciting about it is that once you've got .NET in your machine you've done your restores and you've got all the new packages that you need you can go to airplane mode you can take it home where you might have slow internet or no internet and potentially run your workshop on your off a USB key the other thing that's really cool about it if you just go to .NET and you hit getting started you can see of course we've got our video series on the side there and you say all right let's go try .NET in your browser see where it says code editor is loading on the right hand side there that is try .NET that's going to show up look and now I can go and say hello John hit run code and it shows up down here and it is try .NET that is allowing it to happen there my daughter is taking a computer class right now and she was struggling with you know reading definitions in a book and it wasn't really clicking and I just went directly to this and showed her some of this stuff and I'm like look here this is a constant this is it you know what I mean it's like oh it's like interactive you can totally see it now some of you might be saying well is that running blazer is that running in it it really depends on the scenario right and that's the great thing about both blazer and things like try .NET is that in some instances you can go and compile that and run that entirely with web assembly and in other instances if you were going to do something that required more power you can go and do that on the server and remote the results I love that about blazer right you've got both those options you've definitely got a lot of choices so I want to make sure that people all do that and also if we go over to docs.microsoft.com which we really can't say enough nice things about docs has just really come into its own in the last few years just people used to joke about how the docs were accurate but not helpful you know and now it's like this is the first place to go so if they go over there and they go and click on learn C-sharp they can go and see this introduction to C-sharp and we'll actually walk them through hello world numbers branches and loops all of that will be done in the browser now here's the fun part and here's where we get into the inception part of things right if I go in here and I say let's learn about numbers and floating point and things like that this tutorial is in fact the same tutorial that we run through so if you love that see so go to C-sharp 101 go to .NET Core 101 and we'll walk through them with you interactively and learn along with you that's the best I love it I love that because it's like hey I can do this and then if I want to read more it's in the docs yep and it's not just 101 for C-sharp and .NET I want to point out we've got .NET Core versus the .NET Framework what do you want to choose what about Xamarin 101 this isn't one video these are video series there's a hundred videos there 85 videos some huge number of videos the number keeps going the number I'm going to just raise the number every time I see it right here's Intro to Visual Studio there's five videos Intro to Containers and Docker with Shane and Lisa Machine Learning lots of those what do we got here like eight videos on Machine Learning I'm going to just raise the number there's a thousand videos here available there's CAM on Indie Framework there's Bridget on a PAT .NET for Apache Spark and we're going to have even more videos coming soon as well so all of this free please check it out good stuff indeed so as we wrap up I think what's this party what are we doing yeah so there was a party there is a code party so you can follow the first I got to find I've got a tab here for it so I've got a tab for everything there are virtual attendee parties today and tomorrow so you follow on Twitter the .NET Conf hashtag you can watch live on Twitch the cool thing is there's there's a cool puzzles there's trivia and you can win big stuff including like Xboxes and stuff you're also interacting live there's I think there's some product team people on there like taking questions and stuff and they are doing a like prizes and then I want to point out again we talked about this a little bit today the technical treasure hunt all this at .NET Conf .NET slash party this technical treasure hunt it's a scavenger hunt all over the internet yeah and some of it will require you to actually run some code this was fun we've been planning this stuff for months for for .NET Conf and it was so fun like talking to the to the folks as they're like coming up with these and everybody who completes all the challenges gets a certificate to the .NET Foundation store and uh folks who who can potentially win I think there's a couple of Xboxes we talked about and lots of different swag and cool stuff check out the clues at the bottom there's links to all of the different friends and sponsors that are involved in the Treasure Hunt Twilio Telleric, Preemptive, Mobilize, Lead Tools, Nostis, DocuSign, Dockerly, DevExpress, Contra Security all of our friends and partners trying to make things fun during this virtual attendee party where they're again they're back in the back yeah and they're eating a lot of candy and drinking soda pop that's true so I'm talking about the party folks like I'm talking about my kids they're up there in soda pop what are they doing they shouldn't be doing but before we do that why don't we actually take our friend Brian here to we're gonna head out and see some of the other folks because it's not just two people in front of the the camera here it's a cast of thousands that are involved so why don't you join us my friend and we'll go and see our folks out here and hope that they're ready for us because we're coming out the door yeah this is our friends here in building 25 a channel nine I'm glad Seth opened the door for me because I would have pushed on it you knew that my friends look at all these people and the big panning bunch up everyone's just checking email look look happier what are you doing hey there's snacks there's no diabetes stuff that's not inclusive oh there's Tim Tam's though I don't know about those cupcakes I just realized that there were Tim Tam's I need to do a Tim Tam we have straws I'm gonna get a Tim Tam because you got to do the Tim Tam slam you got that thank you sir I appreciate that so we're gonna head over to the party we're going to show you this party on Beth tell us where to go come on back here come on this way coming in to the studio see are you drunk on peeps it's peeps it's Jeff Fitz hello hello welcome it's about time oh my gosh we've been here getting ready watching all the fun out in the other room we're gonna have so much fun we've got we've got trivia we've got interviews we've got more of the treasure hunt we got 40 prizes like they did right and we've got good I'm gonna I'm gonna wrap it up and give it to you Jeff it's all you baby here we go