Intro to Blazor WebAssembly and How It Is Different from Blazor Server

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Blaz your webassembly also knows blazer client has finally been released so let's look at what it is how it works and how it's different from blazer server now in case you haven't watched any my via T 4 my name is Tim quarry and it's my goal to make learning c-sharp easier my goal isn't to entertain you my goals are turn you into a world-class developer I do that by making sure that everything I teach focuses on preparing you for the real world not only do I create feels like this one where I teach you about a specific programming topic I also answer your questions every Thursday in the dev question series I'd encourage you to check it out plus if you have a programming question or want to see a specific topic covered leave a comment on any video and I'll add that to the suggestion list my content is driven by what you want ok let's go order a visual studio now today we're going to create a blazer web application they blaze our web assembly application so let's create a new project and come down here to blazer web app now in order to have the blazer app available you have to have a later version of Visual Studio now I hit next here I have a name this so let's give a quick name here I'll call this blazer web let's call it blazer web assembly and we'll call this blazer web blazer webassembly app all right and now I have two options blaze a server app and blazer webassembly app now if you don't have two options you only have one blazer server app you probably haven't updated to the latest version of Visual Studio 2019 now just to be clear here this isn't for 2017 this isn't for 2015 this isn't for 2013 this is only for blazer or for Visual Studio 2019 the good news is that Blazers or Visual Studio 2019 Community Edition is free for just about everyone so go get it all right now right now I'm using the template version 3.1 point six and this comes with officially dotnet core 3.2 so this is a latest greatest it came out in May of 2020 now it's June early June of 2020 actually mid June so we're going to cover what blazer webassembly isn't how it's different from Blazers server so up here I'm not gonna choose authentication today I am gonna choose HTTP I can't choose docker support I am NOT going to do asp net core hosted and I'm not gonna do a progressive web application okay now here's why I am first of all going to cover the progressive web application in a future video it's coming very soon but I want to separate this out from the progressive web application part of it they want to look at what just blazer web assembly is now I'm not choosing the asp.net core hosted version because this essentially makes blazer web assembly into almost entirely a blazer server app it's almost like it kind of back tracks and kind of cuts out some of the goodness of blazer web assembly in my opinion so what I do instead is I create just a blazer webassembly app the Blazer core or the asp.net core hosted version will create essentially was kind of like an API for the blazer webassembly to talk to well I need to create my api's separately so are two fully separate products not really integrated together okay so I'll leave those unchecked just HTTP alright so no authentication no progressive web application no asp net core hosted so the very first thing I do is I just want to start this up so let's run will run is Express this is the difference in two is Express and the versions gonna say blazer webassembly we called it is that's Kestrel I prefer Kestrel but for this example I canna use is Express and I'll show you why the first let's look at this app so it looks an awful lot like a blazer server app default app if you're used to that okay so we have our home here there's a survey thing here that's actually for taking a survey from Microsoft to tell you what they are tell them what you thought of this I do want to a quick note here to say that Microsoft actually takes us into account okay so if you're gonna get a feedback they're actually now read it okay in this case there's nothing to read it's just for graphs but your vote will count okay I do want to point that out also note that when you give feedback let's move that away here when you get feedback in the upper right hand corner send feedback report a problem or suggest suggest a feature Microsoft employees actually read that it's not a black hole I know sometimes it feels like that and sometimes your suggestion isn't listened to and it feels like maybe these don't care they do care it's just that maybe yours your suggestion didn't fit with their overall plan or maybe your problem isn't a a widespread problem it's more your machine so just know that yes the team does care yes they do read it and yes I do evaluate it so now you see a feedback option take advantage of it communicate what your thoughts are if you have thoughts okay and I would encourage you don't just use it for bad stuff okay that's the the it's really discouraging that's the stuff that a lot of people do is when it's good they kind of leave it alone they're like oh whatever but when it's bad they're like all this is horrible and they actually tell a developer that's pretty discouraging if all you ever hear is how horrible your product is so give them a chance be kind do a survey if you like it then you know tell them very easy very high-quality you know give them an actual feedback hopefully positive anywho all right back to this so it's a hello world we got our counter we can click here it increments the number I know it's a little small here I'll zoom in so you can click the number in changes we can fetch data that did a data fetch you know will who now notice here that we have a temperature of 1 and 33 and it's always 1 in 33 it's a little different than the Blazers server app which did random data every time but besides that it's pretty much the same thing okay in fact we're gonna load up the Blazers server in a little while and compare the two in fact you know what that's a great time and do that so let's really quickly here right-click on a solution we're gonna add a new project come down here a blazer app and I call this blazer server so now I have a blazer webassembly and Blazers server apps it's of course blue blazer server HTTP but nothing else they create and now we'll have both web versions I'm gonna do is right click on my solution I'm going to say set startup projects and I choose multiple projects I'm going to say start for both of them now when I hit start it's going to start both projects at once so you have them side by side or we can try that but I'm getting this error right here it says hey you can't do that you can't start it because it's being used by another process bummer let's try it again stop this most we go down here too you can't see it but in my my system tray I have is Express I'm gonna stop all the processes and let's start this up again and nope it's yelling at me again so it's not going to start both of them at once that's okay we can look at this and do our comparison so we have this is our Blazers server notice up in the upper left-hand corner says blazer server and let's zoom in here a little bit we can see our survey we can see our counter which we click and it changed the number our fetch data notice it says 25 and 76 now it says negative 20 and they go 3 now it says 0 and 32 so that changed the data every time so that's a little different we'll see why but otherwise this these pages act the same from our user perspective ok I just want to kind of point that out so let's undo this start both whoops there we go right click and set a start up project was down to the bottom so now I have just the Blazer webassembly starting and that should start again it does ok so it's just a problem that is expressed not wanting to start bolt at the same time I'd not check their port numbers make sure they were different okay so with that being said now we have our blazer we have assembly and our blades or a server so you can kind of compare the two and see what the similarities and the differences are let's start by just looking at what blazer webassembly has and then we'll look and see what's different so blazer webassembly has program CS where we start off with a web assembly host builder create defaults the route component add app and then we have services add transient and here's a new HTTP client now if you haven't worked with HTTP client before this is how we talk to other web applications across the network especially api's so I do have a video on this a little intro to HTTP client if you do my channel search not the YouTube search but on my channel I have it's my own search if you search in there for HTTP client you'll find the first video that comes up is the video on how this works so this is our HTTP client and it's being set up with a base address this same host and environments base address okay so it's the same local host version okay so that's adding that and they were doing a run at async this is a little different in Blaser server we'll see that a little bit but this is where all the setup work gets done for application including ad app which that's app dot raiser right here this is our router this is where we do things like saying okay if you found the route then go the route put the data in here and the default layout page if you don't specify one is main layout well that's right here main land so if you don't specify a layout page which by default our pages don't then I use this layout page which this layout page is a little different because it has a sidebar and the main section and there's our app body which is where all the the specific views or specific components HTML and CSS goes but then we inherit from layout component base which that's actually a Microsoft component if we go there you'll see that there's how to render the body and all the rest so where is the rest of the stuff where is the the HTML on the header tag in the body tag well if we go over to www.decksdirect-dot-com and then our body and then in here is where we're going to load our our app ok right in here so it starts little says loading it'll actually put our app in this section we also have a an error message that can show up and this is a little bit of JavaScript it's actually a lot of JavaScript but this is the JavaScript that translates how to talk to our c-sharp code so let's take a step back here from that now and let's talk about what web assembly really is I think this is a good point to do so so blaze our server let's start there we've hopefully you've watched that intro already I've got an intro video on that but Blazers server is a application that runs on the server all your c-sharp code runs on the server gets compiled on the server and the client just gets HTML CSS and JavaScript there is no c-sharp code that goes to the client however there is a little bit of JavaScript that opens up that connects to the signal our service which sends down which sends back changes saying hey they push the button so then the change come down says okay put the new number of 1 instead of 0 in this spot that's how Blazer server works blazer webassembly is different blazer webassembly loads and runs fully on the client that means that your c-sharp code runs on the clients machine that may sound a little scary but what happens is it actually compiles a dll sends it down to the client and says here's your web application to run this is how client-side web development works ok so this is no different than if you have an angular application or a react application or a view application where it's the same thing all of your code for your application goes down to the client in fact let's do this I'm gonna pull up the website get bootstrap calm ok it's the bootstrap website which we use bootstrap in blazer webassembly in asp.net core and so on so let's hit f12 to pull up the developer tools on this page if you notice let's go and let's open up the docs dot slash 4.5 let's go a Jas slash source and notice here toast here is all the Java Script or the toast dot J's file okay so this is all the code you would need to run the toast JavaScript so we're used to this okay this is what happens on the web with client-side web development all your code goes the client-side I know that freaks some people out because they look at that and say then all of my code can be stolen and if you do this then yeah it kind of could be like this is just easy copy and paste stuff typically though with your front-end web application you wouldn't have all of your code on the client side typically you call an API in order to get data and the API has your business logic and all the rest so the the client-side code really is just about display that's the same thing we're going to do with our blazer web assembly projects this whole project should be about displaying data and getting data from the user that's really it's job it's not about business logic it's not about data access in fact you can't directly access data from a blazer webassembly project you can't say give me let's do a sequel call let's use dapper and I'll talk a sequel no you can't do that you really have to talk to an API or something similar in order to get data in a blazer we have assembly application and the reason for that is because you wouldn't want to send the client a connection string I mean that would be scary here's a connection string to my database I don't want to give that to my users therefore I can't put it in my blazer webassembly application besides the fact that I'm not gonna give access directly to the entire you know Internet for my my database that's just not gonna happen I want to put an API in between so Blazer webassembly really required that you can't talk directly to sequel you can't talk directly to most databases there are a couple of exceptions where it's the same type of database a JavaScript application could write to directly like a local DB or a local an index DB I'm sorry or local storage or session storage things like that you can write to but those are all client-side and they're really more volatile they're not for long-term storage they're more for short-term storage and caching purposes okay so we've seen how program that CS starts it calls app app says hey if you have a route use the main layout by default if not use the main layout but if in general not even my default for all the times and say sorry is nothing at this address the main layout is just the sidebar and the main section but this all goes inside of our index.html so let's look at this again let's write again sorry I say run it's going to load up and once it loads up we're gonna do is we're gonna look at how it actually looks behind the scenes we hit f12 there's my my developer tools let's do a source and let's look at under framework you'll see blazer webassembly dot J ass let's let's bring us over here and kind of zoom in this is a minified file it's got a pretty print hey you know what we minified a file but pretty print can can't put it back into a nice readable format I say nice and readable but it's not really readable because got function e TR and I get what's happened is this has been minified so they replaced the nice neat easy to read wording with single letter variable because they're they're less space when you download the the file it also makes it harder to then read and modify by somebody else so minification does help a little bit with code stealing all right not again your code should just be client sign so it shouldn't really matter but there you go and then inside wasm we've got the dotnet wasm and that's still loading and inside here's we'll have how our our application will actually run you'll have the JavaScript file which is kind of the web assembly wrapper all right let me have a little bit of CSS I there we go stopped it so there's our module this is all of our really cool code I'm sure you're fascinated by fine all this code that's it's a lot of interesting code alright so this is all the setup for using web assembly for dotnet so what web assembly is in case you're not familiar web assembly is a web standard it's not a Microsoft thing this is why blazer web assembly is different than let's say Silverlight silverlight used a plugin and then that is proprietary to Microsoft and then using that plug-in it could then render Silverlight pages this is different web assembly is a w3c consortium approved standard that all major browser supports that anybody can use to create web assembly projects to run other code in the in the web in our case it's dotnet code it doesn't have to be but there's a wrapper there's dotnet 3.2 J ass this allows us to basically put into the web our dotnet code all right so this is built upon web standards it's not a plug-in it's not something that has to be added to your browser this is this is web standard stuff that's why I am much more positive about this much more encouraged by us happy by this and much more willing to use it in production because it is a web standard that's built upon okay so this is our application now here's the actual index page so this is kind of deconstructed page we go the elements here you'll actually see the page so see this app section right here notice that on the sources page app just says loading that's the raw page but then here we see the app has a whole bunch of comment sections and that has sidebar in more comment sections these are actually important by the way but then it has the actual code kind of intermixed here there's main and there's more code it's kind of intermixed with these comment sections this is what gets rendered using web assembly we have our user interface we have our linked to that javascript file and to the other javascript file so there's there's a lot of stuff going on behind the scenes to help set this up but be the eventual reality is we're bringing c-sharp code down and running it in the browser so let's close this out for a minute let's close out those browser window as well and let's talk through a little bit more about what's going on here let's look at the rest of this stuff so we saw that app dot razor said okay if you don't have a layout the default layout is main layout well main layout said there's a sidebar and there's this thing called nav menu well nav may is actually a razor component we saw this in Blazer server and there's your navigation so here is your your setup here's the actual navigation links and the toggles so if you click it it toggles in the hamburger menu in out if it's collapsed so there is your navigation link so you can actually add to that by just copying this whole section and then changing the href so it's a fetch day to go somewhere else I'm kind of hitting the high spots here because I don't want to do the same video as my intro to blaze her server and that's I would encourage you watch that video even if you want just webassembly watched a blazer server video as well be these two are really closely tied together so let's look at the pages so counter page it's gonna look exactly the same as the the Blazers server version but fetch data is a little different fetch data if we come down here that code we have HTTP GET from JSON async and that's gonna load a JSON file so this is actually loading a file from the web now from the web is kind of a relative term because it's loading it from a sample data folder and with our JSON so this is this is a relative path based upon the route path of our of our running application how I know that well because using HTTP which if you look up here is being injected and it's the HTTP client remember back in the beginning and program that CES we created HTTP client and we said that we want to set the base address to be the base address of the host environment meaning localhost colon I think like four four two three three years like that that's what we're looking at for our base address so over here in fetch data we're saying okay called the web and we're looking the same URL we're on then go a slash sample data slash widow JSON well in www.wesindhi.org esken verted so that is the number we were seeing we saw one I think I was thirty three or something like that that is the the number to shake seeing consistently because unlike the blazer server were not generating that with c-sharp we're just loading a JSON file what that's a simulating though is calling an API and getting data back so really good do is change where the base address is or even take it off but you could change the base address and then in here call an API and say give me the temperature data and it'll go to that API it would load back the JSON and they could put that into forecast and display it like so so it's kind of simulating an API but it's not making an API call so that's different all right in fact let's open up our blazer server and kind of look at some of these differences let's kind of collapse down to the basics and start with the program CS so let's close out everything else this is the the blazer server I'm going to open up the Blazer web assembly and let's compare the two side-by-side all right so if we unpin this it's it's a little bit off of screaming that's okay so in oblate and the left hand side you have Blazer server notes up here plays our web assembly on the right so the Blazer server says create host builder build and run and the host builder is create default builder and then configure defaults and use startup of startup whereas in the main over here on web assembly we're doing all the startup stuff right in main we're not don't have a startup dot CS like over here to our blade webassembly there's no star CS in this project so over here left in blades of server were defaulting to a star CS which has let's move it over to the correct side it has things like a configure services where we add our Singleton's there's weather service where we do other configuration like developer execution page and HTT or HSTs and HTTP redirection and routing of endpoints and all that stuff we do in starved ICS we don't do any of that in Blazer webassembly all of that is compacted down to three lines of code which is web assembly host builder create default the route components add app and here's the one service to add so there's not a lot going on in the program dot CS but that those three lines replace startup dot CS in the Blazer server-side then we have the Builder build and run a sync just like this build and run when it's not running sync but build a run well--that's builder run a sync there we go it's running our application so that's the first major difference now let's unpin us again and let's look at what else we have it's a little different notice in Blazers server we have app settings JSON with no app same JSON in Blazer web assembly one of the reasons for that is because everything goes down to the client so it's kind of the same thing as a server now technically you can create a app settings that JSON file in blades we have assembly but it's going to download to the the user's machine which means in theory if they knew how to they could open up that settings file and read the settings information not ideal if you're trying to store some kind of secret in there but again that's just like a JavaScript application you have to think through how you do your secrets if you have any secrets that go to the client usually you don't so we don't have an app settings dot JSON in our blazer web assembly file we also let's see we have imports app dot razor and program we have imports app dot razor program we missing those two year I mentioned app settings a JSON startup JSON the F dot razor looks pretty much the same okay those two if let's most of the horizontal this time instead so up top we have up top we have the web assembly version and biome we have the nope I'm sorry web with somebody's in the bottom and up top is blaze or server okay so this is blaze a server up top but you really can't tell a difference I mean they're pretty much and in fact I think they're identical so that's the same so they have an app dot raiser they act the same the import statements they're pretty much the same so the difference here is that and layout which actually layouts the same sorry layouts the same even the inherits from layout component base is the same that there is a link different here notice that's blazer dotnet versus Docs not Microsoft comm asp net I'm wondering if that's a typo not sure there that price should go to the new Blazers net they price and update that when they updated plays webassembly so it probably didn't update blazer server so the stuff we have here it's pretty much the same stuff it's just that there's a few tweaks so our pages we go to fetch data down here there is a get forecast async which is going to this data folder this is the the server-side laser server but here we don't have that data folder we don't have the fetch data that calls to a a c-sharp method because we don't really call c-sharp methods in Blazer webassembly in order to get data instead we call AP is using our httpclient in order to get that data so blades are webassembly is really reliant on third party or external data given to it and and then sending its data to a third party now a third party may be you it maybe your API and probably in probably is but it is reliant on that external application to give it data now the next difference is in pages so in our let's collapse these down so we have a little more space here you can see a little bit more clearly in our blazer server knows we have five pages we have underscore host we have counter error fetch data and index down below in our blazer webassembly we have counter fetch data and index so that's that's it we don't have these other pages so let's look at these other pages and see what they are well the error page is kind of self-explanatory that's where you go whenever you have an error the host page this is our actual starting page or layout our I want say layout because that's not a layout page it's the the HTML page that gets that we render to the client okay so we have things like our doctype and HTML and head and body and so on well all that stuff isn't in blazer web assembly there is no underscore host file but instead there's that index.html that's where ours and web assembly is set up so that's a difference because remember webassembly runs in the client machine and so the client machine doesn't have dotnet core installed it doesn't have any version of.net installed we have to bring it with us and so we can't start with a dotnet core style starting page we gotta start with what the web knows the web knows index.html so that's where we start blazer webassembly version is index.html this script right here with the blazer dot webassembly je s that's what then kicks off and says okay we're gonna bring down some the the mono version of.net Coronet and we're going to then load our DLL from our actual application here's how we render it in all the rest so this page has to be a standard page that a web server would be able to handle therefore index.html that's why it's different than up here and that's about all there is for the differences between these two different types the rest of stuff if you learned blazer server then you pretty much know about 95% of blazer webassembly if you've learned blazer webassembly you know about 95% of blazer server so the two really worked well together so let's talk about why would you use one over the other well blazer server runs on the server that's kind of in the name it operates similar to what asp.net core MVC does or Razer pages does or things like that where it's a server-side language which means that it gets compiled on the server and then when a user requests a page what they get is an HTML page they don't get any c-sharp code even though if we go look in blader server page let's look at fetch diya officially there right here we have this at if this else we have a for each we have some code here the user sees none of this the user has no way to access any of this because this all gets run on the server and then once the the rendering is done on the server then it sends the page down to the client now Blaser serves a little bit different in the fact that this August rented a server that the user never sees anything else but let's just say that the forecast is null to begin with which it will be then the page is gonna have this but as soon as the forecast has data it's going to evaluate as if and change the value of what's in this section to be this data including this rendered for each so what's gonna happen on the client-side it is gonna say or the server side's gonna say hey I've got new data for that section it's got sent a data down the client side says oh okay I'll put this new rendered data into that section and it just gets HTML CSS and JavaScript to put in that section so blades our server runs on the server and all the c-sharp code is hidden as never accessible to the end user which is why we could have app settings dot JSON with connection strings that could be secure that it could have secure information or sensitive data and that's okay now blades are webassembly is different Blaser webassembly like I said it compiles the DLL but then it sends it down to the user and says render this and so on the client side you will see or you can see the c-sharp code you can see this code if you dig into it you can get to it you can see how it's all designed and laid out so the benefit of a server was we could actually access sensitive day like a database directly that's a drawback for the client the client cannot access a database directly there are some things that can't do because it's on the client side it's just not safe to do on the client side it needs to talk to an intermediary like an API in order to get that sensitive data however when you load all this stuff on to the client if the client says I want to rear-ended us page 18 times the clients machine is the one doing the rendering now it may not seem like a big deal versus the rendering a server because servers render a lot of things really fast however it's a scale issue if you give a web assembly to a million computers let's just say a million people get on your website which by the way is not gonna happen almost assuredly usually websites don't get hit anywhere near hard enough to make a difference but I'm just pointing this out for reference purposes if a million people went to your website all at once and downloaded the Blazer webassembly version that would be a bottleneck because download the entire dll will take some time in my time not a lot okay they've shrunk this dll down significantly and it's just your codes we don't blow that up again but there is a little bit of download time however once it gets down then the pages can be rendered on the clients machine meaning there will be no speed penalty for having a million people loading your site versus one this is the same benefit and drawback that all of the JavaScript frameworks have so angular react view these applications have an upfront download and it can be a significant download of JavaScript and CSS and HTML but once that gets downloaded then you don't have a performance penalty if you have a million people running your site at once or just one it's the same performance because it's all running on the clients machine you're essentially outsourcing your work blazar server on the other hand every time you add another client you open up another signal or connection which takes I think it's like 200 kilobytes or 300 kilobytes of memory per connection if you have a million people count in your server which wouldn't work but if you did then you would be taking up a lot more resources and reading those pages would be detrimental to the server there'd be so many that overload the server I've heard that a decently sized web server on Asscher can do about twenty thousand sessions at a time my guess is that about 99 percent of the people listening to this aren't gonna use more than that okay so any if you did you can scale the two and three servers but I'm saying is what blazar webassembly all flows that work and you could scale to a higher number in theory because you're offloading your work so there's a benefit of Blaser webassembly also and we're gonna cover this more in a future video blazer web assembly is the only one of the two the only one is the one out of the two that can do a progressive web application meaning can download to your desktop like an application or can download to your phone like an app and it can be treated like a regular app on your phone or desktop including having an offline mode so if you need offline access you have to use blazer webassembly you can't use blazer server blazer server requires that server now again we're going to cover some caveats there because it's not all sunshine and roses with progressive web applications there are some significant drawbacks it's not the killer application that might be touted as but it is really good okay so I think that my the where I land on all of this and that covers more in my which asp net core course where we talk about the five different types and when to use each but in general if I'm looking at these two I lean towards choosing Blazers server for my web projects and the reason why is because it's simpler I can talk to a sequel server directly I can have my DLL that has my dapper calls that talk directly a sequel server I can talk to cosmos DB or everyone do in my in my D allows that then connect to my blazer server directly that makes my life easier with blazer webassembly I have to write an API it's an extra layer now with that being said if you're going to write an application of any size I would encourage you anyway to write an API if you've been following my tIMCO retail manager course and if not there's a playlist called timco retail write it check it out in there we create an API and the reason why is because we started off with a WPF user interface for our our cash register and administration of our application but we're gonna add other things to that and here's a little hint we're gonna add a blazer webassembly project that talks to our API so that API now allows me to connect multiple user interfaces to it not just one so there's definitely a benefit from the API it's just it's an added step or it's an added kind of headache in some ways so there is some benefits and drawbacks here what I do want to make sure I communicate clearly is that there isn't one right answer and I often get asked this which one is best and the answer is always going to be it depends there's a reason why we don't have just one programming language there's a reason why we don't have just one desktop application type or web application type because different ones have different purposes and different strengths and weaknesses so blaze our server and webassembly each have their strengths in certain circumstances and it's not as simple as well I'm gonna do a marketing application I'm gonna do a banking application that's not enough information if you've watched my which ASP that core course you'll know there's a lot more that goes into it because there's a lot more options and things to think through including what is the makeup of my team what are we looking to do long term in this project what what's my environment like where am I what's management looking for in the future there's a lot of stuff that goes into making a decision but I will tell you that both of these prototypes are really good they really have a lot of benefits if I had to choose one blindfolded without knowing that your product is I would choose blades or service it's the easiest most well-rounded application but if you want offline support if you want you know the client-side fully then Blaser webassembly is definitely way to go so that's my little two-minute comparison of the two I do want to focus on webassembly for this this video but that's really good intro I think to what all this can do it's really it's a simple application I'm not saying it's it's easy because there's awfully there's an awful lot to learn here especially if you're new to web development now if you are new to web development this may not be the place to start I would start the Razr pages I've got a video on that an intro to asp.net core razor pages you can check out that's probably an easier starting point and really before then learn c-sharp this is one of the things that people often ask me you know I'm new to c-sharp what about blazer well that's the end not the beginning the beginning of any c-sharp application is learning c-sharp well okay sorry a little bit of a side trail there so we've blaze our webassembly it is a good web product it is ready for production today it is new though and that is something to always be careful of with a new product there's gonna be bugs there's going to be things not fully implemented yet there's things are still working on now the team has done a great job they've had it had preview releases out they got feedback they have been very open remember the dead blades or web assembly is open-source just like play the server just like asp.net core in general so if you even go github and look at their issues look at the issue list and see what's going on and even contribute your own issues don't forget you can also use this little send feedback button do the same thing but with all of that it is production ready it is something you could start using in your Production apps I would encourage you to check it out encourage you play with it and as always when you learn something new don't just put it into a production application do what I've done here create a new product test it out try some things figure some things out and kind of play it and poke it a little bit okay so that's it for this video in I think the next video will probably cover more about blazer web assembly especially progressive web applications and how they work and what would happen if we use that feature what it looks like okay thanks for watching if you have any questions give me comments leave them down below and I will get back to you and I will put them on a list for future videos okay thanks for watching and as always I am Tim quarry [Music] you
Info
Channel: IAmTimCorey
Views: 71,430
Rating: 4.8807664 out of 5
Keywords: .net, c#, visual studio, code, programming, tutorial, course, training, how to, tim corey, c# course, c# training, c# tutorial, wpf, asp.net, .net core, blazor, blazor server side, server side blazor, client side blazor, razor pages, asp.net core, asp.net core 3.1, .net core 3.0, .net core 3.1, asp.net core 3.0, sql server, blazor webassembly, blazor webassembly tutorial, blazor webassembly vs server, blazor webassembly asp.net core hosted, blazor c#, dotnet core
Id: KOMo77bVKSw
Channel Id: undefined
Length: 50min 39sec (3039 seconds)
Published: Mon Jun 22 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.