Giới thiệu về Blazor

Blazor là một framework dùng cho xây dựng giao diện người dùng phía client sử dụng C# .NET



Khi dùng Blazor sẽ có một số ưu điểm sau
  • Code logic dùng C# thay vì dùng JavaScript
  • Chia sẻ code logic giữa phần server-side(ASP .NET Core) và client-side (Blazor)
  • Chạy trên trình duyệt dùng WebAssembly (Client-side) hoặc trên server (Server-side) và cập nhật giao diện thông qua kết nối SignalR.
Blazor được xây dựng dựa trên các component. Mỗi component ở đây được hiểu là một phần nhỏ trong giao diện chẳng hạn dialog, forms, pages .. hay do bạn tự định nghĩa và chia nhỏ các thành phần của giao diện lớn.
Dưới đây là một ví dụ về một component :

Mỗi component được định nghĩa trong một file .razor. Trong đó bao gồm 3 phần chính
Phần 1 : Định nghĩa đường dẫn đến giao diện này (Có thể có hoặc không).
Phần 2 : Định nghĩa giao diện thông qua các thẻ html
Phần 3 : Phần code sử lý logic sử dụng C# và cú pháp Razor để binding các biến với các giao diện thiết kế bên trên

Tùy thuộc vào mục đích ứng dụng của chúng ta mà có thể sử dụng Blazor trong các dạng sau

Client-side Blazor
Blazor sẽ compile code C# thành các .NET assemblies. Các assemblies này được tải lên các browser sau khi chạy. Việc cập nhật giao diện sẽ được thực hiện bởi Blazor runtime



Ưu điểm
  • Không phụ thuộc vào xử lý phía server.
  • Có thể chạy offline
Nhược điểm
  • Chạy chậm hơn do việc xử lý được thực hiện hầu như ở client
  • Khó debug hơn
  • Yêu cầu trình duyệt phải hỗ trợ WebAssembly
Server-side Blazor 
Blazor cung cấp hỗ trợ việc hosting các component ở phía server. Việc cập nhật các giao diện client được xử lý thông qua kết nối SignalR.



Ưu điểm
  • Kích thước code client nhỏ, thời gian load sẽ nhanh hơn
  • Dễ debug hơn vì code được lưu trên server
  • Có thể hoạt động với các trình duyệt chưa hỗ trợ WebAssembly
Nhược điểm
  • Không chạy được offline
  • Thời gian trễ lớn do sử dụng kết nối SignalR để cập nhật giao diện
  • Khó scale

Tiếp tục cập nhật ...