What is Blazor?
Blazor is a Single Page Application development framework. The name Blazor is a combination/mutation of the words Browser and Razor (the .NET HTML view generating engine). The implication being that instead of having to execute Razor views on the server in order to present HTML to the browser, Blazor is capable of executing these views on the client.
Features of Blazor:
A component model for building composable UI
Forms and validation
Publishing and app size trimming
Rich IntelliSense and tooling
Live reloading in the browser during development
Advantages of Blazor:
Leverage existing C# skills for full stack development
Better productivity due to code sharing between client and server applications
Interoperability with Java Script
Consistent programming framework across platforms and browsers
Higher latency usually exists. Every user interaction involves a network hop.
There's no offline support. If the client connection fails, the app stops working.
Scaling apps with many users requires server resources to handle multiple client connections and client state.
An ASP.NET Core server is required to serve the app. Serverless deployment scenarios aren't possible, such as serving the app from a Content Delivery Network (CDN).
What is Flutter?
Flutter – a simple and high performance framework based on Dart language, provides high performance by rendering the UI directly in the operating system’s canvas rather than through native framework.
Flutter also offers many ready to use widgets (UI) to create a modern application. These widgets are optimized for mobile environment and designing the application using widgets is as simple as designing HTML.
Features of Flutter
Flutter framework offers the following features to developers −
Modern and reactive framework.
Uses Dart programming language and it is very easy to learn.
Beautiful and fluid user interfaces.
Huge widget catalog.
Runs same UI for multiple platforms.
High performance application.
Advantages of Flutter
Flutter comes with beautiful and customizable widgets for high performance and outstanding mobile application. It fulfills all the custom needs and requirements. Besides these, Flutter offers many more advantages as mentioned below −
Dart has a large repository of software packages which lets you to extend the capabilities of your application.
Developers need to write just a single code base for both applications (both Android and iOS platforms). Flutter may to be extended to other platform as well in the future.
Flutter needs lesser testing. Because of its single code base, it is sufficient if we write automated tests once for both the platforms.
Flutter’s simplicity makes it a good candidate for fast development. Its customization capability and extendibility makes it even more powerful.
With Flutter, developers has full control over the widgets and its layout.
Flutter offers great developer tools, with amazing hot reload.
Disadvantages of Flutter
Despite its many advantages, flutter has the following drawbacks in it −
Since it is coded in Dart language, a developer needs to learn new language (though it is easy to learn).
Modern framework tries to separate logic and UI as much as possible but, in Flutter, user interface and logic is intermixed. We can overcome this using smart coding and using high level module to separate user interface and logic.
Flutter is yet another framework to create mobile application. Developers are having a hard time in choosing the right development tools in hugely populated segment.
Difference Between Flutter and Blazor
Flutter utilizes Dart, while Blazor sticks with C#. In terms of utilizing a single language to build an entire application, front end and back end, I think Blazor wins. At one point, there were some api frameworks and ORMs using dart, such as Aqueduct, but I believe development was stopped. If there’s one out there, though, let me know!
We all know that most of our time will be spent going through documentation, especially if we’re just starting out. Both Blazor and Flutter have well-written documentation and examples.
Blazor’s documentation is all on the official Microsoft docs site, but it’s mixed in with the rest of the .Net 6 docs. One thing I don’t like about the Blazor docs, is that I’ve found myself having trouble trying to find something again after having found it once before. That could just be an issue with me though.
Flutter’s documentation is all accessible from the main Flutter site. I think that Flutter’s docs (and site in general) is much nicer than what Blazor has, and I like that Flutter has both an easy to find cook book section showing examples of common tasks, as well as a showcase with apps that have been made with Flutter.
When it comes to Blazor, however, the only real choice is Visual Studio. Rider may work, but I’ve never tried it. Also, if you’re wanting to utilize MAUI, the only option right now is Visual Studio 2022 Preview.
If you have a preference on IDEs, or have to use a specific OS, that could also play a role in whether you choose Flutter or Blazor. For Flutter, I’ve used Windows, Mac, and Linux, and the experience has been great for all of them.
In terms of target platforms, Flutter definitely wins. With Flutter, you can build and deploy to Android, iOS, web, Mac, Windows, and Linux. You can target the same platforms with Blazor, minus Linux. One other caviot is that in order to target web in addition to Android / iOS / Mac / Windows, you have to have at least two projects:
A Blazor Hybrid (MAUI) project to target Android / iOS / Mac / Windows
A Blazor app to target web
In order to get up and running quickly, you’ll need to add an external component library such as MudBlazor, Blazorise, or FluentUI. Unfortunately, I was a bit dissapointed to find out that the FluentUI library for Blazor is not the equivilent of the FluentUI library for React, although both are managed by microsoft.
In terms of authentication, you can use a variety of options for both Flutter and Blazor. That being said, Flutter works quite well with Firebase, and Blazor integrates well with the Microsoft Identity Platform
In Flutter, if you are going to build an API or additional services, you will need a second language.
In Blazor, if you are going to build an API or additional services, you can continue using C# to build everything.
Flutter utilizes Dart
Blazor sticks to C#
Flutter's documentation is all accessible from the main Flutter site. Flutter docs are much nicer than Blazor's docs.
Blazor's documentation is all on official Microsoft Docs Site, but mixed with rest of the .NET 6 docs.
In terms of IDEs, we can use Windows, mac and Linux.
In terms of IDEs, the only choice is Visual Studio.
With flutter, you can build and deploy to Android, iOS, Web , Mac, Windows and Linux.
With Blazor, you can build and deploy to Android, iOS, Web, Mac and Windows .
Flutter utilizes material design and comes with widgets.
Flutter word well with Firebase
Blazor integrates well with Microsoft Identity Platform.
Resource: Medium (Kevin Williams)
The Tech Platform