ASP.NET Core: gRPC dành cho nhà phát triển Windows Communication Foundation (WCF)


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Trong bài viết này

  1. So sánh với WCF
  2. Lợi ích của gRPC
  3. gRPC làm đường dẫn di chuyển cho WCF sang .NET Core và .NET 5
  4. Bắt đầu

Bài viết này cung cấp bản tóm tắt lý do tại sao ASP.NET Core gRPC lại phù hợp với các nhà phát triển Windows Communication Foundation (WCF) muốn chuyển sang các kiến ​​trúc và nền tảng hiện đại.

So sánh với WCF

Mặc dù cách triển khai và cách tiếp cận của gRPC là khác nhau, nhưng trải nghiệm phát triển và sử dụng dịch vụ với gRPC sẽ rất trực quan đối với các nhà phát triển WCF. WCF và gRPC là các framework RPC (gọi thủ tục từ xa) có cùng mục tiêu:

  • Giúp bạn có thể viết mã như thể máy khách và máy chủ ở trên cùng một nền tảng.
  • Cung cấp API mạng di động được đơn giản hóa.

Cả hai nền tảng đều có chung yêu cầu khai báo và triển khai một giao diện, mặc dù quy trình khai báo giao diện là khác nhau. Nhiều loại lệnh gọi RPC mà gRPC hỗ trợ sẽ ánh xạ tốt tới các ràng buộc có sẵn cho dịch vụ WCF. Để biết thêm thông tin và ví dụ, hãy xem Chuyển giải pháp WCF sang gRPC.

Lợi ích của gRPC

gRPC cung cấp một framework tốt hơn các phương pháp tiếp cận khác vì những lý do sau.

Hiệu suất

gRPC sử dụng HTTP/2. Ngược lại với HTTP/1.1, HTTP/2:

  • Là một giao thức nhị phân nhỏ hơn, nhanh hơn.
  • Hiệu quả hơn cho máy tính phân tích cú pháp.
  • Hỗ trợ các yêu cầu ghép kênh qua một kết nối duy nhất. Ghép kênh cho phép nhiều yêu cầu được gửi qua một kết nối mà không có yêu cầu nào chặn lẫn nhau. Trong HTTP/1.1, việc chặn được gọi là "chặn đầu dòng (HOL)".

gRPC sử dụng Protobuf, một định dạng nhị phân hiệu quả, để tuần tự hóa các tin nhắn. Tin nhắn Protobuf là:

  • Nhanh chóng tuần tự hóa và giải tuần tự hóa.
  • Sử dụng ít băng thông hơn các định dạng dựa trên văn bản.

gRPC là giải pháp tốt cho các thiết bị di động và mạng có hạn chế về băng thông.

Khả năng tương tác

Có các công cụ và thư viện gRPC cho tất cả các nền tảng và ngôn ngữ lập trình chính, bao gồm .NET, Java, Python, Go, C++, Node.js, Swift, Dart, Ruby và PHP. Nhờ định dạng dây nhị phân Protobuf và khả năng tạo mã hiệu quả cho từng nền tảng, các nhà phát triển có thể xây dựng các ứng dụng hiệu quả, đa nền tảng.

Khả năng sử dụng và năng suất

gRPC là một giải pháp RPC toàn diện. Nó hoạt động nhất quán trên nhiều ngôn ngữ và nền tảng. Nó cũng cung cấp công cụ tuyệt vời, với phần lớn mã soạn sẵn được tạo tự động. Giống như WCF, gRPC tự động tạo tin nhắn và máy khách được định kiểu mạnh. Thời gian của nhà phát triển được giải phóng để tập trung vào logic nghiệp vụ.

Truyền phát

gRPC có tính năng truyền phát hai chiều hoàn toàn, cung cấp chức năng tương tự như các dịch vụ song công hoàn chỉnh của WCF. Truyền phát gRPC có thể hoạt động trên các kết nối internet thông thường, bộ cân bằng tải và lưới dịch vụ.

Thời hạn, thời gian chờ và hủy bỏ

gRPC cho phép máy khách chỉ định thời gian tối đa để RPC hoàn thành. Nếu vượt quá thời hạn quy định, máy chủ có thể hủy hoạt động độc lập với máy khách. Thời hạn và việc hủy có thể được truyền đi thông qua các lệnh gọi gRPC tiếp theo để giúp thực thi các giới hạn sử dụng tài nguyên. Máy khách có thể dừng hoạt động khi quá thời hạn hoặc sớm hơn nếu cần thiết. Ví dụ: máy khách có thể ngừng hoạt động do tương tác của người dùng.

Bảo vệ

gRPC có thể sử dụng TLS và HTTP/2 để cung cấp kết nối được mã hóa hai đầu giữa máy khách và máy chủ. Hỗ trợ xác thực chứng chỉ ứng dụng khách giúp tăng thêm tính bảo mật và tin cậy giữa máy khách và máy chủ.

gRPC làm đường dẫn di chuyển cho WCF sang .NET Core và .NET 5

.NET Core và .NET 5 đánh dấu sự thay đổi trong cách Microsoft cung cấp các giải pháp liên lạc từ xa cho các nhà phát triển muốn cung cấp dịch vụ trên nhiều nền tảng. .NET Core và .NET 5 hỗ trợ gọi các dịch vụ WCF nhưng sẽ không cung cấp hỗ trợ phía máy chủ để lưu trữ WCF.

Có hai đường dẫn được đề xuất để hiện đại hóa ứng dụng WCF:

  • gRPC được xây dựng trên các công nghệ hiện đại và đã nổi lên như một lựa chọn phổ biến nhất trong cộng đồng nhà phát triển cho các ứng dụng RPC. Bắt đầu với .NET Core 3.0, các nền tảng .NET hiện đại có hỗ trợ tuyệt vời cho gRPC. Việc di chuyển các dịch vụ WCF sang sử dụng gRPC giúp cung cấp các tính năng, hiệu suất và khả năng tương tác cần thiết của RPC trong các ứng dụng hiện đại.

  • CoreWCF là một nỗ lực của cộng đồng nhằm mang lại sự hỗ trợ lưu trữ các dịch vụ WCF cho .NET Core và .NET 5. Đã có bản phát hành xem trước và dự án đang nỗ lực hướng tới việc sẵn sàng cho bản production. CoreWCF chỉ hỗ trợ một tập hợp con các tính năng của WCF và các ứng dụng .NET Framework di chuyển để sử dụng nó sẽ cần thay đổi mã và thử nghiệm để thành công. CoreWCF là một lựa chọn tốt nếu ứng dụng phải duy trì khả năng tương thích với các máy khách hiện có gọi dịch vụ WCF.

Bắt đầu

Để biết hướng dẫn chi tiết về cách xây dựng dịch vụ gRPC trong ASP.NET Core dành cho nhà phát triển WCF, hãy xem ASP.NET Core gRPC dành cho nhà phát triển WCF.

Nguồn: learn.microsoft.com
» Tiếp: So sánh các dịch vụ gRPC với API HTTP
« Trước: Di chuyển (Migrate) gRPC từ C-core sang gRPC cho .NET
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!