Câu hỏi phỏng vấn ASP.NET Web API
Câu hỏi

Giải thích sự khác biệt giữa WCF, **W...

Câu trả lời

Các công nghệ WCF, Web API, WCF REST và Web Service đều là những giải pháp phát triển dịch vụ web trên nền tảng .NET, nhưng chúng có những đặc điểm và ứng dụng khác nhau.

Web Service

  • Là công nghệ cũ nhất trong số này, dựa trên giao thức SOAP (Simple Object Access Protocol) và trả về dữ liệu dạng XML.
  • Chỉ hỗ trợ giao thức HTTP.
  • Không phải là Open Source nhưng có thể sử dụng được với bất kỳ client nào hỗ trợ XML.
  • Chỉ có thể được host trên IIS.
  • Ưu điểm: Code và Test đơn giản.
  • Nhược điểm: Chỉ hỗ trợ giao thức SOAP để truyền nhận dữ liệu nên hiệu suất không cao và không thể tạo ra service dạng REST hỗ trợ định dạng dữ liệu JSON[1][2][6].

WCF (.NET 3.0 trở lên)

  • Phát triển dựa trên Web service và hỗ trợ thêm rất nhiều giao thức khác nhau như TCP, HTTP, HTTPS, Named Pipes, MSMQ.
  • Dựa trên SOAP và trả về dữ liệu dạng XML.
  • Cấu hình khó nhớ là một nhược điểm cố hữu của WCF.
  • Không phải Open Source nhưng có thể sử dụng bởi các client hỗ trợ XML[1][2][7].

WCF REST

  • Là việc sử dụng WCF để tạo ra các dịch vụ RESTful, bằng cách kích hoạt webHttpBindings.
  • Hỗ trợ các phương thức HTTP GET và POST thông qua các thuộc tính [WebGet] và [WebInvoke].
  • Để kích hoạt các phương thức HTTP khác, cần phải cấu hình trong IIS để chấp nhận các yêu cầu của phương thức đó trên các tệp .svc.
  • Hỗ trợ định dạng dữ liệu XML, JSON và ATOM[7].

Web API (.NET 4 trở lên)

  • Là một framework mới giúp xây dựng các HTTP service một cách đơn giản và nhanh chóng.
  • Open Source và có thể được sử dụng bởi bất kỳ client nào hỗ trợ XML, JSON.
  • Hỗ trợ đầy đủ các thành phần HTTP như URI, request/response headers, caching, versioning, content formats.
  • Có thể host trong ứng dụng hoặc trên IIS.
  • Kiến trúc ...
expert

expert

Gợi ý câu hỏi phỏng vấn

junior

Mã trạng thái nào được sử dụng mặc định cho tất cả các ngoại lệ không được bắt?

middle

Trong lập trình hướng đối tượng (OOP), sự khác biệt giữa mẫu Repository PatternService Layer là gì?

senior

Chúng ta có thể sử dụng Web API với ASP.NET Web Form không?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào