Blazor server-side vs client-side (WebAssembly) | What should you choose?

Become a Patreon and get source code access: / nickchapsas
Check out my courses: dometrain.com
Hello everybody I'm Nick and in this video I will talk about Blazor. I will explain what Blazor server-side and what Blazor client-side are, their differences, their pros and cons and finally give my opinion on this new piece of technology. SignalR or WebAssembly. Let's dive into it.
Link to the Blazor Templates: docs.microsoft.com/en-us/aspn...
Don't forget to comment, like and subscribe :)
Social Media:
Follow me on GitHub: bit.ly/ChapsasGitHub
Follow me on Twitter: bit.ly/ChapsasTwitter
Connect on LinkedIn: bit.ly/ChapsasLinkedIn
#blazor #webassembly

Пікірлер: 90

  • @bomo6453
    @bomo64533 жыл бұрын

    Dude, I just stopped the video at one minute to thank you for the simple clearness and essential sum up that a lot of development documentation lack. Instant subscription.

  • @arielspalter7425
    @arielspalter74253 жыл бұрын

    Every video of your is as clear as it can possibly get. Love your channel!

  • @andredasilva6807
    @andredasilva68074 жыл бұрын

    Great explanation of the differences (pros and cons) between server and client side blazor. I can't wait to see how the stable release, of the client, will be in may 2020. thanks for you effort and keep up the good work.

  • @Nour--
    @Nour--4 жыл бұрын

    Looking forward to the new tutorial series!

  • @Netherlands031
    @Netherlands0313 жыл бұрын

    Awesome! Really like the in depth explanations, you get to the core of the issue instead of making blanket statements (I've heard 'blazor can't scale' whereas you see it as, storing state server-side is difficult with a load balancer).

  • @kevinruder9652
    @kevinruder96524 жыл бұрын

    A great intro to the inner workings of Blazor. Thank you.

  • @ceralguy85
    @ceralguy854 жыл бұрын

    Really great stuff, awesome channel for developers

  • @queenstownswords
    @queenstownswords4 жыл бұрын

    Good video. Good point about SignalIR and a 'best coupling' with azure. I have been developing in blazor server side and really enjoy it. I agree that there needs to be a path to go from server side to client side.

  • @adamlunga6809
    @adamlunga68094 жыл бұрын

    Good Explanation. Will go through all the tutorials.

  • @BCLBlazorCollectionsLibrary
    @BCLBlazorCollectionsLibrary4 жыл бұрын

    Really great explaination sir, thanks :)

  • @rongreen3648
    @rongreen36483 жыл бұрын

    Thank you for nice explanation of Blazor Client vs Server side!

  • @Genarij
    @Genarij3 жыл бұрын

    As a side note: you can save and restore state for Blazor serverside via client serialization. So if you loose connection while editing a complex form it can be restored once the connection is up again. It even works after the server has been updated and restarted as long as the saved state object hasn't been changed in the process. However it needs to be implemented for every state/page you'd like to save/cache. There is also the possibility to cache on serverside, for instance by constantly saving the state object to a server database and restoring it later. But yeah: it's best used for internal company websites where the connection tends to be stable. :-)

  • @pritulkhan1395
    @pritulkhan13954 жыл бұрын

    Very underrated channel. You earned a sub

  • @tom-stein
    @tom-stein4 жыл бұрын

    Thanks for this amazing explanation

  • @StefanoLabate
    @StefanoLabate4 жыл бұрын

    very useful, thank you. I'm subscribing to your channel!

  • @RyanSampaioFilho
    @RyanSampaioFilho4 жыл бұрын

    Thanks for the explanation!

  • @andrewthompson9714
    @andrewthompson9714 Жыл бұрын

    Wow look at that picture! A dotnet genius, and he is stood next to Jon Skeet !

  • @CRBarchager
    @CRBarchager4 жыл бұрын

    Will be using Blazor server-side on my next project on my job.

  • @mikeb6006

    @mikeb6006

    3 жыл бұрын

    How is your experience about Blazor Server-side? Can you recommend?

  • @amirh.jabari5401
    @amirh.jabari54012 жыл бұрын

    Nick can you record an update for this video I'm sure there are many improvements for blazor.

  • @elraito
    @elraito3 жыл бұрын

    Absolutly baller explanation. You made everything clear. Been tinkering and getting my feet wet with blazor and id add to server side blazor that yo ustill cant do authentication over signalr without convoluted mechanics. If you use the tools MS has provided (identity) you have to workaround the scaffolding or make a page refresh to make new http request for cookie/bearer etc. If they ever figure out how to change auth state through signalr then server side would be awesome

  • @hichamo-sfh177
    @hichamo-sfh1774 жыл бұрын

    what a wonderfull VIDEO !

  • @mobinx7
    @mobinx74 жыл бұрын

    thanks. I learned a lot...

  • @woopwoop6316
    @woopwoop63163 жыл бұрын

    wonderful job.... it just wrapped around all my struggels I had with Balzor when i started it last year as a total greenhorn :D i thought I am da dumbest Dude out in the world. But you bring it on point :D

  • @andreilazarescu5066
    @andreilazarescu50664 жыл бұрын

    Great series Nick! I have a question regarding Rider, what configuration do you use to create and debug Blazor projects. I know that it is not fully supported and there are a few issues been tracked on their website.

  • @null8036
    @null80362 жыл бұрын

    Me before watching video: probably another framework nick: "Dont need to write any JS" Me: My happiness is immeasurable and my day is nice

  • @faridulhuk1248
    @faridulhuk12484 жыл бұрын

    Hi Its very nice explanation about blazor. I am not clear how blazor server side is different from normal core web application in terms of performance and scallability and consuming server resource.

  • @anarhistul7257
    @anarhistul72573 жыл бұрын

    I also am worried about scaling Blazor server, it seems to cost too many $$$ on azure. As for Blazor WebAssembly what scares me is: -initial download -SEO support -long term support What doesn't scare me is: -debugging (I don't except a lot of this, saves to from learning UI frameworks so I guess it's still a win) -exposing my DLLs, this I expect to be just UI render logic, low $ value. I will be checking for myself tonight

  • @lardosian
    @lardosian3 жыл бұрын

    Is there a follow up to this video now that Blazor WA is released, thanks, subbed!

  • @ophir1982
    @ophir19824 жыл бұрын

    Great stuff! As far as code being downloaded on the client - keep in mind that JS frameworks also download the framework to the client and that could also be quite big (although I'm not sure 5mb for a startup project). And as far as code - if you were writing JS you would also need to bare in mind what you put in your code - this is client side! As far as what to choose - I think that if someone is to start a new project now and is interested in this technology, it's worth developing in as a new *big* project starting now would probably make it to production at around the same time as GA.

  • @zerosandones7547

    @zerosandones7547

    2 жыл бұрын

    What do you suggest to study right now, is it ASP.NET Core MVC or Blazor? I am still new to C# Web Dev and doing research on what project type should I study on. (I know HTML, CSS, C#, and Bootstrap)

  • @syedqutub4054
    @syedqutub40544 жыл бұрын

    I agree with the part that serverr side blazor is like something to begin and wait for the client side blazor.but the large size issue of client side blazor can be removed (or atleast minimized) if we do dual mode I.e 1)use server side for startup(fast startup) and start downloading the client side blazor static files in background 2) when client side blazor is downloaded switch to client-side blazor (thus stopping the signalr connection)

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    I don’t think these solutions sound feasible since mixing the two techs would be way too complicating. You can simply shake off the unused APIs from a dll and minimise it that way. I don’t think that the relatively big side of a blazor client side will be a problem especially with UX tricks such as the things that Facebook, slack and discord does.

  • @zimcoder

    @zimcoder

    4 жыл бұрын

    Yes this is an alternative. thefreezeteam.com/razor-components-dynamic-dual-mode/

  • @jamesmcgee1912
    @jamesmcgee19124 жыл бұрын

    This was a great comparison of client-side vs server-side Blazor. I'm wondering if we can systematically structure our server-side Blazor to make migration to client-side at a later date easier. By the way, in regards to some guys criticism of your accent and speed of speech, I can understand you fine and the speed of your talking is fine too. Thanks

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    Thank you for your kind words. You actually can yeah. As long as you use interfaces and implementations and add them in the DI container you should be able to have the server side implementation of that interface and then change it for a client side one without having to change any code in the razor components.

  • @maximilianoleveroni7745
    @maximilianoleveroni77454 жыл бұрын

    Blazor server side is ready for production?

  • @peep39
    @peep393 жыл бұрын

    For Blazor server, is there a way to add client-side javascript that runs on a text input's OnChange event, and then runs a local js function? I'm trying to evaluate Blazor for my company and we have some intense input validation that would simply die over SignalR (i.e. validation on every key stroke)

  • @vineet1034
    @vineet10344 жыл бұрын

    is the programming same or different in these two models ?

  • @keithkatane4854
    @keithkatane48543 жыл бұрын

    Can't thank you enough.

  • @GuillaumeZahra
    @GuillaumeZahra4 жыл бұрын

    In my opinion, the real deal with server-side is when used with a clever management : - non wasm compatible browser shoulds fallback to blazor.server.js instead. - SEO will be better with server-side pre-render, following the previous statement (sort of) Then old administration / company should be able to use a Blazor app too. Well of course they will need IE11 at least...

  • @Andrei-gt7pw
    @Andrei-gt7pw Жыл бұрын

    Server-side blazor seems to have some cons that are a real show stopper. Client-side blazor looks more promising, seeing it more as a standard client-server desktop app that uses the browser to solve some headaches of such setup (install, updates, UI). The con of having initial bigger download size - perhaps in the long run it make less traffic than a normal web app.

  • @andrzejwojciak8206
    @andrzejwojciak82063 жыл бұрын

    Hi, some time ago I seen you make video named something like "why I'm worried about blazor". Now I have time to watch my backlog videos, why this video isn't on youtube anymore?

  • @ramsapkota2392
    @ramsapkota23922 жыл бұрын

    Can you post new video on Balzor WASM?

  • @bashmohandes
    @bashmohandes4 жыл бұрын

    Totally agree with your assessment in Server Side blazor, I don't see much future for it, not really a good idea to be honest. Although I see the same thing with client side just for different reasons, it is still a bad idea, download sizes is not a trivial thing, especially that it is not just an asset like an image for example, the app cannot do anything until this whole thing is downloaded, and with mobile being the most common use cases of the web these days, that becomes a huge problem, also we haven't seen sizable apps performance and debuggabilty & tooling issues, I personally don't see the value of using something like this, because it seems that the goals is just not to use JavaScript, which in my opinion is not a good enough goal for such complexity

  • @goforshahriar
    @goforshahriar4 жыл бұрын

    I think the serverside model has high probability of getting DOS attack compared the client side. Also while browser do the caching itself for the subsequent call, I still think that's not enough to give smooth experience to the end-user. The CDN has to play the actual role to minimize the initial load time.

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    Totally agree with both points. A DDoS can be effective even if it doesn't take down the server because the latency caused will make the UX way worse. I've seen really good improvement with CDNs personally and the "Loading..." phase can be smoothed out by using techniques similar to Angular.

  • @goforshahriar

    @goforshahriar

    4 жыл бұрын

    @@nickchapsas bdw, how did u manage the CDN part? Looking forward to see blazor in action in your channel.

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    If you publish a Client-Side Blazor app you can upload it as any other static site on providers that support CDN static site hosting. Sites like cdnify, forestry or keycdn provide such services.

  • @sunilanthony17
    @sunilanthony174 жыл бұрын

    Nick, I'm trying to understand the difference between server-side and client-side. One thing that is confusing me is that you don't need a server for client-side. How is it being hosted?

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    It is being served as a static site to the browser and the browser runs it with it's WebAssembly support. Same way that a index.html with work.

  • @doksara420
    @doksara4204 жыл бұрын

    "Less mature runtime - no .NET Core, just .NET standard" - Could you explain this a little bit further? Which APIs do we have access to? I read somewhere that the runtime which is downloaded to client is basically the Mono runtime, but as per github.com/dotnet/standard/blob/master/docs/versions.md, you should have access to same APIs like in .NET Core 3.0 or am I missing something? If yes, could you provide some resources where I can find out more about this?

  • @rursus8354
    @rursus835410 ай бұрын

    Thank you for the video. I'm going to send the link to my pupils. No Blazor is not at all good. It IS very good considering that it sends and executes application over Internet using the *_deeply flawed_* WWW-architecture. Instead of being a stupid client server architecture sending clear text data over an encrypted channel verified by the flawed 3-point verification system, WWW should be a trust-based always encrypted intelligent load balancer that computes whether server side or client side is the right way to execute depending on Internet speed versus server load versus client load.

  • @vittoriomorellini1939
    @vittoriomorellini1939 Жыл бұрын

    I use server side blazor for intranet with not more than 100 users. I think It is a killer tecnology for small app business. For bigger app I would not select web assembly. For a Spa with login I prefer React UI with dotnet api. Why should I select Blazor Web Assembly for SPA web app?

  • @dotnetdevni
    @dotnetdevni2 жыл бұрын

    It still confuses me when each one is nedded coming back form mvc we only had api and client site so its confusing me

  • @assemblyrtsdev
    @assemblyrtsdev4 жыл бұрын

    If you get an error try upgrading your dotnet version to 3.1.[latest]

  • @kwanelekhumalo
    @kwanelekhumalo Жыл бұрын

    Alright! Here we are, 2 years later, do you have any updates? Is there a link?

  • @AngusMcIntyre
    @AngusMcIntyre4 жыл бұрын

    Only explicit c# event handler binding goes back to the server! Media queries and CSS states are still client side.

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    That is correct, but I never talked about media queries or css states.

  • @kourosh234
    @kourosh2344 жыл бұрын

    Is it possible to have a real world series on creating an e-commerce website with blazor?

  • @GavSaysPogMoThoin
    @GavSaysPogMoThoin2 жыл бұрын

    @Nick 2 years on, has your opinion on Blazor Server changed? Microsoft push it pretty hard but it still doesn't seem like something that a serious production application should use.

  • @nickchapsas

    @nickchapsas

    2 жыл бұрын

    No I have no reason to use it. I prefer React + TypeScript

  • @EgiRoka
    @EgiRoka4 жыл бұрын

    why is Blazor single page app framwork? Can be used not only for SPA sites.... right?

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    It can, just like Angular and React but they are all considered SPA frameworks

  • @Aaron_K
    @Aaron_K4 жыл бұрын

    I hate when videos say they will leave a link in the description and then they don't.

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    I am so sorry, which link did I not add? I will add it right away.

  • @Aaron_K

    @Aaron_K

    4 жыл бұрын

    @@nickchapsas It'd be the stuff at 3:21 - The preview Blazor Templates

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    @@Aaron_K It's been added now. Sorry for that.

  • @Aaron_K

    @Aaron_K

    4 жыл бұрын

    @@nickchapsas Thanks

  • @abdur1996
    @abdur19964 жыл бұрын

    So its basically MVVM correct?

  • @bulent2435
    @bulent24353 жыл бұрын

    5.5 MB download for an empty app without any functionality or media files is literally unacceptable. It must be some sort of pre-render solution like SSR in JS, otherwise, this will be useless for most of the web pages unless you create a pretty complex web app or a heavy game.

  • @coomservative
    @coomservative6 ай бұрын

    I prefer the normal speech here as opposed to the overly enthusiastic tone you normally take, I’m tuning in for expertise, not over the top delivery

  • @mewmew5125
    @mewmew5125 Жыл бұрын

    Still prefer Blazor

  • @just_code
    @just_code3 жыл бұрын

    can you add subtitle please

  • @pjjx5471
    @pjjx54714 жыл бұрын

    Although I can understand most of the words you used but it's just too fast. Make it a little slower.

  • @joshwaloveslotr

    @joshwaloveslotr

    3 жыл бұрын

    you can set the video speed

  • @BenHayat
    @BenHayat4 жыл бұрын

    Dude slow down talking. With your accent, it makes it even harder to follow...

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    Sorry for that Ben. Try to slow it down using the time manipulation controls or enable the captions. These seem to get most of the things I say right.

  • @BenHayat

    @BenHayat

    4 жыл бұрын

    @@nickchapsas I don't think you understood my point. Imagine someone is having a pain in the body, and people say "Just take pain killer, so you won't feel the pain". But the source of the problem was never address, just a solution to cover it up. If you're taking the time to vlog about a subject, why not take the time to properly deliver the content rather reading some material fast to get it over with. What's the point? That is not how you teach someone. Then your solution is to slow slow down the video, read the captions, just to see what you were saying? Good luck with getting subscribers and followers.

  • @nickchapsas

    @nickchapsas

    4 жыл бұрын

    Thanks so much for the feedback. I will take it into account for future videos

  • @KJmp32

    @KJmp32

    4 жыл бұрын

    @Nick Chapsas You’ll never make everyone happy. For what it’s worth, I watched the video at 2x speed and understood you just fine. Great vid.

  • @ReidForrest

    @ReidForrest

    4 жыл бұрын

    I agree. Your rate of speech can be hard for some of us to understand. As someone who has done quite a lot of public speaking and training, slowing down your speech is essential. Not just for understanding the words, but allowing some time for comprehension of new material. Remember that if someone is trying to learn something new from you, they need a little extra time to process the information and comprehend it. It has less to do with accent and more to do with allowing your audience to learn and process the information you're presenting. I found your video very informative, though I did have to back it up, pause, and repeat many times.

  • @UmarAlFarooq
    @UmarAlFarooq Жыл бұрын

    Client-side seems like a complete waste of time for most websites.

  • @kis.stupid
    @kis.stupid Жыл бұрын

    Do you think prerendering a Blazor WASM app makes Blazor Server obsolete? Let's say Blazor WASM (prerendered?) + Web API vs. Blazor Server.