Blazor là một framework để xây dựng giao diện người dùng web phía client-side với .NET:
- Tạo giao diện người dùng tương tác phong phú bằng C # thay vì JavaScript.
- Chia sẻ logic ứng dụng phía máy chủ và phía máy khách được viết bằng .NET.
- Kết xuất giao diện người dùng dưới dạng HTML và CSS để hỗ trợ nhiều trình duyệt, bao gồm cả trình duyệt trên thiết bị di động.
- Tích hợp với các nền tảng lưu trữ hiện đại, chẳng hạn như Docker.
- Xây dựng ứng dụng di động và máy tính để bàn kết hợp với .NET và Blazor.
1.Blazor server
Blazor Server cung cấp hỗ trợ lưu trữ các Razor components trên máy chủ trong ứng dụng ASP.NET Core. Cập nhật giao diện người dùng được xử lý qua kết nối SignalR.
runtimes ở trên máy chủ và xử lý:
- Thực thi mã C # của ứng dụng.
- Gửi các sự kiện giao diện người dùng từ trình duyệt đến máy chủ.
- Cập nhật các thay đổi giao diện người dùng cho 1 component được gửi lại từ server.
Kết nối được Blazor Server sử dụng để giao tiếp với trình duyệt cũng được sử dụng để xử lý các lệnh gọi tương tác JavaScript.

2. Blazor WebAssembly
Blazor WebAssembly là một single-page app (SPA) framework để xây dựng các ứng dụng web phía máy khách tương tác với .NET. Blazor WebAssembly sử dụng các tiêu chuẩn web mở mà không có plugin hoặc biên dịch lại mã sang các ngôn ngữ khác. Blazor WebAssembly hoạt động trên tất cả các trình duyệt web hiện đại, bao gồm cả trình duyệt dành cho thiết bị di động.
Việc chạy mã .NET bên trong các trình duyệt web có thể thực hiện được nhờ WebAssembly (viết tắt là wasm). WebAssembly là một định dạng bytecode nhỏ gọn được tối ưu hóa để tải xuống nhanh chóng và tốc độ thực thi tối đa. WebAssembly là một tiêu chuẩn web mở và được hỗ trợ trong các trình duyệt web không có plugin.

WebAssembly
Trong quá khứ, JavaScript là độc quyền trong việc phát triển web phía client-side. Với những lập trình viên, chúng ta có những lựa chọn các frameworks (ví dụ như Angualar, React,..) nhưng cuối cùng chúng luôn được build thành JavaScript. WebAssembly thay đổi điều đó.
Nó là low-level giống như ngôn ngữ assembly với thư viện nhỏ ngọn cái mà cung cấp một cách chạy code được viết trong nhiều ngôn ngữ khác nhau trên web gần với tốc độ native.
bạn có thể xem thêm về WebAssembly webassembly.org
WebAssembly và C#
JavaScript là một ngôn ngữ mạnh mẽ nhưng nó có những nhược điểm, ví dụ bản thân nó khó khăn để lập trình hướng đối dẫn đến việc tốn kém trong bảo trì, fix bug. Điều này có thể được khắc phục bởi TypeScript. Tuy nhiên, sử dụng C# cho client side trong phát triển web đang thuyết phục được nhiều người bởi vì những lý do bên dưới:
- C# là một ngôn ngữ rất mạnh và nhiều tính năng cái mà đã chứng minh được thành công cho nhiều projects và teams lớn nhỏ khác nhau.
- Code C# là dễ bảo trì và sử dụng lại.
- ASP.NET Core is a powerful programming framework for server-side web development. Enabling C# on the client would allow teams to use a common technology stack on server and client.
- ASP.NET Core là một framework mạnh mẽ cho phát triển web phía server. Việc cho phép C# trên client sẽ cho phép teams sử dụng công nghệ phổ biến trên server và client.

Blazor WebAssembly
Khi ứng dụng Blazor WebAssembly được xây dựng và chạy trong trình duyệt:
- Các file mã C # và file Razor được biên dịch thành .NET assemblies.
- Các assemblies và .NET runtimes được tải xuống trình duyệt.
- Blazor WebAssembly khởi động .NET runtimes và cấu hình runtimes để tải các assemblies cho ứng dụng. Blazor WebAssembly runtimes sử dụng JavaScript tương tác để xử lý thao tác DOM và các lệnh gọi API trình duyệt.

3.Blazor Hybrid
Blazor Hybrid đang ở dạng preview và không được khuyến nghị cho xây dựng production app
Hybrid apps sử dụng kết hợp công nghệ web và Native. Một ứng dụng Blazor Hybrid sử dụng Blazor trong một native client app. Razor components chạy native trong quy trình .NET và hiển thị giao diện người dùng web thành điều khiển chế độ web view được nhúng bằng cách sử dụng kênh tương tác cục bộ. WebAssembly không được sử dụng trong các Hybrid apps. Hybrid apps bao gồm các công nghệ sau:
- .NET Multi-platform App UI (.NET MAUI): A cross-platform framework for creating native mobile and desktop apps with C# and XAML.
- Windows Presentation Foundation (WPF): A UI framework that is resolution-independent and uses a vector-based rendering engine, built to take advantage of modern graphics hardware.
- Windows Forms: A UI framework that creates rich desktop client apps for Windows. The Windows Forms development platform supports a broad set of app development features, including controls, graphics, data binding, and user input.
4.JavaScript interop
Đối với các ứng dụng yêu cầu thư viện JavaScript của bên thứ ba và quyền truy cập vào API trình duyệt, các thành phần tương tác với JavaScript. Các thành phần có khả năng sử dụng bất kỳ thư viện hoặc API nào mà JavaScript có thể sử dụng. Mã C # có thể gọi thành mã JavaScript và mã JavaScript có thể gọi vào mã C #.
Bài tiếp theo:
ASP.NET Core Blazor cấu trúc project
source
https://viblo.asia/p/blazor-la-gi-yMnKMJkjZ7P
https://docs.microsoft.com/en-us/aspnet/core/blazor/?view=aspnetcore-6.0#blazor-server
Pingback: ASP.NET Core Blazor cấu trúc project | Phạm Duy Anh
Pingback: Sử dụng Blazor router component để kiểm soát điều hướng trong ứng dụng của bạn | Phạm Duy Anh