Evolution of Blazor; A talk with Steve Sanderson and David Fowler: Carl Franklin's Blazor Train ep 5

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi I'm Carl Franklin on this episode of blazer train I talked to none other than Steve Sanderson and David Fowler from the Microsoft asp net team as I mentioned in episode 1 Steve started the whole blazer juggernaut in 2017 when he demonstrated C sharp running on web assembly in a browser at NDC the Norwegian developers conference in Oslo David who along with Damien Edwards brought forth signal R was in the audience that day we'll get David's reaction and talk to them both about the evolution of blazer that's all coming up right here right now on blazer train [Applause] [Music] Steve and David thank you for joining me on blazer train this morning let me start with a question for you Steve when did you first notice webassembly was a thing and when did it occur to you that you might be able to get c-sharp running on it um well my first sort of interactions with this whole space were in 2015 I think I was doing a conference talk called web development in 2020 and the premise was I was trying to predict what kind of technologies I thought would have changed the way we do web development by that time you can still find that talk online if you want to I went through a bunch of different things that I was predicting one of them was web assembly and so I was trying to demonstrate that by compiling various different languages to web assembly and I think I tried go and Swift tried c-sharp I tried C and C++ and at that time the only thing that I could make work was C in C++ just everything else had so many problems I just couldn't get it to work but I really wanted to make dotnet run inside the browser I just couldn't so I gave up on that fruit for a while and then a couple years later I was at another conference this was in Poland it was rock sharp this was in March 2017 and I had a conversation just in between sessions with one of the other speakers Chris Klug and we were talking about what web assembly and and something about that conversation just absolutely convinced me that we can do it now now is the time like the technologies have all moved on all the problems will have gone I can do it and I remember saying mr. Chris and he was just like whatever you just didn't care at all but I was really right about it so I went and started experimenting with trying to compile different donít run times to web assembly and I couldn't really make it work but then I randomly came across a mention of a another dotnet runtime that I'd never heard of before called dotnet anywhere or DNA which was written by one person called Chris bacon he's a really good person and when I found the source code for that it was just like a bunch of C files it was so simple and so that evening I had a great compile and get to web assembly and I was pretty amazed that he just worked first I loaded up here and it was like six years old wasn't it yeah it had been abandoned for a long time by that stage I get Christopher gong to work at Google and I guess he wasn't doing that stuff by then but yeah I got this hello world app compiled it loaded it into this webOS Langley runtime and it just worked first time and it was pretty astonishing for me that that could actually work so so I just thought well I guess now we need a UI framework and don't went off on that right so did it did you were the team ever consider compiling c-sharp directly to a them rather than using a CLR um yeah well in a sense that was the first thing that I considered before I even got DNA to work that's kind of the most obvious thing to do but it's very much more difficult and it's something we've considered many many times since then and and this whole area of ahead of time IOT compilation is still one of the big features that we want to bring into a future version of laser but it's it's much harder problem to solve so that prototype that talk that you did it Oslo in 2017 is really when the big the big world saw what you were doing did you show that prototype to anyone at Microsoft or your friends before you did that talk I don't think I did but it was only about a month remember between when I decided that I was going to do that and when the actual event happens we'll have much kind of opportunity or reason and it would bits like an evening's experiment thing I think I had mentioned to my manager along that I was experimenting with that but there wasn't really much of a reason to like David you're shaking your head like you were in the audience right I mean it's funny because Damian and I had a given a talk just before Steve talked and we were showing a spinet core futures and I recall kind of rambling for a bit I'm showing the very last thing they show it was basically a razor in typescript and I hadn't made that up like during the conference either okay let me throw some stuff and it's kind of random so I started showing razor and like I think hold it but I could THC ml and I was like okay this could be a thing that this could be our path to having a client-side framework and then Steve I show him afterward I think he goes just wait what can he have what could it be and I sit in the audience and I'm looking at Damien like when when did you do this this is insane my turn own my kind of thing and I just throw in the garbage because it's clean oh this thing's gonna be amazing it's like kind of like practicing the guitar and then going to see Jimi Hendrix it was fully working I mean the demos had it all working so I was just kind of like okay he can plug it I made a framework I run it and it wasn't in the browser League how is that possible it was kind of shocked I guess you're right I mean if I think the the phrase or the the action that comes to mind is this yeah and then and then after the talk we sit down as Steve is Lee and his calm tone trying to describe he'll eat like you know we can took this random thing from github on MIDI framework and then combine those two things to have this this model of notice Lee saying they're not even in my head going oh my god he's a genius [Laughter] genius Steve I know that makes you uncomfortable for people to talk so highly about you while you're sitting right here but um did you already conceptualize yeah did you already at that point conceptualized the component model and you know where this could take the whole industry and where it's gone now I mean were you actually thinking ahead that far at that point all right well yeah because I have a background in doing UI stuff and particularly client-side web UI thus kind of history I you know been doing that for a long time I spent a long time building the knockout JS framework and you know that was sort of heading into this world of component oriented programming so is it wasn't really a very like a spark of like inside either to do that it was just following on from the other direction of the industry it was a very natural thing to do yeah so how did the the whole blazer server idea come to fruition and I got to think maybe David you might have had something to do with that the signal our team because that's the sort of the magic that makes blazer server work yes so what had happened was we blazer Watson wasn't done yet right in the very beginning it was very slow and Anissa and mana was all the way there yet so we were trying to find ways to to have this rich component models still work in a web application and it turns out I've seen Steve do a couple of demos with running blazer not wasn't blazer itself separating the rendering from the actual backing diffing of the of the UI he had run it in a by working so the web burger has a background thread that isn't the rendering thread and I had seen that and then me and javi you're a different developer on the on the team we're talking about could we have that model spread across server and client cuz turns out Steve had design blazer to actually support this model from the get-go where you can have either rendering in place on the UI thread or rendering some somewhere else right so yet show electron he had shown web workers and I seem natural to pull the split across client server and then we thought okay Sigler is a pretty good type for doing that so it could be actually plum signaler at the transport between the rendering and the living and then that is history we asked Steve if it could work in Steve natural event oh sure yeah and then the rest is history so do you think the nature of web assembly and how it uses messaging to communicate with JavaScript makes that whole interaction a bit easier I mean it's alright webassembly has already separated from the UI in that way do you think that the whole architecture webassembly just sort of naturally made that split possible yeah well the fact that we're doing dotnet and not javascript means that you've you've forced to have some kind of decoupling that between the that browser API is in your application logic you can't just like mix them all together because they're two completely different languages so given that you've got that split anyway that naturally gives you something that you can use to to separate things out and so what was the initial reaction to the blaze of server I mean I when we talked to you guys on dotnet rocks Steve when we talked to you at least and you were talking about you were really focused on web assembly and then we started talking yeah I think it was jeff fretts maybe who said no no now we have blazer server you know and it was just hard to wrap your mind around because so many people equated blazer with web assembly that now we have this oh you really got to think of the component model and now we have these two hosting models so yeah I mean was that a hard message to drive home I think people have been confused about that and and even we were internally confused about that we change the name like multiple times so yeah it's a while before people have kind of internalized the idea that the component model is not the same as the runtime but it might get easier in the future because it's likely that we won't be stuck with just two hosting models forever we may have other hosting models too by the time you get a third and a fourth way of running your blazer components you'll you'll stop thinking of it as being oh it's a web assembly thing and you'll just think of the all the different ways you can run your components yeah I think the the thing that that made it sound that the minute gel for me specific was when Steve shirt running an electron oh man okay this thing actually is done at core writing on your device and there is a browser but that's in the actual rendering part but the actual component is running it on a core itself there's the wasn't here at all and I kind of may okay this actually makes sense as a model in general yeah and you also did a great thing with web window Steve and showed a blog post about that and how you can take all the goodness of electron and squeeze it down into something really small and really elegant and again mind blown what's the what what are the what's the current state of of web window and how is it gonna fit into the big picture of blazer um when web Brenda I was I think we would ideally like to consider is like a separate concept from blazer because if we if we think that the goal is to be able to do web-based UI from a dotnet application then blaze is just one of the possible ways you could do that and presumably we can make that work really well but also you could use a different web-based UI mechanism so it's kind of a separate thing but in terms of of where that is where there isn't where that's going I think this the best future for that kind of technology would be integrated into something big huh it's not enough just to have a way of doing web-based UI there'll be times where you need to do native UI rendering as well you know even if you just want to have things like OS drop-down menus at the top of your application you can't just do that with the web so probably some kind of more hybridized model that gives you both web-based rendering done native UI rendering in a single technology is likely to fit the way forwards for that so web window is a great prototype and it's got people thinking but I think the future as need so like a bigger technology background than just that one thing like Maui for example absolutely yeah so that's our product on the roadmap for net five and six that does give an a mechanism for combining native and web based rendering and we are certainly looking at integrating Blaser as one of the premier models there that's so cool do you guys feel like it like I do that this is just like it feels like Visual Basic OneNote I'm you know like like the whole world opened up I don't mean that particular but I remember I remember how I felt when I saw Visual Basic and how hard it was to write Windows apps before that and and it's sort of that's sort of the same feeling I'm getting right now is that you've just simplified so many things about web development with the blazer component model and then all the stuff that you guys are doing the tack on the back end it's it's just amazing so it's funny some some history when when Steve joined the intent team again in his second stint after working on the azure portal he was working on the spot framework silicon integrating reactant view and angular into a spinnaker net court and templates and even Billy got it working um they're very popular it was still always very hard for us to drop the the 10 tool change required to actually made the ant ant work and actually it's really it's been at core we have shipped deprecated tool change in the boss because during the timeframe of developing the product dump went like Gump was gone I stole his Bower and then was webpack hungry basically fighting an infinite chance and if we change tool chain and we all knew it was painful but we all kind of didn't have a good solution and I recall Steve and Dan better off looking really hard to try and figure out how to get C sharp in the browser again and dad was actually trend like looking at Scripture and see everything we built in the last 20 years a mystery of trying to run C sharp in the browser to understand what it took to get back there and I think what want Steve should Blizzard that was like oh my gosh we have a new path to actually help your customers um B doesn't begin because it you really do spend a ton of time with a tool chain to even integrate like react or or angular or view sadhana back end and it was kind of handful even though people kind of like make it work it is very painful a bit of time a set go away again I think yeah I Steve it's pretty obvious that you took all the lessons learned from knockout and then of course you know your experience and using your own tool knockout to build out the azure portal you know there must have been things going through your mind like oh this could be done better Oh Mike this why am I having to do this again like I can I can sort of feel that that would happen yeah I sometimes feel like life is on a loop where we keep reinventing solutions to the same problems over and over but hopefully we do it slightly better each time yeah yeah yeah well it's pretty obvious just because of how clean and elegant and beautiful and I'll use that word over and over again how beautiful the component model is just dealing with binding to events and binding in general I mean all the things that took so much ceremony in other platforms I've just been so simplified and I'm trying to find situations where I would need any more than what you have offered in a hard press to find those situations cool so great job let's just take a minute or so to give some props to the other team members who've contributed and maybe talked about their contributions I think that's appropriate I think that sounds great and I'm super paranoid am gonna miss someone out here but I will I'll try and if I miss someone it's David's far so David obviously was been involved from the beginning enlightened like making this actually a thing and I remember that David and Stephen halter made the first debugging mechanism oh yeah that was amazing low-level hackery to get a deeper they're working on this runtime that I'd never it had debugging so that was big thing Dan Roth that David mentioned is the products p.m. and he's kind of been the driving force behind making everyone believe that there's a product to build here and especially convincing management through a trillion meetings Ryan Noack has been a really big influence on Glazer he's he was responsible for basically everything in the Razer compiler tool chain everything the to do with how that stuff works he's also had a big influence on the component model and all the developer facing API is very good at API design Xavier that David also mentioned is a general kind of web and security expert who's built large parts of blazer we've also got pronounced on our team who's another general-purpose dotnet expert we built a lot of build tool chain like all of the MS build stuff and the way that we integrate with SDKs and things like that I done a lot of that stuff who else we got RJ and Taylor who've Birth done a lot of work on razor the tooling stuff Taylor created the vs code experience in the first but not the whole of the S code but you know the the razor inside the S code stuff and DEF manager attack he's kind of kept the project on track with processing all the github issues and scheduling everyone's work and so on we've got some newer team members as well we've got Sophia who just joined about a month ago she's been incredibly productive before she even joined the team she already started sending pull requests to play as she disliked figured anything out and does it which is amazing then we've got Leo who's a current intern who's figuring out how to make the getting started experience really good who have MS there there's anyone the whole team working on model to make it to make blazer Oh running donut court running on acquaintance browser is a huge deal yeah 800 K what yeah okay CLR what are you guys doing yeah there's a lot of people on our team doing that but but Larry is kind of the he keeps everything together figures out that little details about why the debugger is not working in a certain way yeah he's invaluable and yeah there are others too well thank you guys for taking time out of your busy days and Steve thank you and David sorry for interrupting your family time is pretty cool to watch it's great to see the toys in the background and the kiss okay thank you guys both it's been very great a cute well that was a hoot in the next episode of blazer train we'll take a look at the anatomy of a blazer project I'll go over every aspect of every file in every folder to make you a more informed and therefore more productive blazer developer hey thanks for riding the rails with me today this is where I jump off I'll see you next time [Applause] [Music] you
Info
Channel: DevExpress
Views: 4,919
Rating: 5 out of 5
Keywords: Developer Express, DevExpress, Visual Studio, C#, Microsoft Development, Software Developer, Carl Franklin, Steve Sanderson, David Fowler, Microsoft Blazor, Blazor, Blazor Train, Microsoft, Web Developer
Id: 4je1gmH6G7w
Channel Id: undefined
Length: 20min 58sec (1258 seconds)
Published: Wed Jun 03 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.