Blazor vs Angular - Growth Mindset Show Ep. 12
3K views
Nov 9, 2023
Join us on December 10 with host Mahesh Chanf & Michael Washigton in the new episode of Growth Mindset Weekly Live Show where they will debate Blazor Vs React/Angular C# Corner - Community of Software and Data Developers https://www.c-sharpcorner.com #csharpcorner #liveshow #growthmindset #fullstack
View Video Transcript
0:00
Thank you
0:29
Thank you
0:59
Thank you
1:29
Good morning and welcome to the Growth Mindset show
1:54
My name is Mahesh Chand. I'm founder of C Sharp Corner. This Growth Mindset show is every Friday 10 a.m
2:04
And in this show, we talk about different topics, mostly around growth of software development and software developers
2:11
Our goal is to bring different topics. If you are joining us first time, welcome to the show
2:19
If you are coming back, welcome back to the show. I live here in Philadelphia
2:25
It's nice, bright and sunny today. A little bit cold, about 40 degrees in Fahrenheit
2:33
Outside a little bit chilly, but sunny. Nice day. Well, first of all, let me start with hopefully everybody's safe during this COVID time
2:43
It's pandemic is still growing, really big time. In the US, we have reached, you know, highest cases in this week and like deaths are still growing
2:55
We have about you know almost every day 3,000 people are dying which is crazy
3:01
This has never been before so hopefully everybody watching the show is safe
3:06
Stay safe, wear a mask please if you have to go outside
3:10
Do the you know what's supposed to do, wash your hands. If you don't need to go in a group and travel or do any meetings you don't need to stay you know home
3:20
That's the best way. And, you know, we're trying to do is find different ways to keep ourselves busy
3:25
And so is one of the way we started this in C Sharp Corner is we started a lot of virtual events, virtual meetings, virtual conferences in these shows
3:35
So today we have an interesting topic. We are today going to talk about Angular versus Blazor
3:44
Angular, as we know, is one of the most popular JavaScript framework for building web applications
3:51
And Blazor is new compared to Angular. And that's our big topic today
3:56
If you have any questions in this show, this show is all about you
4:02
If you have any questions, it can be about Angular and Blazor
4:06
It can be anything about your career, your jobs, community. pandemic anything you want to share with us feel free to post in the comment
4:19
um it's again you can ask us any questions we'll take questions in the you know in between of the
4:25
show and then maybe later have there'll be more questions um today we have a guest michael
4:32
washington michael has been a is a community guy for years i know and you know at least you know
4:39
Personally, I met him at Microsoft MVP Summit years back, but he's been helping community for several years
4:46
He's 12 times Microsoft MVP. He's written, he's an author, written several programming books
4:54
So let's invite Mike, our guest today, Michael Washington, and then we'll add more to his introduction
5:01
Again, if you have any questions for Michael, feel free to ask as well. This show is for you, and we want to make sure you get benefit out of the show, watching the show
5:11
So, Michael, welcome to the show. Hi, thank you for having me
5:16
How are you doing today? How's everything? We're at your place, and where are you joining us from today
5:21
Well, I'm coming from Los Angeles, specifically Pasadena. So, yeah, we're right in the middle of the COVID thing
5:28
So we're all just staying at home, working from home, wearing a mask everywhere
5:33
I just got back from a run and I had to have my mask on the entire time
5:38
So, yeah, we're just trying to stay safe right now. And I wish the best for everyone out there
5:43
Oh, wow. Well, it looks like we have vaccine coming out soon
5:48
So hopefully once this starts rolling out every week, we should have millions, millions probably getting it
5:54
Yes. Looking forward to that. Yeah. So, Michael, you know, I know I was telling our viewers here, I know you for several years now
6:02
You have been in this community, Microsoft community, helping people for many years
6:11
You want to tell a little bit about how long you've been and what you've been, how you're helping
6:15
and what makes you keep going back and give back to the community and keep helping
6:20
Well, I definitely get a lot more from the community than I put back, so I just try to put back as much as I can
6:27
But, yeah, I go back as a Microsoft Stack developer all the way back to classic ASP
6:32
Actually, you know, VB3, you know, that sort of thing. So I've just stayed with the Microsoft stack
6:41
So, again, I went through the classic ASP, the early, you know, .NET stuff
6:48
I became an MVP because I got involved with .NET Nuke, and that introduced me to open source
6:55
The whole idea of, you know, you give away something for free, you know. So Sean Walker is a big influencer of mine, and he still continues to be through
7:05
There's a newer version of the .NET Nuke called Octane, and that's a Blazor application
7:11
So I'm still working with Sean Walker with that. But that's how I really became an MVP
7:18
And I remember Mahesh you and I would be on the bus you know driving back and forth to the MVP summit and we be talking about things So I seen your incredible growth throughout the you know you been wildly successful so um a lot of us are you know really are inspired by what you done over the years
7:35
because yeah i knew you back when so so it's just funny everything comes full circle hey you know
7:42
that's how it is we all you know small world small world and i was working i was talking to you a
7:49
I have a client I advise a nonprofit in LA and I visit LA County and you are in LA County
7:58
So, yeah. Luckily, we're in tech and we're still working. My wife, unfortunately, she worked for
8:05
the hotel industry and she's been laid off since this whole thing began. So, luckily, I can take
8:13
care of the family. But yeah, so many people are affected by this and right now we're just doing
8:18
our best, but the vaccines are coming. So hopefully people looking at this broadcast
8:23
years from now will know that, you know, during the darkest times, we're still holding strong and
8:30
it will definitely get better. Well said, well said, my friend. So Michael, I know you are 12
8:37
times Microsoft MVP. You have written programming books and you run a website, Blazor Help website
8:44
as well as your ADAP server website. You want to talk a little bit about that
8:47
so people at least get an idea? Yeah, if you want to see the latest open source things
8:52
that I've been working on, yeah, blazerhubwebsite.com. That's what really take you to everything
8:58
And you kind of see there, the last blog post I did was on Octane, which is, you know
9:04
the large open source framework built on Blazer. Again, with Sean Walker of .NET Nuke fame
9:11
who, you know, he's the guy who really got me into open source and MVP, you know, help me get my MVP, you know, back in the day. So that's the
9:21
place to go if you really want to see what I'm doing and all my open source stuff. And that
9:27
application, BlazorHelpWebsite.com is a Blazor application. So you can actually download the code
9:34
and install it yourself. I have blogs on how I created that. So really, that's really the main
9:40
link that leads you to everything that I've done. And of course, I've also written some books for
9:46
Syncfusion, which are available for free. So this one is the Blazor WebAssembly book. And then there's
9:53
another edition of the book that covers the same application in this book here, but it covers for
10:03
Blazor server. So Blazor has two different hosting models. And when we get to that section of our
10:08
back and forth debate, I'll explain the two different hosting models of Blazor and what
10:15
that entails. All right, great. So yeah, so let's start. So, you know, anybody joining us, looks like a few more folks joined us just now
10:25
Welcome to the show. Today we have our guest here, Michael Washington
10:30
He is a, you know, 12 times Microsoft MVP author and community leader
10:36
we're talking about today our topic is angular versus angular versus blazer so now if you want to
10:45
build your next application if you are in a company and you are the decision maker or you're
10:49
building your own project and you know you are kind of typescript c-sharp guy so you and you
10:56
want to build in the latest modern framework obviously you have two choices angular and blazer
11:00
Angular is obviously not 100% C-sharp, but it does use TypeScript. So I want a little bit to go back to Angular and Blazor's history
11:13
Angular started, you know, it's open source. It's open source JavaScript library
11:17
You can go download everything. It's open source. You can also get involved in the project
11:23
It's managed by Google team and open source community. Same thing, do you want to spend a little bit of background on that
11:34
Let's start with Angular first. And again, I'll just talk about my personal history
11:41
And just to keep in mind, Blazor is also open source. It's also on GitHub
11:45
It's all open source. But let's first talk about Angular. So I don't know if Stephen can show a link of, there we go, ADEF help desk
11:55
So I got involved with Angular, God, I guess maybe it's going back six years or so
12:03
And the reason why I was drawn toward Angular is there's Angular Classic, which was pretty much more of like a scripting sort of language
12:13
But then the modern, what we call Angular, it's based on TypeScript
12:19
It's built on top of TypeScript natively. And TypeScript is a language that allows you to write code that is like C Sharp
12:31
There's like a compiler, you know, type checking, that sort of thing. And it then creates the JavaScript, transpiles the JavaScript that actually runs on the person's web browser
12:41
But as a programmer, you're able to use, you know, your object orientated, you know, type checking language
12:48
So that's what got me really interested in Angular. And I created this application, ADEF Help Desk
12:54
Again, it's an open source, so you can go ahead and download it. And I really liked it
13:00
You know, the experience, development experience, you're able to make large applications
13:05
And then, of course, you start using it at work. And Angular really became pretty much the standard for creating web applications
13:15
But I do want to focus on just one quick thing, and that is Angular is what you call the front end
13:21
The back end, you know, how you communicate with the database, you know, how you communicate with the data, how you communicate with other services
13:29
The platform that the application runs on has always been C Sharp
13:33
So in everything I'm talking about today, the back end is C Sharp
13:38
And there was a, to get Angular to talk to the C Sharp, there's a, I don't know if it's called the service
13:47
but this thing created called JavaScript Services. And it's interesting because it was created by Steve Sanderson
13:55
Steve Sanderson happens to be the creator of Blazor. So again, everything kind of comes full circle
14:02
So, you know, but I had a lot of experience with Angular
14:05
I actually wrote a book on the creating of ADF Helpdesk. So, you know, I was very, very deep into Angular
14:12
So that's why I think, you know, I wanted to come on the show to kind of talk about my experience from Angular to Blazor
14:19
What are the differences and why, moving forward, I'm Blazor all the way
14:27
Yeah, no, that's good. And again, this website and this project is all available open source
14:34
People can download this, and they can also read your blog to learn how you built that
14:38
How they built it. And there's also a book. There's also a book on Amazon that I wrote called ADF Help Desk 4
14:44
and it goes very deep into the whole program and how it works and that sort of thing
14:50
Yeah. So, you know, there are obviously some people, there a lot of applications are still being built in Angular and I talk to you know some of my clients large corporations they all using Angular because Blazor being so new right So one point also I want to cover before we jump
15:08
into the Blazor side is that what are the major advantages of using Angular compared to other
15:14
JavaScript frameworks? And there are a ton of out there, and obviously React is one of them, yeah
15:19
The biggest one is the fact that TypeScript is really native, built in natively to
15:24
Angular is a big thing because if you're dealing with JavaScript, any JavaScript framework
15:30
you want to be using TypeScript. So that's one thing. The other thing is, is that there's a
15:35
number of, you know, plugins. So that if, for example, you need to show a PDF file or something
15:41
there's a plugin for that. So it's got the biggest ecosystem for plugins, the most documentation
15:48
when a lot of programmers are using something. If you need to get contractors or that sort of thing
15:56
it's easier to get somebody for something that's more widely used. There are other JavaScript frameworks
16:03
Vue is another one that comes up a lot. But if you're trying to hire a contractor, let's say on the West Coast
16:09
it's easier getting an Angular contractor than it would be, say, for some of the other JavaScript frameworks
16:15
Also, Angular is more complete. Whereas with other JavaScript frameworks, they only do, say, a part of the application
16:24
You still have to roll your own for other parts of the application
16:27
So its size, its ecosystem, the fact that TypeScript is built natively to it, these are the advantages of Angular
16:36
Angular does work, so I don't want to imply that it doesn't work well. so
16:42
yeah and I believe a lot of these component vendors like you know Syncfusion
16:48
Air Express, Infragistics they all have Angular libraries and controls as well right
16:55
so that's a big plus that helps like building data grade or some kind of the controls
17:01
you know calendar control so you don't have to write code your own and you can read easily
17:07
and licensing is pretty cheap for those components also. Yes. Most of them are free
17:12
Most are free and the licensing is, you know, comparable with the big component vendors
17:18
like Syncfusion and Telerik and that sort of thing. Yeah, the licensing is, you know, very reasonable
17:23
Yeah. So you would say, you know, it's easier to build, you know, applications using these
17:28
controls and components. Yes. A big ecosystem is a big plus. Yeah
17:34
All right. Looks like we have a few more folks joining us. Welcome to the show. It's a growth mindset show
17:39
My name is Mahesh Chand. I'm here in Philadelphia. Again guys if you have any questions just keep posting those questions
17:46
We will try to cover most of your questions in the second half of the show
17:50
Today we are talking about Angular versus Blazor. If you are building your new application and you don't know which one to pick between Angular and Blazor
18:01
today our goal is to clarify that and maybe help you make the decision
18:06
decision and here I am with Michael Washington. He's worked with both Angular and Blazor and that's
18:12
what we're sharing today. If you have any questions guys, feel free to post those questions
18:16
So we just talked about Angular's background and you build an application, you share your
18:21
experience. Let's talk about Blazor. Blazor is very new compared to Angular and it's basically
18:30
by Microsoft and open source, free, available free. There's a lot of free content available on that as well
18:37
And it's a licensing is Apache Licensing 2.0. You want to talk a little bit more about history of Blazor
18:46
Yeah, actually, but actually let's finish up on the Angular. Okay. And the reason why, as far as definitely in my personal projects
18:57
And also in my work projects where I have an influence as an application architect, I'm moving forward with just using Blazor for all new applications
19:10
And the reasoning is not that there's anything wrong with Angular. The problem is, is that in order to create applications in Angular, you have to use a thing called NPM, Node Package Manager. Yep
19:28
That's the problem. That's the problem. The biggest problem with Node Package Manager is it really is
19:39
Node Package Manager, for those who are not, who are just, say, from the Microsoft stack
19:44
it's comparable to, you know, when you pull down, you know, components, you know
19:53
through your Visual Studio and you're pulling down components. And it's a way to pull things into your application
19:59
However, the problem that we run into with Node is that you end up pulling in our average application
20:10
You end up pulling in 30,000 to 60,000 files are required. And the problem is that instead of having a company like Microsoft who makes, let's say, 90 to 95 percent of the application and you only have to pull in, say, 10 percent more from outside component vendors and that sort of thing
20:36
When you're doing an Angular application, the stuff that's being pulled down is by several different organizations
20:46
literally hundreds of separate organizations have created the components that are required to be pulled down for your application
20:56
So when you start a new Angular application, you basically have to have node running
21:01
You have to kind of go into NPM install, which tells Angular, okay, great, install yourself
21:10
And then Angular says, hey, I need all these components by all these organizations
21:16
And it starts to pull stuff in. Well, when those components start to come in, they go, oh, well, we have, you know, our component is made up of other people's components
21:24
So it starts pulling that in. So you start to pull down tens of thousands of files
21:29
Well, when you first do your, you know, hit F5, you run the thing, you're like, okay, it works
21:33
Even though I've now pulled down at this point, like, say, 20,000 files, it works
21:38
And it's fine. Here's the problem. Any one of those components can break something
21:45
And if you start looking at the warnings, you see all these massive warnings and go, this has been deprecated
21:50
You're like, well, I should fix this. But if you try to fix this, there's a bunch of other components that can use that component and you'll break this other thing
21:57
And you're thinking, OK, well, don't they know this? Remember, they're all separate organizations
22:02
Most of them are many of them are open source. they're like some guy in some country somewhere who's just doing the best he can. He's not trying
22:09
to hurt you. But hey, his stuff is affecting your stuff. One line of code that goes bad
22:18
and your entire application may not start. So it's funny. It was after you and I agreed to do
22:24
this show I ran into a problem about two days ago where this one component doesn work with Internet Explorer
22:35
And, you know, because we tested the whole thing. But because it didn't work with Internet Explorer, we tried to, okay, we're going to try to fix it
22:42
And when we upgraded that one component, and this was just a minor thing to display a PDF file inside, you know, the application
22:50
When you tried to run the application, the whole thing just wouldn't start at all
22:54
I mean, not like, oh, that one page didn't work. The entire thing, because the TypeScript has to be transpiled into JavaScript
23:00
If there's one little error, the entire thing doesn't start. So, you know, a developer had to spend almost two days trying to slowly compare it to an application that did work and figure it out that this one little component, which is, again, it's open source
23:16
It's by, you know, some well-meaning person. They didn't. They weren't trying to break the app. So much time was spent just tracing that one thing down
23:25
These are the problems that we don't have with Blazor. You know, Microsoft makes most of the app
23:32
You know, Microsoft is, you know, they talk to, you know, all parts talk to each other and they keep things running well
23:39
So the NPM part is really the problem. Everything is very, very brittle
23:44
So, you know, never do you have an application with Angular that I've done of medium size where every time you try to compile it, you don't see tons of errors and warnings
23:57
Oh, actually not errors, but the warnings. And you can't fix it
24:01
I mean, literally, the average application now has 60,000 files. Where do you begin
24:05
So it's the idea of NPM, you know, and being very democratic and open and therefore can grow big and that sort of thing
24:16
The problem is it creates too many dependencies that cannot be managed
24:21
And it's just it's brittle. and yeah and and that's why um when blazer uh came out i really looked at it because it gives us
24:32
the stability that you would have with say for example an mvc application or even let me go back
24:37
to even a web forms application you know those applications they just work you know and that's
24:43
what blazer gives us back it gives us back a stable uh a structure where stuff just works
24:50
Yeah, and I believe because there's so many files are being downloaded, if you want to take even content rise, it can deploy it on some kind of your cloud, I guess, for the size of that application would be used
25:03
Yeah. Yeah. So really, like I said, it's a development process that really has the biggest issue
25:14
Obviously, deployment, you have issues there. And also, again, the other thing is with JavaScript, again, like I said, we have this issue where we're still having to support Internet Explorer, which, of course, people should not be using
25:26
But you know, they do, and especially government companies, you know, they have users
25:35
They are. You cannot force them to change their browsers. Right. So so that's so. So there's that
25:43
So so then let's get into Blazor. so with Blazor like I said you have
25:48
there's one Blazor but it has two different hosting models before you go there let's make sure everybody understand
25:55
that Blazor is again it's from Microsoft initially managed by Microsoft team
26:01
and it's open source means anybody can get involved with part of the project
26:05
download it look at everything and it's free and it's basically compared to, you know, there's nothing like, it's not like a previous versions where you even you
26:19
need a, if you need to drive Blazor applications, you can even down, you can use in a Visual Studio
26:24
code, which is a free IDE and a editor, right? Or you can use Visual Studio community. I personally
26:32
use a Visual Studio community because me being background on, you know, on C sharp and .net
26:39
I'm used to Visual Studio. I tried not to go to the new editors and you have to install NPM and this and that
26:46
So before we go to Blazure, I want to share my experience. I was just trying to play with the React
26:52
I just want to write the simple app. Really, it just saves me when I go to command line. I'm too old for command lines
27:03
I want to just be a virtual studio, open my thing and create my application and get going
27:11
But I agree with you, NPM, I do not like that part. So yeah, go ahead
27:16
Share a little bit more on Blazor, like how the project started. You said Steve Anderson came in
27:21
He was part of the team. A little bit more on that before we get into client versus server
27:26
So just real quick on Steve Sanderson. And again, a programmer that I admire greatly as far as probably one of the smartest, most forward-thinking, most influential programmers that maybe some people have never heard of
27:42
But he created – he's done a lot of stuff over the years
27:46
As a matter of fact, Knockout JS was, I think, his big thing that made him famous
27:54
but I encountered him when he created this thing called JavaScript services and it allowed not just
28:02
Angular but a number of other JavaScript frameworks including Knockout at the time to easily work
28:11
inside Visual Studio to talk to your back-end C-sharp code. Well the man is really an expert
28:19
in JavaScript, you know, languages and that sort of thing. So he, on his own, created a project where he was trying to allow people to achieve what
28:34
you can do in these JavaScript frameworks, but basically do it in C Sharp or C Sharp
28:40
like language, which really... Object oriented. Yeah, object oriented. Which is pretty much like an MVC application
28:51
You know, it's C sharp, but it's the Razor syntax. So that's what he came up with
28:56
It's basically you can do what you can do in JavaScript using the Razor syntax
29:02
So and this is an oversimplification. But in my opinion, what you end up with is MVC
29:09
OK, so if you're familiar with MVC, you basically end up with an MVC app that doesn't have postbacks
29:16
So what I mean by postback is that if you have an MVC app, the page comes up, a person clicks a button, the web browser has to be refreshed
29:24
It goes back and comes in. So what Blazor allows you to do is your application looks like an MVC app
29:33
You have your markup. You have your code behind, your C-sharp code
29:38
Yet when they click on the button, there's no postbacks. And the page is called a razor page
29:45
you know, extension is dot r-a-z-o-r. That's pretty much what Blazor, an oversimplification, that's what it is
29:54
It has two hosting models. One model is what we call server-side Blazor
29:59
That one really is just like an MVC app without the postbacks
30:04
There's another hosting model called Blazor WebAssembly. And this uses a technology, which is, again, it's an open source technology that actually does not belong to Microsoft, called WebAssembly
30:17
And what WebAssembly is, is it's not a plug-in officially, but as an oversimplification, it is a plug-in
30:26
Okay. It is a plug-in. I mean, sorry, it's just that if it's built into the web browser when you download it, it's not considered a plugin
30:35
But really, it's this thing that runs programs inside your web browser the way that Flash used to run
30:45
Honestly, the way that Silverlight used to run. It's a thing that, you know
30:49
So instead of having to use JavaScript to do functionality, this thing is what runs
30:58
So WebAssembly, so Blazor can run in WebAssembly. And to the end user, it just looks like everything's running on the page
31:06
But that's not JavaScript that's running on the page. That's WebAssembly that's running on the page
31:12
And inside what WebAssembly is running is your Blazor program. So Blazor can run in either mode. The Razor code, which is Blazor, is the same, whether it's running inside WebAssembly or running server-side Blazor
31:28
The reason why that hosting model is very important as a difference is that when it's running as WebAssembly, it's very much like Angular
31:38
Your code is just client-side code, and to communicate with the backend, it has to make HTTP calls or web API calls to the backend
31:49
When Blazor is running in Blazor server mode, like an MVC app, it doesn't have to do that
31:55
So you literally can have just some code in the markup, some code in the, you know, what we call the code behind file
32:02
And there's no clicking of the, you know, no refreshing of the web browser
32:07
It just, everything just moves as, you know, fast and whatever. And you need a lot less code
32:15
So just really quickly, for Syncfusion, I wrote two books. and both books walk you through 100% of all the code you would need to create the applications
32:26
Both books create the exact same application. It's a little help desk application where a person
32:30
puts in a help desk ticket. It sends an email to an administrator. The administrator logs in. They
32:34
can see the help desk ticket. They can add comments. It emails back to the user. The user can keep
32:38
they keep going back and forth. They can close a ticket. There's a grid, a Syncfusion grid that
32:42
allows you to sort and that sort of thing. So I built the application as a Blazor server application
32:48
and the exact same application as a Blazor WebAssembly application. The Blazor WebAssembly application, the Blazor code is about the same amount
32:58
but the back end code, there's twice as much needed for the Blazor WebAssembly version of it
33:05
So, but they're both considered Blazor, but the hosting model, you know, is different
33:11
And the reason why a person would, for example, want to use, say, Blazor WebAssembly versus Blazor Server is
33:17
If you use Blazor Server, you must use C Sharp.net as your back end
33:23
If you use Blazor WebAssembly, your back end could be, you know, anything
33:29
So all these other technologies, you know, you could use as your back end, you know, Firebase or whatever
33:36
So that's one of the major reasons why a person would say I want to use Blazor WebAssembly versus Blazor Server
33:42
so if you are you know person like me whose background is c sharp dot net i come from windows
33:49
that's blazer server seems to be easier for me because my kind of space i've been doing for so
33:56
long and then if you are a javascript background you've never done you know dot net and c sharp
34:02
but you want to build probably blazer app because that's the new big thing you like you probably
34:08
better on WebAssembly as long as you're okay with, you know, running WebAssembly running in there
34:14
Okay, that kind of makes sense. So we will, what we will do is we will take a little break
34:19
two minutes break, three minutes break. We will be right back. We have a few questions. We'll take
34:25
all of your questions, guys. Everybody who is joining the show, welcome to the show. Make sure
34:29
your questions are posted because we're going to start taking questions soon. We will be right back
34:34
in two minutes. Here at Mindcracker, we create artificial, virtual, and mixed reality games and apps
34:43
Voice-enabled skills and apps and intelligent apps and integrate AI with IoT products
34:51
We offer advisory services for innovations and startups. We provide cloud and code security
34:57
and performance services. We also offer AI slash ML blockchain development consulting and training
35:06
Just visit www.mindcracker.us to make your dreams into a reality. COVID makes us feel like this
35:17
And work from home like this. But what if work looked like this
35:26
With a leader like this. And a payday that feels like this
35:31
Learn how to change your mind and your mindset with the Growth Mindset Show every Friday at 10 a.m. Eastern
35:49
Hey guys, can't believe we haven't seen each other since graduation in May. What's going on
35:55
Not much. With the pandemic, I can't really do anything right now. Me too. I mostly just stay at home, hang out with my dog, and watch the news
36:03
I feel you. Have you guys been able to get jobs yet? Funny that you ask. Gary and I actually have been working on something together
36:11
Yeah, we came up with an idea for a startup that's an app that will help us stay active since we both have been sitting around so much during this quarantine
36:19
That's genius. I could definitely use something like that. When are you guys launching it
36:24
Well, that's the issue. We don't really know how to build it, so we're kind of stuck
36:28
I know this company that does startup advising, if you guys are interested
36:35
Oh, really? Yeah, they're called Mindcracker, and they'll help you validate your idea
36:39
and connect you with angel investors and help you build everything from your product MVP
36:45
to your technical team and even your go-to market planning and execution
36:49
Wow, that's awesome. Do you know how we can get in touch with them? Yeah, you can just visit their website, mindcracker.us
36:57
That's awesome, May. Thanks. I'm excited to get started on this. Of course. Good luck, guys, and let's talk soon
37:04
Thanks, May. All right. Welcome back to the show. We are back
37:14
We are here today talking about Angular versus Blazor. I am here to have a guest, Michael Washington
37:23
You know expert in Blazor We have a question actually following by exactly what you just talked about Why should you choose blazor over angular Simon you want to put the question here
37:39
The question is so next one. This is not really the question. Yeah there you go. So this is the
37:49
question i want to build an erp app for school how would you angular versus blazer how would you
37:55
select which one you choose well so keep in mind angular can definitely create the application
38:03
that you need to create okay however blazer can also create the application that you want to create
38:10
The issue becomes, is speed of development and ease of maintenance important to you
38:23
If that's the case, then the decision that I've made is that Blazer is the winner, hands down
38:31
So during the break, I went to the Syncfusion book, Blazer Succinctly
38:37
And I know the link was placed in there. And I actually want to see, I know that on purpose, I made sure I covered every single line of code in the application
38:47
Okay. Every single line of code is covered. I walk you through every single line of code in the application and it's only 86 pages
38:55
There's no way I could, you know, if it was an Angular application, could I cover every single line of code in 86 pages
39:05
As a matter of fact, and I'm just being totally honest, I don't know if I could cover every single line of code in 900 pages
39:13
So, you know, right there. So you would say there's a lot more code you have to write if you're using Angular
39:20
A lot more code. And here's the other thing. It's not just the amount of code
39:25
It's the complexity. So especially if you're using Blazor's server, the complexity is just not there
39:33
Everything is pretty straightforward, you know. put the markup for a button here
39:38
When they click the button, write this method down here that says, grab these fields and save it to the database
39:46
Very straightforward. With Angular, I would say, okay, create first, do all these imports
39:55
Now set this file to talk to this file. Now configure it so this talks to this thing
40:02
Okay, now we're about to do the button. Okay, the button goes to this method. here, but now this method has to go to a service. Configuring a service, there's a special component
40:11
created by, by the way, a different organization that indicates how my code will talk to the
40:18
service. Is this the thing that's talking to the backend? No, no, this is just the service
40:22
that inside that service, it then talks to your C-sharp code. Okay, now we're going to start
40:28
writing that C-sharp code. So just for a simple button click, we're into like 20 different files
40:35
with very careful configuration that if you get one thing wrong, you're done, man
40:41
So it's just a magnitude of like, I would say a factor of 10
40:46
versus doing the same thing in Blazor as I would in Angular
40:50
So Angular, it's a good technology. It does work. But, you know, it's compelling to say to somebody, you know what
40:58
You can do this thing 10 times faster with 10 times less code. So therefore, hopefully that answers the person's question
41:05
Into Ad, he's writing this for a school, so I'm sure schools don't have a lot of resources
41:11
They don't have full-time people just maintaining your software. You just build there and hopefully it works
41:18
I would say there's definitely low maintenance compared to Angular if you are using Blazor
41:24
One more thing about the teams. With Angular, you pretty much need a team
41:29
As you all know, when you have people working together, You spend a lot of time just managing the fact that people have to work together
41:38
You know, the nice thing I've had with Blazor is, you know, even in my work, when I put a person on a Blazor application, I put one person on it
41:50
One person. And we're talking about some really big applications where people are uploading files and I've got, you know, trees opening up and, you know, just massive stuff going on
42:00
one developer is all it needs. One developer. So therefore, because that person
42:05
is, of course, working by themselves, they're working even faster. With Angular, I can't just put
42:11
one developer on a project because there's so much to do. You have to have a team
42:17
So that's another thing is that you can put one developer on a
42:23
Blazor application and they can leave them alone for two weeks and they'll come back with
42:26
it's done. so there's that so yeah that's the decision I make
42:35
however I do not want to imply that Angular can't do that ERP application
42:41
no Angular can do it and they can do it just fine oh yeah and there's a lot of large applications
42:47
live scalable already built in Angular right? I built them and they're still running
42:53
but it's the matter of choice now we have a choice now we have a different choice
42:58
Yeah. So continue that. There's two more questions from Amit. This question is Amit
43:04
This is a good one. Yeah. Yeah. So I'll go ahead and read this one
43:09
Yeah. These two questions, we can combine both of them, right? Well, actually, no, let's take them separate. I really think it's separate
43:15
Okay. So Blazor server. So someone is basically saying, okay, well, Blazor server, it needs this continuous connection
43:22
And what happens is, is that Blazor server, what it does is it uses actually a very thin JavaScript layer to launch its runtime
43:34
But it's a very, very thin thing and you don't have to code it. It just runs. But what it does is it sets up what they call a SignalR connection or connection that uses the technology of SignalR, which constantly communicates with the backend server to maintain the state of the application
43:51
and when a person, for example, clicks on a button, SignalR sends a message to the server
43:55
says, hey, they clicked on a button and the server goes, oh, okay, we'll change the page to this and it sends back what we call a diff, D-I-F-F
44:02
back to, you know, through the SignalR, back to that little thin layer of JavaScript
44:08
and it goes, oh, I need to repaint, you know, just move that button over here
44:13
or show a little label. So this thing is constantly going. So people were concerned with the fact
44:19
that if you have to maintain this connection, if you have a lot of people hitting your site, aren't you using up too much
44:26
Is it going to require too much server resources and that sort of thing? So Microsoft did publish benchmarks
44:33
And essentially what they showed is that if you were hosting your site, say in Azure
44:38
with a $70 a month app service plan, basically you can just take thousands of simultaneous users of your application without a problem
44:50
and in my experience I've been running blazer applications and pretty much kind of production
44:54
for over three years even though I think production was only supposed to be about two years ago but you know and I telling you I never had a problem And you know even all my websites are all running you know in Azure
45:08
My personal stuff is running in Azure. And if you look at the resources of the app service, it barely peaks one to two percent
45:16
you know, and I'm running about, you know, $70 a month app service plan
45:19
So I understand why someone would be concerned about that. But I'm telling you in practice, it's not an issue
45:27
That's just my personal experience. So that's good to know. That's really good to know
45:33
And let's take it. Okay, so the second question is, yes, the problem with WebAssembly, which is actually the exact same issue that Angular and all the other JavaScript frameworks have
45:50
is that when the person first comes to your application, they need to download, for the most part
45:57
there's exceptions to this, but for the most part, they need to download all the application
46:01
into their web browser. In the browser. Right. Before things start running
46:07
So this was true with Silverlight. This is true with Back with Flash. And it's true for the most part
46:14
There's exceptions, of course, but for the most part with Angular or even any of the other JavaScript frameworks
46:21
So there's like this little delay, and that's why you'll see a little waiting symbol
46:25
or spinning thing while that happens. A couple of things. One, you can compartmentalize it
46:34
so that only the first part of the application has to be downloaded
46:38
and the other parts are downloaded as people invoke those things. Number two, WebAssembly is the reason why
46:46
and that technology is getting better and better. So they're improving the loading speeds as time goes on. But however, with that said
46:59
Blazor Server, which does not have that problem, in my experience, is massively faster than Blazor
47:05
WebAssembly. So that's another reason why I use Blazor Server. It's faster to develop
47:10
and it runs faster. There is no technology, and all the time I've been writing programs
47:16
and I go all the way back to web programs, all the way back to 1998, I guess
47:24
No technology is faster than Blazor's server, in my opinion. So there's that
47:30
So 12 is the fastest right now, as of now. As Apple says, iPhone 12 is the fastest iPhone ever
47:38
Tomorrow will be something different. But seriously, Blazor... I laugh hard. I laugh hard. Obviously, it has to be the newest iPhone, obviously
47:46
I would hope so. As much as they charge, yeah. But I will say a couple of other things real quick
47:53
Blazor Server, WebAssembly programs, they actually are indexed by Google and Bing
48:01
So that was normally a negative of, you know, especially I know back with Silverlight, you know, it's like you can't index it
48:09
it would not be indexed by a search engine. So SEO is very important
48:14
However, Google and Bing, they actually will index a WebAssembly app. So that's an actual plus
48:24
So right now, this person's question is a very good question. It's very relevant
48:28
And I would just say to you that if this is something that you've been encountering
48:34
number one, can you use Blazor server? If you can, boom, the problem goes away
48:38
But number two, they are constantly making improvements so that, you know, the problem is slowly going away
48:48
And if you have a lot of images and that sort of thing, you know, you can not put the images, you know, in your WebAssembly app and just have like it, you know, be referred to from a CDN or something like that
48:59
So that's also something else that I might look at if this were my situation
49:05
All right. That's great. That's great. Let's take another question here. This is a quick question for you
49:12
Simon, you want to put... Oh, so, yeah, the question was, yeah, if they want to work with Blazor
49:22
which back-end language would I have to know? If you work with Blazor server, it must be done in C Sharp
49:29
If you use Blazor WebAssembly, you can use the back-end language of your choice. so
49:36
yeah so listen if you're a .NET background Microsoft for you choice
49:44
is easy blazer server sounds make sense to me without even a question right yes exactly
49:55
performance is the key for me right performance is very important right and
50:02
I do not I'm not even fan of JavaScript I don't like messy things around in my code
50:09
I want to make sure they're organized the way I like. Laser server is for you
50:14
I should take everywhere when you don't know what's going on. What it does until you run it
50:21
But I do want to point out, though, if you do have a back end that you do prefer
50:27
like, hey, I like PHP or something like that, which, of course, I know is more of a front end
50:32
But just if you have other back ends that you like to use, that is the reason why a lot of people do use Blazor WebAssembly or some also known as Blazor Client because it allows you to use Blazor for the front end
50:48
But it will work easily with the back end of your choice
50:54
So hopefully that that gives that person some guidance that you do have a choice
50:58
Yeah, or somebody doesn't want to learn C-sharp or, you know. Well, the backend is just some different backend
51:05
That just is what it is, you know. For example, WCF. So there's a lot of people who, for example, have WPF apps that they want to put on the web
51:17
Let's say they have some civilized stuff they need to migrate. So these people have a back end built on WCF or ASMX, which could be C Sharp or in some cases VB.net
51:30
I mean, come on, right? So those people, you literally can make it a Blazor WebAssembly app, which communicates with those back ends
51:42
That's doable because they've got literally hundreds of thousands of lines of code that they're like, I don't want to throw this away
51:48
It's actually working for me. So for those people, I would say, yes, look at Blazor WebAssembly
51:54
That's something that could work for you. Yeah, definitely. So one thing I have, this question I have is how, let's say we start building
52:04
obviously one of my projects is coming up, and we are going to figure it out
52:09
Blazor versus Angular. So an application will use some components, some controls
52:16
you know like charting or it can be reporting or it can be some grades
52:21
and whatever what kind of support Blazor already has or does not have from the component side These component vendors already have start building control libraries like those DevExpress and all that
52:36
I'm so glad you brought that up because that's actually a huge thing for Blazor
52:41
So remember, Blazor, again, is an oversimplification, so people will be critical of me for making this thing
52:46
But Blazor server is pretty much MVC without the postbacks. and you know from, you know, NBC era days or whatever
52:56
that you can get this component, which you just drop it in
53:00
and that grid can easily communicate with the database with not a lot of lines of code
53:07
because it's all kind of, it's all in one place. When the JavaScript framers came out
53:12
the component vendors had a problem. You had all this, you know, their component had to sit in this JavaScript layer
53:19
But then to communicate with the back end, you know, there's all this stuff you kind of have to do to kind of make it work
53:25
But it's very separate and it's not a unified experience. If you go forward with Blazor Server, because it's all unified, you end up with a situation where you just drop the grid from the component vendors on the page
53:39
You indicate the data source, you know, that this grid you're talking to
53:45
It just does it. So that's why the Syncfusion book, I'm able to get through every line of code you need in 86 pages because seriously, there's basically this admin section where you build the admin section from scratch in 10 pages
53:58
I basically go, yeah, drop the Syncfusion grid on the page, wire it up to this one data method that I walked you through in earlier pages, and then just hit F5 and look, it sorts it, it pages, it just does it all for you
54:12
So all the component vendors, all the major companies, as well as the open source companies like Radzen, you know, does some open source, free open source, like a NuGet package
54:22
You just download it. They all just create these components. They're just so easy to use that it's just you're like, oh, this is great
54:31
They also create components for Blazor WebAssembly, but those components aren't as tightly integrated as the ones, you know, they don't give you an end-to-end experience the way that the Blazor server would
54:47
But they do, you know, especially for those components that are just UI only, you know, they work the same and they're really fine
54:57
So the component vendors are full in with Blazor. They've all, you know, have their, I mean, they're fully behind it
55:05
And life is good again for them. Because honestly, it was the dark days for them when you had, you know, the rise of the JavaScript frameworks
55:15
Because the component vendors couldn't give that full, easy-to-use experience that they had in the past
55:21
With Blazor, you know, hey, you know, life's back. It's good again
55:26
And it's full on. So so that's another compelling reason that if you're used to using components to speed development for ease of maintenance for the support
55:38
That's another reason for using components is that if you go to the component vendor, you're really paying for support
55:43
OK, that's why they get their components for free. It's like you can always download the stuff for free
55:47
It's the support that you're paying for. So if that's important to you and it should be, you know, time is money, then that's another compelling reason to use Blazor
55:56
Yeah, and I think, you know, how one of the biggest challenge for developers if we are building these large applications is also like a tooling, right
56:08
IntelliSense and like debugging, you know, testing and look at the variables
56:14
And, you know, I'm assuming that this Blazor server is much easier, similar to what we've been doing for so long in Visual Studio
56:24
Especially for end-to-end. So, again, you can still do the testing and that sort of thing with Blazor WebAssembly
56:31
So I don't want to imply that there's any difference there. But, you know, when you're an application architect, you know, you're thinking end to end
56:40
Yeah, of course. That's what I'm going to get. So for an end to end experience, yeah, Blazor Server is why, you know, I use Blazor
56:49
The only time I actually use Blazor WebAssembly for any of my projects is if I have a situation where the person is going to be running this app on a phone and they may not have an internet connection
57:05
In that case, a Blazor WebAssembly app allows me to create an app
57:10
And again, the person can have like a little icon that shows up on their phone. And when they click on the app, if there is no Internet connection, the app will still open up and it can have like a local database, you know, of, you know, it can say, OK, well, here's the data I last downloaded
57:25
And when we get the connection to the Internet. So to have that sort of experience, I would have to use Blazor WebAssembly for that
57:32
So that is the only time I've personally gone into using Blazor WebAssembly, because, again, with Blazor Server, it's kind of like an MVC app
57:41
If a person had an icon on their phone, they double clicked on it, but they weren't connected to the Internet, it would come up blank page
57:48
So I do want to kind of point that out. That's a good question, actually
57:52
Good point, which is if you are building a progressive web app where you want to basically target mobile devices, WebAssembly is something you want to look into compared to
58:04
Yes, that's another reason for using the Blazor WebAssembly version. yes and that's probably web assembly existed to compete with other javascript framework they can
58:13
support you know progressive web apps or these mobile they can also do that so an angular app
58:19
can also be a progressive web app a person opens it up there's no internet connection an angular
58:23
app you know could be programmed to still work and pull you know from a local in-memory database
58:30
so yes Angular also can do that too yeah we definitely have built a React
58:38
in Angular their PWAs with some support so that's good to know right
58:43
because obviously mobile presence is good depending on the client some clients say we must run
58:50
this on mobile so one more thing if you do decide to go mobile Xamarin
58:55
does have I think it's still experimental that allows you to create Xamarin apps using Blazor syntax
59:05
But then, of course, what Xamarin gives you is it gives you that equal structure for deployment
59:09
and write once and still have an Android version and an iOS version
59:15
So if you do are interested in that, I would look at the Xamarin offering
59:21
And the reason why Xamarin is doing that is that the Blazor syntax is so easy to use
59:26
use, and again, this ecosystem that we've been talking about is also very compelling
59:36
That's a reason for wanting to mash those two things together. All right
59:42
Wow, that's great. I learned a lot. If you guys have any other questions, we have one last minute to go
59:48
Feel free to ask questions. But looks like you covered a lot, Michael
59:52
We covered both. And I think I got some of my questions answered
59:56
Frankly, anything you want to add to the... Who's yours in the end
1:00:02
Again, I just, you know, my site, BlazorHubWebsite.com is where you can see what I'm working on
1:00:08
But also Octane, O-Q-T-A-N-E.org, is the open source framework that allows you to, instead of having to build the entire website, Octane allows you to make, for example, just a module
1:00:26
and then you install Octane, you install just your module, yet you get the full website
1:00:33
of membership management and logging and all sorts of text-based editors and all that sort of thing
1:00:40
So that's another project that I'm very involved in and it's something that you might want to look at
1:00:45
if you're looking to make Blazor applications, yet you want more help
1:00:50
and more ease of creating those applications. So, octane.org is the thing that I think people might want to look at
1:01:00
And it's something that I'm very involved in. It's an open source product. Yeah And I believe people can reach out to you and follow you on Twitter and ask you questions You are always on Twitter I know You on LinkedIn as well So if you guys still have more questions just follow Michael on Twitter and just shoot him some questions
1:01:20
Yep. All right. That was awesome. Thank you so much for coming that early
1:01:25
you have a you know we learn a lot and hopefully you you know enjoy your day and have a safe
1:01:32
next few weeks until we get this covid vaccine yes you too and thank you for having me no thank
1:01:38
you bye bye Thank you
#Programming