Blazor Web Apps - Goodbye JavaScript! I'm in love with C#

  Рет қаралды 143,839

SSW TV | Videos for developers, by developers

SSW TV | Videos for developers, by developers

Күн бұрын

Пікірлер: 410
@SuperToughnut
@SuperToughnut 4 жыл бұрын
My first computer was an IBM PC Jr. I wrote little graphical programs. I was just a kid, but it changed my life. Good times.
@bobweiram6321
@bobweiram6321 4 жыл бұрын
The PCjr had awesome learning materials.
@mattgoldman7094
@mattgoldman7094 4 жыл бұрын
It would be hard for me to overstate how excited I am for Blazor (or more specifically for a viable alternative to JavaScript based front-end development). Thanks William, great introduction!
@Alexandres668
@Alexandres668 4 жыл бұрын
Have you tried elm ?
@mattgoldman7094
@mattgoldman7094 4 жыл бұрын
@@Alexandres668 I've read up on it little but haven't tried it. As a C# developer I'm much more interested in Blazor, but if it wasn't around I would absolutely be playing with Elm :)
@ceeskaas8348
@ceeskaas8348 4 жыл бұрын
I like it how everyone say's goodbye to JS, yet in many cases you still need to use JS with Blazor.
@benjamininkorea7016
@benjamininkorea7016 4 жыл бұрын
I can attest to this. In order to make sounds play properly on. . . ahmmmm. . . Apple products. . . you're going to have to do some hacking with JSInterop.
@gabrielkarczewski4453
@gabrielkarczewski4453 4 жыл бұрын
Interop is a normal thing. It's similar on mobile - you might still need to write some Swift/Kotlin interop code despite using RN or Flutter. This still isn't the core app logic and will gradually become less and less code over time.
@brianandreasen2200
@brianandreasen2200 4 жыл бұрын
@@gabrielkarczewski4453 tell that to Airbnb
@azhar_waheed
@azhar_waheed 3 жыл бұрын
@@lukevincent4397 thats great. I am also not a fan of JavaScript
@miichaelsmedley
@miichaelsmedley 4 жыл бұрын
William is a great presenter. As Blazor continues to evolve, videos like this will help its popularity and fast track being a serious contender for Javascript frameworks
@imadabab
@imadabab 4 жыл бұрын
Thanks a million for this great introduction. Actually I don't consider it an introduction, I consider it a great reference in blazor. Appreciate it. I have subscribed.
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks @imadabab :)
@MaxSupercars
@MaxSupercars 2 жыл бұрын
Perfect video! Great summary about Blazor and also about "not often mentioned information". This the Ultimate Blazor Starter Guide for everyone... 🙂 Thank you! 🙂
@ulyssesmaclaren
@ulyssesmaclaren 4 жыл бұрын
So no more Angular, React and Vue? What are we gonna do with our lives now!? :)
@nunograca2779
@nunograca2779 4 жыл бұрын
Save some hair and headaches
@barryblack8332
@barryblack8332 4 жыл бұрын
Blazor is not ideal for all types of web application. That's not me, it's in the docs.
@SilvestreVivo
@SilvestreVivo 4 жыл бұрын
We go to use Svelte
@cherryt6853
@cherryt6853 4 жыл бұрын
@barry black, people was thought few years back Microsoft Asp not best but see now ASP Core. Best in all platforms also Xamarin compatible to Android, Iphone. Same way Blazor too. Wait and see blazor performance no more angular, react blah blah.... ☺
@uziboozy4540
@uziboozy4540 4 жыл бұрын
Well, Blazor is still years behind on experience compared to Angular, React & Vue, and not really considered production-grade software.
@dandoescode
@dandoescode 2 жыл бұрын
Great presentation William! Even though this is almost 2 years old, there is still loads of great information presented. Only thing I would add is that now for cloud deployments Azure Static Web Apps are a really great fit for Blazor apps. This gives static content served over CDN with the option of also using Function Apps if needed.
@william_dotnet
@william_dotnet 2 жыл бұрын
Thanks Daniel. Glad you enjoyed the presentation. I agree, Azure Static WebApps works great for serving a Blazor Wasm app. SWA + BlazorWasm + AzureFunctions + CosmosDb = my favorites :)
@dirkmuller6851
@dirkmuller6851 4 жыл бұрын
Thank you, well done: clear content, everything is readable and spoken in a pleasant tone.
@william_dotnet
@william_dotnet 3 жыл бұрын
Thanks Dirk :) I am really glad you liked it.
@chrome7036
@chrome7036 4 жыл бұрын
I remember those days of old, I started with a Radio Shack TRS-80. I recall typing a bunch of lines if what I now know to be code just so I could watch it snow on my television screen.
@benjamininkorea7016
@benjamininkorea7016 4 жыл бұрын
Me too! Remember Pyramid?
@PaulSebastianM
@PaulSebastianM 2 жыл бұрын
Thank you for an awesome presentation!
@Parmpita
@Parmpita 4 жыл бұрын
its awesome i build multiple application its fast robust and work like hell no need extra javascript code no angular or any scripting needed its awesome when u work u will love it
@william_dotnet
@william_dotnet 4 жыл бұрын
Glad you like it :)
@pennywalker9456
@pennywalker9456 4 жыл бұрын
Great presentation Will! Thank you.
@mfajrin6010
@mfajrin6010 4 жыл бұрын
I think blazor webassembly still in infancy , due to refreshing to UI parts still slow. Might take several updates so UI performance is acceptable enough comparing to current javascript framework stack.
@charles-y2z6c
@charles-y2z6c 4 жыл бұрын
M Fajrin I am old. I look at it like windows 95 sitting on top of DOS. Was a few revisions before Windows was the OS too
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes it is very new and there are pieces missing. But hey, all the other frameworks had the same problem. Heck AngularJS got completely rewritten. With time and good feedback from the dev community all these frameworks grown and become more and more useful.
@charles-y2z6c
@charles-y2z6c 4 жыл бұрын
William Liebenberg I am going with it. I have an intranet business app I am writing now. Get all the data from API
@HermanWillems
@HermanWillems 4 жыл бұрын
It needs AOT and get rid of the big fat slow .NET runtime.
@i.mahdihosseini
@i.mahdihosseini 4 жыл бұрын
it's great. I just don't like the 700kb size. I know they packed .net in there but Vue is like 20kb and you can use it with typescript to reduce headaches
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes the size isnt great right now, but it will shrink with the near future updates. Hope one day soon the dotnet wasm runtime will be baked into the browsers :)
@i.mahdihosseini
@i.mahdihosseini 4 жыл бұрын
@@william_dotnet if they add it to all browsers I'll probably never use JS/TS again. it'll be like full-stack JS/TS vs full-stack C#. the answer is easy for me!
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes I don't think Blazor was ever meant to squash Js/TS. It's just another choice for devs to choose when it suits their needs. The idea of fullstack C# is really attractive to many people who find it hard to get by with JS/TS frameworks.
@lifeinloop
@lifeinloop 4 жыл бұрын
@@william_dotnet Hi. I've already asked that in a issue in a Microsoft Blazor GitHub repo. That would be killer. But right now they say is just downloads .net the first time...
@mattgoldman7094
@mattgoldman7094 4 жыл бұрын
The Blazor team have said their target is 50kb, which isn't far off. And is easily comparable to other client side development frameworks.
@abdulhamidalsalman
@abdulhamidalsalman 3 жыл бұрын
Thank you awesome William for the Best intro to Blazor on the web.
@william_dotnet
@william_dotnet 3 жыл бұрын
Thanks @Abdulhamid - I'm glad you like it :)
@asicdathens
@asicdathens 4 жыл бұрын
The problem with JS is the total anarchy. Until TS (developed by Microsoft ) any variable could be assigned any data type and also there are no private members. This was total chaos and mayhem unsuitable for large applications. Blazor is not 100% ready (I have some problems in my daily work ) but its way much better than the alternatives.
@william_dotnet
@william_dotnet 4 жыл бұрын
can you perhaps share those problems with us? could help others avoid them or help you solve them.
@Gray-Wolf-Media
@Gray-Wolf-Media 4 жыл бұрын
I have done an example of the Spring Pet Clinic using Java/Spring, but now I am planning on remodeling it in Blazor WebAssembly and thinking about dotnet core hosted. Should be a good full featured project to get through
@william_dotnet
@william_dotnet 4 жыл бұрын
That sounds great John - perhaps you should share it on the awesome-blazor github page - github.com/AdrienTorris/awesome-blazor
@_prothegee
@_prothegee 3 жыл бұрын
Wooww, much appreciate, for demo-ing this with vscode
@hiphopheaven
@hiphopheaven 4 жыл бұрын
When we no longer need javascript interop in Blazor we can really say goodbye to javascript
@chrisdupuy7749
@chrisdupuy7749 4 жыл бұрын
Seems like have heard this story before..what was its name..oh yeah, silverlight
@ArnabAnimeshDas
@ArnabAnimeshDas 4 жыл бұрын
@@chrisdupuy7749 silverlight was like java which was supported only on windows, slow and insecure.
@ArnabAnimeshDas
@ArnabAnimeshDas 4 жыл бұрын
@@chrisdupuy7749 but yeah. I also believe that js is going nowhere.
@NathanHedglin
@NathanHedglin 4 жыл бұрын
WASI ! It’s coming :-)
@armisteadab
@armisteadab 4 жыл бұрын
Any reason you use VSCode over VS2019? I use VS2019 due to my background in C# and wonder if I'm missing out. Great vid, thanks!
@william_dotnet
@william_dotnet 4 жыл бұрын
thanks :) for the demo's in the videos I chose VSCode to entice front-end devs a bit more :) if i did everything in VS2019 then I probably wouldn't have got a lot of attention. But not to worry, so far I've not found anything that you're missing out on by sticking to VS2019... the only thing I can think of is perhaps intellisense in vs2019 is a bit more reliable than vscode for blazor/razor files.
@gabrielkarczewski4453
@gabrielkarczewski4453 4 жыл бұрын
​@@william_dotnet I really appreciate you using vs code, but not for that reason. It's super annoying how all the C# tutorials use VS, whilst a lot of developers (like me) use macOS or Linux instead of Windows, then there is lots of googling on how to do fancy IDE stuff with the CLI. If you do stuff the vscode way, one can apply those things with every editor. BTW I subscribed to your channel and I hope you create more great .NET content :)
@davestorm6718
@davestorm6718 3 жыл бұрын
@@gabrielkarczewski4453 - You can load VisualStudio on the Mac (since 2015), and VS2021 will run on Linux. The thing that drives me nuts about VSCode is that it's very easy to break your settings with a nasty plug in, then spend hours trying to get it to work again properly. The other thing is handling more than 1 project becomes unnecessarily tedious. I use both on Apple and Win.
@gabrielkarczewski4453
@gabrielkarczewski4453 3 жыл бұрын
@@davestorm6718 sure, vscode isn’t without flaw. VS for mac despite its branding is totally different from VS for Windows, basically it’s just rebranded monodevelop, so any tutorial based on Windows VS cannot be directly followed on it.
@KishorTiwari
@KishorTiwari 3 жыл бұрын
Thank you so much man. You have packed everything up!!!
@nikilk
@nikilk 4 жыл бұрын
I'm glad Microsoft is building alternative ways to build web apps. However I don't see this replacing frontend technologies for the most part anytime soon. Why? 1 - There are way more TS / JS developers than you have C# devs. 2 - WASM is way more larger in footprint compared to apps written with TS / JS, so good luck having to download a ton to bootstrap your application. In general there is no getting away from JS as frontend UI libraries have direct access to the DOM, while WASM does not have DOM access. To overcome this frameworks like Blazor has JS helpers to perform DOM mutations, that's invisible to users of the framework. WASM was designed to allow computationally heavy functions to run at native speeds, and then offload all the UI responsibilities to JS.
@william_dotnet
@william_dotnet 4 жыл бұрын
you are on the money there Nikil! Blazor was never meant to replace any of the existing frameworks. Its just another for us to consider when architecting our solutions. Yes, we still need JS but a lot of it is being abstracted away and given enough time until possibly the LTS version of Blazor we should be able to build full enterprise apps in a true "Blazor Native" way. I can't wait! If the tech is still not mature enough for a team to adopt for their solution then they shouldn't. But so far it has already suited some of my use cases and is working beautifully.
@Bgrosz1
@Bgrosz1 4 жыл бұрын
"1 - There are way more TS / JS developers than you have C# devs. 2 - WASM is way more larger in footprint compared to apps written with TS / JS, so good luck having to download a ton to bootstrap your application." Perhaps, but I think both of these points are fairly weak. 1: Developers will switch over to new tech pretty quickly if it is solidly better than what came before. 2: Every year processors, memory and storage get faster, while the latter two get larger and less expensive. This problem is not much of a problem right now, but will lessen and disappear in short order.
@vichardvideo5017
@vichardvideo5017 4 жыл бұрын
@@Bgrosz1 WASM can use with javascript disable? Because there is more than analytics solution that will be in Javascript. If no using native ui in wasm, html and css gonna use some resources again
@nikilk
@nikilk 4 жыл бұрын
@@Bgrosz1 I agree with the point that developers will switch over to something that's more solid, but is that building applications using C# and transporting it over to WASM ? Time will tell. However about the second point, about improvements in hardware making the size of wasm applications less of a problem, its always a comparison game. If a company can improve conversion on devices using a smaller footprint that's always going to win out. It's always "relative" to another technology of the time.
@zimcoder
@zimcoder 4 жыл бұрын
I have already shipped 3 enterprise systems built on Blazor while JS lovers keep telling me there is no getting away from JS. I was developing with Angular and since I started using Blazor, I have not looked back. I don't think its a matter of Blazor replacing JS for all developers, it makes sense for C# developers and it does not matter how many JS developers are out there, that is a moot point, there was a time there was no C# developers but plenty of Java and C++ developers. As for JS helpers performing the DOM mutations, who cares, all 4tg gen languages ride on different language libraries at OS level, that again is none issue to Blazor development.
@odelljl
@odelljl 4 жыл бұрын
Well presented and timely as our organization is getting ready to release lean in to Blazor
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Jeffrey :) hope it goes well... feel free to send me any questions if you get stuck.
@kolya7921
@kolya7921 4 жыл бұрын
I was a .net coder but I realize that everything runs in web will be compiled in html/css & js. So I have chosen js all the way with typescript. I’m excited to try this blazor thing since It was long time ago I ve used asp.net MVC applications🤣
@william_dotnet
@william_dotnet 4 жыл бұрын
Yea I think its worth a try for sure. We are working on a big enterprise project with Blazor right now and its delivering on all the promises - and the client is very happy and impressed.
@avishatz8369
@avishatz8369 4 жыл бұрын
@@william_dotnet no performance issues?
@TheCameltotem
@TheCameltotem 4 жыл бұрын
I've rewritten a few React apps already, I stuggle so much with JS but with .net im better, so blazor just feels so natrual. I freaking love it. Just hope it grows!
@joshemm4991
@joshemm4991 3 жыл бұрын
the SV 328 kinda looks like an Atari 800, even the tape drive, where i started. What OS was it?
@aceleful
@aceleful 4 жыл бұрын
Is there any information available on hosting blazor server app in a load balancer with sticky sessions not enabled on onpremise servers. Signalr is not supporting in load balancer I think.
@jamesmelvin3071
@jamesmelvin3071 4 жыл бұрын
If you arent maintaining an old application, you should rather use JSON Web Tokens (JWT), rather than the traditional session-based authentication. That way you lose the dependency on sticky sessions. Any server in the cluster can handle the request and if your session is for server caching logic, I would rather look at Redis personally. Signal R works with JSON Web Tokens seamlessly
@william_dotnet
@william_dotnet 4 жыл бұрын
@@jamesmelvin3071 have a look at using Azure SignalR Service - lots of pain removed for scale out scenarios
@william_dotnet
@william_dotnet 4 жыл бұрын
Sorry, meant for Sinha :)
@NathanFranckGameDev
@NathanFranckGameDev 4 жыл бұрын
Blazor isn't native speed [yet] you need to wait until 2021 for .Net6 to get proper AOT compiling. Currently Blazor doesn't perform any better than Javascript, which is a bummer.
@william_dotnet
@william_dotnet 4 жыл бұрын
exactly... AOT was delayed to .NET 6 --- bummer! Can't wait for it to even show up in the previews!
@zerg100500
@zerg100500 4 жыл бұрын
Thank you. It is a huge advantage to use the same language in the front and end. But, it will stop my evolution as developer, won't it?
@william_dotnet
@william_dotnet 4 жыл бұрын
I doubt it. You shouldn't stick to just one language for all solutions... there's a lot more than C#, JS/TS to choose from to evolve as a developer... python, go, rust, etc. Pick the right tool for the job :)
@zerg100500
@zerg100500 4 жыл бұрын
@@william_dotnet yep... You could use any tools to build your pet project. But, when you work in invest banking you do use most useful stack for your command. And if most of your mates are c#-devs, the best choise is to use the language everywhere, not typescript even. It is just business, nothing personal😁
@georgios_georgiou
@georgios_georgiou 4 жыл бұрын
Aaah too bad Java doesn't have anything similar but only the infamous cumbersome JSP... Like the React framework tho! Wish Oracle does sth similar soon or I 'll really switch to C#!
@georgepagotelis
@georgepagotelis 4 жыл бұрын
It means you won't have job stability as companies will train the 457s to come from overseas because they know ".NET Core, Blazor". With Angular/React you are at least specialised and hard to replace and worth something. Working for different companies I had many juniors fumble through .NET core code but could never grasp both client/server technologies.
@LeeOades
@LeeOades 4 жыл бұрын
Awesome to hear a shout out for MediatR!
@wattheshet
@wattheshet 4 жыл бұрын
Oh I am so glad there is blazor. I fucking hate JavaScript. Hope this will be adopted by a lot of developers
@teamomiparientes3769
@teamomiparientes3769 2 жыл бұрын
Marvelous presentation..thank u
@william_dotnet
@william_dotnet 2 жыл бұрын
Im glad you enjoyed it :)
@joshemm4991
@joshemm4991 3 жыл бұрын
whats the diff between breakpoint in Devtools and breakpoint in VS? can you breakpoint javascript interop?
@mitchlabrador
@mitchlabrador 4 жыл бұрын
Thanks William! Great intro video into Blazor and how it fits into the web development eco system.
@Erril_Ferndal
@Erril_Ferndal 2 жыл бұрын
Love Blazor! I say also goodbye to JS. Blazor WebAssembly rocks!
@sriram151092
@sriram151092 2 жыл бұрын
Can you make a video for the VSCode extensions, 1. You generally use 2. You specifically used for this Blazor project
@MhmmDonuts
@MhmmDonuts 4 жыл бұрын
At the current stage of development of Balzor i have to say that I prefer using Angular 10. Maybe one day I will switch to blazor cauze im developing backend with c#, who knows 🤔🙏
@leakyabstraction
@leakyabstraction 4 жыл бұрын
The issue is that I never liked Razor. Even though I hate JavaScript, and Typescript is just tolerable (besides a few nice features here and there), it was actually a nice aspect not to have to use Razor. And Angular is pretty powerful for proper web apps, plus having separate web APIs provide actual value and flexibility in and of itself since multiple clients can consume them. Not to mention the clearer separation between business logic and presentation, which (at least to me) feels quite nice and clean. So not sure it will be such an easy sell to me, but at some point I'm sure I'll try it out.
@sabuein
@sabuein 2 жыл бұрын
Thank you so much!
@groachslayer
@groachslayer 4 жыл бұрын
Nice, but JS is only part of the equation. The markup (HTML/CSS, designed for _text_ markup 25+ years ago, before "apps"), is also a huge "walk on ice" nightmare. Particularly regarding layout that should (but doesn't) "just work". How will you abstract that away? (says this former Xaml/Silverlight Product Manager)
@william_dotnet
@william_dotnet 4 жыл бұрын
Hi David - love your work!! Over the years I've wished many many times for something to replace HTML/CSS... I remember when Avalon first came out and it just blew my socks off! I was deeply entrenched with DirectX/Direct3D back then writing custom UI frameworks in game engines.... then being able to build awesome UIs with simple XAML (and being backed with d3d rendering) was an absolute dream come true. Sadly I've not done any any XAML work for quite some time... but if we can replace html/css with something similar for web apps... i'd be all in :) What do you think would/could happened in the future for html/css ??
@groachslayer
@groachslayer 4 жыл бұрын
​@@william_dotnet it would take a new standard from the ground up designed for Applications, and then browsers support both standards either indefinitely, or until HTML is retired. But such would also require the monumental task of showing developers the value of it. MS open-sourced .NET, I don't see why they don't open up Xaml - as it was at least application-focused.
@william_dotnet
@william_dotnet 4 жыл бұрын
@@groachslayer open sourcing Xaml... that would be something special :) hopefully not something that we have to wait many years for.
@stevenbense3504
@stevenbense3504 4 жыл бұрын
Excellent introduction and then some! Thank you William. This sold me on Blazor. Does anyone know how to inject HttpClient instances for multiple API endpoints? From the example shown in the video at 43.17 it seems the base Uri is defined, meaning components just provide the rest of the Uri when invoking it. I often have many API endpoints to manage, so a way to provide an injectable component for each would be helpful.
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Steven Yes you can configure multiple http clients... With builder.Services.AddHttpClient( ... ) you get a scoped client that you can use to set the BaseAddress. (hopefully code formats ok in youtube:) ) builder.Services.AddHttpClient(client => { client.BaseAddress = new Uri("endpoint-a.com"); }); builder.Services.AddHttpClient(client => { client.BaseAddress = new Uri("endpoint-b.com"); });
@W5AKC
@W5AKC Жыл бұрын
I think both Server and WASM can be used together...Server hosts an API (better security) and WASM for the client UI to call the api. Would this not work well?
@Da-gh7cx
@Da-gh7cx 4 жыл бұрын
I hate angular and react, its a complete mess in large projects. For me the ideal is SSR + a small vanilla js library i wrote which does partial DOM updates simulating a SPA application. That way the app is lightweight and all logics and stuff runs on ss, no jsons, serialization/deserializations, model bindings and so on. Blazor definitely sounds interesting, will wait till it becomes more mature.
@TomBauto
@TomBauto 4 жыл бұрын
Wow sir that was an awesome tutorial! Thanks for covering those areas and incoming features. I too are having hard time managing my time to learn these ocean of JS framework, good thing Microsoft has invested in Blazor. Will definitely be able to utilize my C# knowlege. Btw I was wondering if you can also share Blazor + Xamarin. I was thinking if its possible to develop almost native mobile app using that combo. Thanks!
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Tom :) Check out the Mobile Bindings for Blazor ... im not an expert in that area (yet) but I think you will find it useful.
@j4nch
@j4nch 4 жыл бұрын
Is there some state management library yet? I like the immutable approach of NXGS
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes. there is Fluxor :) Check out the video from my team mate Chris Clement - kzbin.info/www/bejne/qXLceWCFZcl5l6s
@j4nch
@j4nch 4 жыл бұрын
@@william_dotnet nice! Not a big fan of the effects of ngrx, but better than nothing! I've to check now if there is some library for the sync with firebase
@gill24
@gill24 4 жыл бұрын
The most important factor given this date and time. 1. Are you able to meet the client's requirements? 2. The time to market. Seems like Microsoft addresses all you issues... yeah?
@william_dotnet
@william_dotnet 4 жыл бұрын
For the project I'm running the last few months it has been absolutely fantastic :) no show stoppers.
@juleswombat5309
@juleswombat5309 4 жыл бұрын
Since the demise of Silverliightf, I have avvoided any Web side development. I tried to learn java script and HTML 5 butt I just could not be productive, without a decent IDE and intellisense. But before I dive back into Web client designs, I need to be convinced that Microsoft is more committed with this. NET webassembly than Silverlight. Also need access to a canvas, with C# library for drawing lines and graphics onto canvas. Without any reliance upon poorly supported third party Nuget packages. Any idea whenMicrosftt themselves will provide firm support to canvas graphics?
@william_dotnet
@william_dotnet 4 жыл бұрын
good question... not sure I can help you to answer that... I've only previously used WebGL for some serious 3D rendering in the browser but that was a few years ago.
@harryperales
@harryperales 4 жыл бұрын
great video, i hope you could put some timestamps as well for those people who want to go past the basic app bits.
@william_dotnet
@william_dotnet 4 жыл бұрын
Great idea - I'll get that done - thanks :)
@vmehta
@vmehta 3 жыл бұрын
Thank you William. Your presentation skills are polished and elegant, to say the least.
@william_dotnet
@william_dotnet 3 жыл бұрын
Thanks Vivek - glad you like it :)
@abobonickname5696
@abobonickname5696 4 жыл бұрын
Last time I checked I still needed Javascript but I had to run it through c# interoperability. If Javascript is completely gone then it will be awesome
@william_dotnet
@william_dotnet 4 жыл бұрын
The interop isn't a problem. So far we've used it to bring in a lot of npm packages and wrap them up in our own Blazor components. The wish for JS to be gone completely won't come true, but at least we have to option to wrap it up and hide it away :)
@nasirpopalzay1973
@nasirpopalzay1973 4 жыл бұрын
I would rather wait a couple of years before learning Blazor.
@MaxPlayle
@MaxPlayle 3 жыл бұрын
What VS Code theme is this?
@Mfbzai
@Mfbzai 4 жыл бұрын
Honestly I was developing with Blazor before, but how do you can like just "Set focus to inputbox" without javascript?
@william_dotnet
@william_dotnet 4 жыл бұрын
Blazor wasm is still maturing so some of the simple parts aren't in the 3.2 release... but what you're asking for is already out in the .NET 5 Preview 8 release - check it out: devblogs.microsoft.com/aspnet/asp-net-core-updates-in-net-5-preview-8/
@nayanc4353
@nayanc4353 4 жыл бұрын
Isn't it already late for Blazor?
@HermanWillems
@HermanWillems 4 жыл бұрын
@@william_dotnet So they have to do all the API's manually ?? And therefore do not have everything yet? Damn. In Rust language to webassembly we have 100% of all API's available in the browser. Because it's generated automatically. This is manual labor ?? lol
@chuckdawit
@chuckdawit 4 жыл бұрын
this dude is incorrect about the debugging in his first 2:35 I use one tool for debugging both .Net and Ng. Visual Studio Code. No browser debugging needed.
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes vscode solves that issue but not for everyone. Lots of .net devs use VS to write their Api/app code... Jumping between the two tools to debug is the pain point I mentioned.
@Albertkallal
@Albertkallal 4 жыл бұрын
Still a pain to deal with JavaScript. And the Hodge Podge of shoving in js library after js is becoming a cluster F of epic proportions. And the idea of sending source code (js) for web pages and then compilation at page load time is beyond insane. It would be far better if the js pre-compiled then then sent to browser in binary format. But then one needs something to pull ONLY the parts you use. Where does this insanity stop? Jquery, jquery.ui, bootstrap.js, and then toss in a few more js libraries? In 4 more years I'll be up to what - 9 js libraries? Either give me a form of some type of system that ONLY pulls in the js library code used and ALSO send it to the browser pre-compiled. This is exactly what Blazer does. We just can't just keep adding js libraries after js libraries. So some nice dialog widget comes out and now I have jquery.ui for some dialogs, and 2-3 more js libraries because I find a really nice dialog library for one more nice widget? This can't go on forever and we just can't keep tossing more and more js libraries into the browser. Blazer is brilliant in this regards. The only significant advantage of sending source code as text and compilation in the browser is it allows easier updates to browsers and js. But now that all these js libraries and browsers changes are maturing and rate of change is slowing to a dull roar. It's thus time to adopt pre compilation and ONLY sending down the binary code you actually used.
@everyonesview
@everyonesview 3 жыл бұрын
Awesome, mate!
@ericblankenburg
@ericblankenburg 4 жыл бұрын
Microsoft has to do more to create components that wrap browser API's like WebRTC (or now Azure Communication Services which uses WebRTC), geolocation, HTML Drag and Drop, Canvas, Touch API, etc. Yes, I know about interop, but why make everyone reinvent the wheel? Microsoft should offer a standard set of components.
@william_dotnet
@william_dotnet 4 жыл бұрын
I agree that more OOTB components would be awesome - but Blazor is still a young framework. To get all the features you describe isn't minor effort... it will take time. Plus, Blazor is Open Source and the community is growing faster and faster so mayyyybe the wait wont be too long :)
@tajuddinkhan5206
@tajuddinkhan5206 3 жыл бұрын
3:09 imagine how many time we will shut down the computer for copy and pasting the stuff if that keyboard used today.
@izwansystec87
@izwansystec87 3 жыл бұрын
so cool!!.. i like it very much
@CryptoJitsu
@CryptoJitsu 4 жыл бұрын
THANKS SO MUCH! This is very exciting technology! My first was the Atari 800XL and it looked very similar to yours... I had a couple TAPE games that I remember would take like 10+ minutes to load and fail at least 50% of the time... Id tell it to load the game, then go outside and play awhile and then come in and hope for the best... good times!
@william_dotnet
@william_dotnet 4 жыл бұрын
HAHA that is exactly what we did... made the games feel so much more worth playing too :)
@ClassicRollPlayer
@ClassicRollPlayer 4 жыл бұрын
@@william_dotnet exactly!!!
@jainr67
@jainr67 4 жыл бұрын
Hi William, Thanks for putting the efforts in making this video, I have also started using Blazor at my workplace, it is really awesome, just a few things are still not mature enough or I would say many, as I have not explored it in deep yet. 1. Takes a lot of time to restart the app again and again for making any change 2. Debugging is not mature enough, more work to be done 3. some of the things are not straight forward with putting the validations But I am sure, Microsoft is going to fix them soon, not your problem :) On a side note, I wanted to ask, what is this extension you are using to in your Visual Studio Code, I can't see icons for my razor files.
@william_dotnet
@william_dotnet 4 жыл бұрын
> 1. yes -bit slow now but not tooo bad. Still getting better with each preview > 2. I've only run into a couple of crazy stack-traces that made no sense and also an exception that would never show up in vs (only in the browser), but otherwise debuggin has been fine. > 3. can you expand on that please? > side note. I use 2 icon packs in vscode, one is Material Icon Theme and the other is vscode-icons. Try them out and see if it works
@travisshow308
@travisshow308 3 жыл бұрын
Well, we have hot reload now :)
@wa1gon
@wa1gon 4 жыл бұрын
I have been doing Angular since AngularJS and Blazor is what I have been waiting for. JS/TS Sucks! Angular with TS is a great improvement, but upgrading Angular is painful after 5 or 6. Great video. Picked up a few gems in it.
@jerryodeghe
@jerryodeghe 4 жыл бұрын
How did you come to the conclusion that JS sucks, have you read the specs for the language? My guess is that you have not
@wa1gon
@wa1gon 4 жыл бұрын
@@jerryodeghe I hardly need a recipe to know that I don't like the food. Reading the spec won't make JS suck less. One of the companies I have worked for spent millions on debugging crappy JS. JS makes it hard to write good code and by hard I mean that it takes more time and time is money. As another KZbinr pointed out: JavaScript: The Definitive Guide is 1096 pages long. and JavaScript: The Good Parts is 172 pages long. I am not saying that there aren't some really cool things about JS, but JS bites. Yes, I am sure it works just like the spec says it should work, but that doesn't mean the spec was smart about it. The problem is that JS was originally designed to serve a special purpose. Then everyone starts to use it, then wanted more so it became a multi-headed beast. Added to that JS has to be backward compatible or it breaks millions of web apps. It isn't a language that was thought out with the long term plan of being a large scale language, it was a bunch of hacks that suddenly started to be used for large scale apps, which it wasn't really designed for. That is why WASM and Blazor is such a breath of fresh air. I have been working in Angular since AngularJS because it was the only game in town. Blazor was only released 5 months ago and I am twice as productive with it as I am Angular even with only started to learn it about a month ago.
@jerryodeghe
@jerryodeghe 4 жыл бұрын
Darryl Wagoner I see you points, but Crawford’s book was written a over a decade ago. I know JavaScript had some bad decisions Branden made in the design, but most of the problems the language have today comes from two place: badly written code
@jerryodeghe
@jerryodeghe 4 жыл бұрын
And doing two much. But the language is still powerful enough to deal with
@wa1gon
@wa1gon 4 жыл бұрын
@@jerryodeghe This is true, but the same can be said about ASM, but I don't want to program in it.
@bhaskarkaushal8553
@bhaskarkaushal8553 4 жыл бұрын
What's wrong with server-side Typescript frameworks and angular . They also have a common language Javascript ?
@william_dotnet
@william_dotnet 4 жыл бұрын
nothing wrong with them. Often code up node/express+angular apps. Blazor just gives us the choice of doing fullstack .net vs fullstack JS. For some people its more exciting or fits their skillsets better
@qbasic16
@qbasic16 4 жыл бұрын
Great video! Blazor seems really cool but it is useless for websites where SEO is important, except if we are able to do sever-side rendering. Is sever-side redering available?
@william_dotnet
@william_dotnet 4 жыл бұрын
yep you can do SSR with Blazor -- i've not tried myself but found lots of recent hits on google how to enable SSR. Its a given though that you will need a server-side to your application to achieve this ;)
@cryptolobo2273
@cryptolobo2273 4 жыл бұрын
Awesome video!
@william_dotnet
@william_dotnet 4 жыл бұрын
Glad you liked it Thomas :)
@rafilalars6347
@rafilalars6347 4 жыл бұрын
Nobody can say goodbye to javascript, it's working everywhere web, server, mobile also it's very portable languages and a huge community behind it.
@katimboallan4605
@katimboallan4605 4 жыл бұрын
I gree 100%
@toferj7441
@toferj7441 4 жыл бұрын
Yep. Javascript isn't going anywhere. Blazor on the other hand.... I don't see it replacing front end JS (vanilla, angular, react, vue or whatever)... Nope.
@jaym9846
@jaym9846 4 жыл бұрын
How does a wasm page get data from a database back on the server?
@william_dotnet
@william_dotnet 3 жыл бұрын
with Blazor Wasm apps you still need to use an API to securely connect to your database. But, if you want to take the risk or if you are working on a low-care type application you can talk to CosmosDB directly from your Blazor Wasm app. Having a secure/private connection between an app that runs on a user's browser into your database isn't a great solution.
@Marcel-dt5du
@Marcel-dt5du 4 жыл бұрын
The initial load time - and that's reallllly important - was really high and that's even when running locally
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes, locally is also in debug mode without any assembly trimming. The load time reduces when running in release mode and with some trimming applied :)
@hamzehrezaei909
@hamzehrezaei909 3 жыл бұрын
hi.how can call procdure in webAssmbly blazor
3 жыл бұрын
The subwoofer killed me at 29:54 :)
@MortezaDalil
@MortezaDalil 4 жыл бұрын
Thanks,but you said "Goodbye JavaScript!" How can you manipulate DOM without interrupt?
@isaacayodejii
@isaacayodejii 4 жыл бұрын
you took that literally didn't you? you must be fun at parties lol.
@william_dotnet
@william_dotnet 4 жыл бұрын
Definitely still need JS for DOM interactions -- but you can already write fairly large/complex applications without needing to use JS. And as more and more components/libraries are released we will depend on JS less and less. But, like I said in the video - we get the best of both worlds (.NET Nuget and NPMJS)... you can still pull in your fav npms and use them in Blazor. Nothing stops you from doing that.
@isaacayodejii
@isaacayodejii 4 жыл бұрын
@@mohasahal1771 man that's a popular joke and I'm sure he understands. It is not this deep.
@kourosh234
@kourosh234 4 жыл бұрын
Would you make tutorial on doing Steve Sandersons demo apps?
@william_dotnet
@william_dotnet 4 жыл бұрын
Yup I'm planning on making some more Blazor videos - stay tuned :) Which demo apps in particular that you're interested in?
@kourosh234
@kourosh234 4 жыл бұрын
@@william_dotnet Glad to hear that. Thank you. Pick anything. His demos are great.
@mayureshs80
@mayureshs80 4 жыл бұрын
Thanks for the session. Hope you have more coming. Curious what font you have in vs code?
@william_dotnet
@william_dotnet 4 жыл бұрын
I swap between Cascadia Code and Fira Code now and then :)
@BarbarosYurttagul
@BarbarosYurttagul 4 жыл бұрын
Awesome video. Thanks.
@denzeldelacruz8409
@denzeldelacruz8409 4 жыл бұрын
Does anybody know what font he's using in VS Code?
@william_dotnet
@william_dotnet 4 жыл бұрын
I think I was using Cascadia Code :) -- I also use Fira Code sometimes.
@denzeldelacruz8409
@denzeldelacruz8409 4 жыл бұрын
@@william_dotnet Awesome! Thanks and thank you for the good content as well. Blazor looks really promising.
@william_dotnet
@william_dotnet 4 жыл бұрын
@@denzeldelacruz8409 my pleasure :) Yea it is shaping up really nicely with new features and the performance boost from RC1 this week.
@swankyshivy
@swankyshivy 3 жыл бұрын
william great video...can you show us what a user can see if they look under the hood in a blazor app in terms of code? also maybe cyber security issues with blazor wasm
@hexorf
@hexorf 3 жыл бұрын
That would be an interesting talk! 😊 Atm, Blazor WASM might be just a bit more secure than Angular/React. DLLs have checksums, which are then verified before loading them into memory.
@davidcfrogley
@davidcfrogley 4 жыл бұрын
Couldn't get the source code to show up in the debugging dev tools. Couldn't hit any breakpoints in VSCode or Visual Studio either.
@william_dotnet
@william_dotnet 4 жыл бұрын
Did you start chrome/msedge with remote debugging enabled?
@davidcfrogley
@davidcfrogley 4 жыл бұрын
@@william_dotnet Yes
@BahawalTV
@BahawalTV 4 жыл бұрын
The only benefit of blazor seems to be sharing of business logic in the browser and on the server. What are the other alternatives in the JavaScript world?
@william_dotnet
@william_dotnet 4 жыл бұрын
well if I understand your question correctly, in the JS world you already have full-stack JavaScript with NodeJS (server-side) and many many JS/TS (client-side) frameworks -- this allows you to reuse a lot of your code between the client and server.
@toferj7441
@toferj7441 4 жыл бұрын
It downloads *6+MB* for that little page? I don't think this will kill JS. Note that this couldn't even work without their own JS framework being loaded. So that's not saying goodbye to JS. Web assembly is exciting. It will allow things that couldn't be done before. IMO, making SPAs isn't really it. It's meant for processor entensive applications, not shopping carts, weather apps, todo apps, and the like. Look how long it took to load that page the first time. 🤦🏽‍♂️
@william_dotnet
@william_dotnet 4 жыл бұрын
For LOB apps that staff will be looking at for hours a day, that loading time is no concern. One of the major wins for Blazor come from being able to easily reuse/integrate with existing enterprise libraries without rewriting in a new language :)
@leefig6089
@leefig6089 4 жыл бұрын
Outstanding
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Lee :)
@rynopot
@rynopot 3 жыл бұрын
Spectravideo 328! I found another person who owned one!
@JAY0893
@JAY0893 4 жыл бұрын
I'm in love with blazor (y)
@johlits
@johlits 4 жыл бұрын
Thank you Microsoft for letting me keep my hair
@marcosphs
@marcosphs 3 жыл бұрын
Dear William, how to add Blazor components to an MVC application?, how to add Blazor components to an MVC application?
@iancarr3923
@iancarr3923 4 жыл бұрын
Excellent video, thanks. The logging and software arch segments were most useful.
@william_dotnet
@william_dotnet 4 жыл бұрын
Yea i was so happy when i could just reuse my favorite libs :) - mediatr, serilog, fluentvalidations, and even some old algebra libs i wrote from a few years ago... just works :)
@JitendraSharma-NvMusic
@JitendraSharma-NvMusic 4 жыл бұрын
Really Nice content !! Thanks a Lot !! :)
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Jitendra :)
@ripper511
@ripper511 4 жыл бұрын
It hurts my eyes to se the word 'private'
@william_dotnet
@william_dotnet 4 жыл бұрын
yea, now that you mention it ... I can't stop looking at it :)
@nickeax
@nickeax 4 жыл бұрын
Thank you for the great video.
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Nick :)
@JerrodVolzka
@JerrodVolzka 3 жыл бұрын
Thanks for saying this would use web assembly early. I was looking for a blazor-server intro. Thumbs up, but you wont get a view for it.
@davidwhite2011
@davidwhite2011 4 жыл бұрын
Are there any efforts to mitigate the weakness it has?
@william_dotnet
@william_dotnet 4 жыл бұрын
Yes there is really good roadmap on the Blazor github that shows what the team have been or will be working on. Lots of perf and productivity updates are coming.
@william_dotnet
@william_dotnet 4 жыл бұрын
Which weaknesses are you most concerned about?
@henrik3098
@henrik3098 Жыл бұрын
thanks bro
@vitaliiyarema
@vitaliiyarema 4 жыл бұрын
Great. I appreciate Blazor.
@adrired00
@adrired00 4 жыл бұрын
Incredible video! I'm just .NET CORE and React.js developer (and trying to learn Angular.js) and Blazor WASM is fking amazing. I'm sharing this with my collegues!
@william_dotnet
@william_dotnet 4 жыл бұрын
Thanks Adri :) reach out if you need help with anything
@KIMTOOFLEX
@KIMTOOFLEX 4 жыл бұрын
Thank you ❤
@BrickieBuilder
@BrickieBuilder 4 жыл бұрын
Tbh TypeScript is way ahead of c# these days and angular is not hard to learn. As usual blazor feels like a solution to developers who can't move forward
@william_dotnet
@william_dotnet 4 жыл бұрын
I don't agree with the notion that this is for devs who can't move forward. Each framework has its opinions and not everyone agrees with them for whatever reason. Heck they can all be written in typescript but it doesn't mean everyone is going to love it. Compare React vs Angular vs Vue for instance. Not all angular devs love react and vice verca. Its just personal choices, bias's and actual project requirements that make us choose a particular framework. Blazor is just another framework added to the mix - and with language changes being added to C#9 and beyond this could make it suitable for more and more teams. Do you see the point I'm trying to make?
@matiaslauriti
@matiaslauriti 4 жыл бұрын
@@william_dotnet I don't agree with the notion that Blazor is just another framework added to the mix... Blazor is like trying to use VisualBasic in 2020 for coding a microcontroller... you are out of the loop... Blazor looks like it is design for people stuck... I use PHP (Laravel) for backend or NodeJS, I use React or Vue for Front end with some flavors like Bootstrap or Tailwind css, I use Python for some computational functions (PHP will not satisfy performance in that case). I did learn Go, but I hated it, I prefer Rust... I know C# and I love it for Unity3D and creating windows apps... and thats it... you have to learn languages DESIGN for what is meant to be used... C# is awesome, but it will never be usable for web (front end)... Blazor is absolutely ugly... don't you see the C# community is already small ? Why do you think so ? .NET community is behind all the time... Learn new stuff... That thinking is so Microsoft thinking...
@josecosta3339
@josecosta3339 4 жыл бұрын
@@matiaslauriti But you can code in multiple languages in your wasm
@matiaslauriti
@matiaslauriti 4 жыл бұрын
@@josecosta3339 no one uses WASM
@gui6881
@gui6881 4 жыл бұрын
@@matiaslauriti You say that we should "learn languages DESIGN for what is meant to be used", and that C# should never be used on the front end. Then why you use Node.JS?
@evancamilleri4602
@evancamilleri4602 4 жыл бұрын
What about SEO on WebASM? It's a nightmare?
@william_dotnet
@william_dotnet 4 жыл бұрын
isn't that true of SEO fullstop? no matter which tech you use. I know SEO with BlazorWasm is possible but I've not gone through the experience myself yet. So far the business apps we're writing doesn't require SEO... if any of them ever do and if they are at the greenfields stage then we may not choose Blazor wasm if it really is going to cause trouble for SEO requirements.
@j-t-ogamingblahblah3025
@j-t-ogamingblahblah3025 4 жыл бұрын
I love blazor for the record
@jeanmuyuela8112
@jeanmuyuela8112 4 жыл бұрын
but its not really c# though.... cant multi thread....
@william_dotnet
@william_dotnet 4 жыл бұрын
not yet :) the .NET 5 release will be adding multithreading to Blazor. Thanks to wasm native language can do multithreading in the browser - check out the chrome webassembly docs regarding multithreading and webworkers.
@adamyuewu
@adamyuewu 4 жыл бұрын
I am telling you this as an all time C# lover, when you say goodbye Javascript as a C# guy you are actually pushing more people against C#. So please change your title. And next time when you say goodbye something else, just pretend you are Python developer :)
@HermanWillems
@HermanWillems 4 жыл бұрын
You can't do that if you are a Rust developer. Because that is the most loved language at the moment. :) Rust can also run on the web client on webassembly. (But without a runtime, so its literally always faster) without garbage collector alswell. Small loading times. With Rust you can write on microcontrollers, every OS almost, alot of CPU's, supercomputers, backend webserver, front-end with webassembly. Rust can do everything. So you only have to learn one language. Rust, which does everything.(with C/C++ performance) and runs on more hardware/systems than C#. Even Microsoft LOVES Rust... (Probably more than C#... because they see Rust as a good replacement for their massive C++ codebase. They would never write Word or Excel in C#... never ever. Microsoft doesn't use C# alot in their products. They know it doesn't perform)
@emmanueladebiyi2109
@emmanueladebiyi2109 4 жыл бұрын
@@HermanWillems Microsoft doesn't use C# in a lot of their products? - one of the biggest lie I've heard till date. Even some parts of VS are written in C#. In short, C# is heavily used at MS. Also, good luck writing your Web UI with Rust. And lastly, C# is pretty much the most performant language right now second only to C/C++ and Rust. Yeah, we all love Rust, but you just displayed some ignorance through hasty generalisations and over simplifications.
@khwong98
@khwong98 4 жыл бұрын
Awesome presentation.
@william_dotnet
@william_dotnet 4 жыл бұрын
Thank you very much :)
Modern Web UI with Blazor WebAssembly - Steve Sanderson - NDC Oslo 2020
56:19
Мясо вегана? 🧐 @Whatthefshow
01:01
История одного вокалиста
Рет қаралды 7 МЛН
So Cute 🥰 who is better?
00:15
dednahype
Рет қаралды 19 МЛН
Full-Stack App with Blazor WebAssembly & Syncfusion in .NET 7 🔥
2:41:23
ASP.NET Core Crash Course - C# App in One Hour
1:00:44
freeCodeCamp.org
Рет қаралды 1,6 МЛН
ASP.NET Core Series: PWA's with Blazor
29:08
dotnet
Рет қаралды 28 М.
Blazor, a new framework for browser-based .NET apps - Steve Sanderson
1:01:13
Intro to WebAPI - One of the most powerful project types in C#
1:15:21
Blazor in more depth - Ryan Nowak & Steve Sanderson
1:02:12
NDC Conferences
Рет қаралды 36 М.
How To Create a Progressive Web App with Blazor WebAssembly
30:15