1597417020
A comparison of Blazor and Angular when it comes to modern web development—a review of the pros and cons. Does Blazor stack up?
Blazor WebAssembly has landed, and brings the possibility of writing modern web applications using C#, but how does it stack up compared to the other, more established options for building “modern” web applications, such as Angular?
Today we’ll take a good look at Blazor and see how it stacks up against Angular.
Note: Interested in how Blazor stacks up against React instead? Check out a comparison of Blazor and React here.
Specifically, we’ll explore how the following aspects work (for both Blazor and Angular):
Before we dig in, it’s worth noting this article focuses on Blazor WASM, which runs in the browser using WebAssembly. That said, many of the points are equally valid if you’re looking at using Blazor Server instead.
Angular is a JavaScript framework which enables you to run client web applications in the browser, but also create native (mobile) and desktop apps.
Broadly speaking, your Angular app will consist of lots of components, written using JavaScript (or TypeScript) and decorated with something Angular refers to as “directives” to handle things like binding your markup (HTML) to data.
The code you write with Angular cannot run directly in the browser, so you need a compiler to transform your code into something the browser can run.
Since Angular 9, the default option is to use the “Ahead-of-time compiler” to transform your code into efficient JavaScript as part of a build/publish process. The browser can then download and run this compiled JavaScript code.
Alternatively, you can use the “Just-in-time compiler” to compile your app in the browser at runtime.
When a user accesses your Angular application, the browser’s JavaScript engine kicks in to execute your application’s code.
Blazor is also a framework that enables you to build client web applications that run in the browser, but using C## instead of TypeScript.
When you create a new Blazor app it arrives with a few carefully selected packages (the essentials needed to make everything work) and you can install additional packages using NuGet.
From here, you build your app as a series of components, using the Razor markup language, with your UI logic written using C#.
The browser can’t run C## code directly, so just like the Angular AOT approach you’ll lean on the C## compiler to compile your C## and Razor code into a series of .dll files.
To publish your app, you can use dot net’s built-in publish
command, which bundles up your application into a number of files (HTML, CSS, JavaScript and DLLs), which can then be published to any web server that can serve static files.
When a user accesses your Blazor WASM application, a Blazor JavaScript file takes over, which downloads the .NET runtime, your application and its dependencies before running your app using WebAssembly.
Blazor then takes care of updating the DOM, rendering elements and forwarding events (such as button clicks) to your application code.
Angular has its own CLI for creating projects and generating application code.
You can install it using Yarn or npm.
npm install -g @angular/cli
PowerShell
Spinning up a new app is a case of running this command.
ng new my-app
PowerShell
The CLI gives you a few options at this point, specifically asking whether you want to include Angular Routing and which stylesheet format you want (CSS, SCSS etc.).
Then you can run your app using this command.
ng serve
PowerShell
For Blazor, you can use Visual Studio or the .NET Core CLI (which is included with the .NET Core SDK).
dotnet new blazorwasm
cd blazorwasm
dotnet run
PowerShell
You have a few other options, like the ability to include infrastructure for authenticating users, and whether to host your Blazor app in an ASP.NET web application, but the command above is the simplest option to get started.
Angular adopts a component approach to building your UI.
For example, let’s create a simple Hello World component which lets the user enter their name for a more personalized greeting.
You can use the Angular CLI to generate a new component.
ng generate HelloWorld
PowerShell
This gives you four files:
By default Angular leans quite heavily on TypeScript, which then gets compiled to regular JavaScript to run in the browser.
We can build a simple Hello World UI…
hello-world.component.html
<label>What's your name?
<input (keyup)="onKey($event)" placeholder="name"/>
</label>
<span>Hello {{name}}</span>
HTML
This is a mix of standard HTML and Angular syntax to handle DOM events and display data.
(keyup)="onKey($event)"
directs Angular to invoke an onKey
function every time the user types something into the text input.
{{name}}
uses Angular’s interpolation syntax {{ }}
to render the current value of a name
field, which is declared in the corresponding hello-world.component.ts file.
hello-world.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-hello-world',
templateUrl: './hello-world.component.html',
styleUrls: ['./hello-world.component.css']
})
export class HelloWorldComponent implements OnInit {
name = '';
ngOnInit(): void {
}
onKey(event: any) {
this.name = event.target.value;
}
}
TypeScript
You can see there’s a bit of boilerplate code here.
We have the @Component
declaration which tells Angular how we’ll reference this component from other components (the selector), where its UI markup (HTML) and styles (CSS) live.
Then follows a TypeScript class called HelloWorldComponent
which houses our main component logic.
This class implements OnInit
from the Angular core library which, in turn, requires us to implement an ngOnInit
method in our class.
Finally, we have the name
field we’re using to store the entered name, and the onKey
function that will be invoked as our users type something into the text input.
To view this component, we need to render it somewhere in our application, which we can do using the selector
we defined earlier.
<h1>A brief introduction to Angular</h1>
<app-hello-world></app-hello-world>
HTML
With all that in place (and sticking to Angular’s “out of the box” default styles) we get a functional, if slightly bland looking, personalized greeting!
In summary, an Angular UI:
Blazor adopts a very similar approach to Angular in that you build your UI using components, but you get to use Razor and C## (instead of Angular directives and JavaScript) to write your markup and UI logic.
Greeting.razor
<label>What's your name?</label>
<input type="text" @bind-value="Name" @bind-value:event="oninput" placeholder="Bob"/>
<span>Hello @Name</span>
@code {
public string Name { get; set; }
}
HTML
This operates exactly the same way as the Angular example when you run it in the browser.
We’ve got roughly similar markup, but this time we have used Blazor’s @bind
syntax to bind our input to a property called Name
.
When the user enters their name, the Name
property will be updated with the value they enter.
By default Blazor would update the value of Name
on blur (when we clicked out of the text input) so we’ve added @bind-value:event="oninput"
to make it update the property as soon as we start typing.
As with Angular, you’re now free to render this component wherever (and as often as) you like.
<h1>
A brief introduction to Blazor...
</h1>
<Greeting />
HTML
In summary, a Blazor UI:
#blazor #angular
1621426329
AppClues Infotech is one of the leading Enterprise Angular Web Apps Development Company in USA. Our dedicated & highly experienced Angular app developers build top-grade Angular apps for your business with immersive technology & superior functionalities.
For more info:
Website: https://www.appcluesinfotech.com/
Email: info@appcluesinfotech.com
Call: +1-978-309-9910
#top enterprise angular web apps development company in usa #enterprise angular web apps development #hire enterprise angular web apps developers #best enterprise angular web app services #custom enterprise angular web apps solution #professional enterprise angular web apps developers
1624334049
Save up to 60% of development cost and also get state-of-art infrastructure, experienced AngularJS web development team and latest technologies development.
Agile & DevOps Approach for on-time delivery
Strict NDA terms to ensure complete privacy
Flexible engagement models as per your needs
100% money-back guarantee, if not satisfied
Angularjs development company in India
#angular js development company #angular js web development #angular js development company in india #angular development company in india #angular development india #angular development company india
1620731241
Looking to hire top dedicated Angular developers from India at affordable prices? Our First Time Right Angular JS developers build scalable, secure, robust and dynamic web applications while saving up to 60% of your development cost.
You can hire Angular development company on a monthly, hourly, or full-time basis who stay updated with the latest versions and ensure to deliver top-rated bespoke web applications.
Planning to outsource web services using Angular? Or would you like to hire a team of Angular developers? Get in touch for a free consultation!
Visit Website-https://www.valuecoders.com/hire-developers/hire-angularjs-developers
#angular developer #angular js developer #angular js developers #hire angular developer #hire angularjs developers #hiring angular developer
1619170894
Looking for the best custom AngularJS app development company? AppClues Infotech is a top-rated AngularJS app development company in USA producing robust, highly interactive and data-driven AngularJS web and mobile applications with advanced features & technologies.
For more info:
Website: https://www.appcluesinfotech.com/
Email: info@appcluesinfotech.com
Call: +1-978-309-9910
#custom angular js web app development company in usa #best angular js app development company in usa #hire angular js app developers in usa #top angular js app development company #professional angular js app developers #leading angular js app development agency
1627274472
Web app represents the particular firm or organization for which it is developed. With the help of a web app, the firm owner can promote and increase their business by reaching more and more customers for their website or web app.
Every firm or organization must have its own web app to represent their company, what they do, what they provide users feedback, and a lot more. If you have your web app then users can know your company deeply and they can also show interest in your company.
To develop a unique web app contact Nevina Infotech that is the best web application development services provider company, that can help you to develop the web app for your firm as per your requirement.
#web application development company #web application development services #web app development company #custom web application development company #web app development services #web application development agency