Sự khác nhau giữa Web Service, WCF, WCF REST, Web API

Sự khác nhau giữa Web Service, WCF, WCF REST, Web API

4.9

(98.29%) 269 vote[s]( 98.29 % ) vote [ s ]

Giới thiệu

Hiện nay trong kỷ nguyên hậu PC, smartphone và tablet lên ngôi, nhu yếu thiết kế xây dựng những ứng dụng mobile trên Windows Phone, iOS, Android đồng điệu tài liệu đến server theo quy mô điện toán đám mây đang trở nên rất hot. Nếu quyết định hành động kiến thiết xây dựng phía server sử dụng. NET Framework ( với phiên bản mới nhất 4.5.3 ) thì lập trình viên hoàn toàn có thể tạo ra những HTTP service bằng rất nhiều công nghệ tiên tiến khác nhau như thể :

  • Web service (ASMX)
  • WCF service
  • WCF REST service
  • Web API service

Điều này rất tốt vì nó được cho phép lập trình viên có nhiều lựa chọn hơn trong việc kiến thiết xây dựng những HTTP service dựa trên nền. NET nhưng với những người mới tiếp cận. NET Framework sẽ rối không biết cần phải sử dụng công nghệ tiên tiến nào để khởi đầu. Trong bài viết này tất cả chúng ta sẽ cùng điểm qua những công nghệ tiên tiến này để thấy được sự khác nhau giữa chúng từ đó có một cái nhìn tổng lực nhất về những công nghệ tiên tiến service trên. NET đồng thời quyết định hành động được công nghệ tiên tiến nào là tương thích nhất với nhu yếu của mình .

Web Service

.NET Web Service

  1. Đây là công nghệ cũ nhất của .NET Framework
  2. Nó dựa trên
    SOAP (Simple Object Access protocol)
    dữ liệu trả về dạng XML
  3. Chỉ hỗ trợ giao thức HTTP
  4. Không phải Open Source nhưng hoàn toàn có thể sử dụng được với bất kể client nào tương hỗ XML
  5. Chỉ có thể host trên IIS

Ưu điểm :

  • Code và Test đơn thuần

Nhược điểm :

  • Chỉ hỗ trợ giao thức SOAP để truyền nhận dữ liệu nên performance không cao
  • Không thể tạo ra service dạng REST hỗ trợ định dạng dữ liệu JSON

WCF (.NET 3.0 trở lên)

WCF

  1. Cũng dựa trên SOAP và trả về dữ liệu dạng XML
  2. 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.
  3. Giống Web service không phải Open Source nhưng có thể sử dụng bởi các client hỗ trợ XML
  4. Có thể host được trong ứng dụng, trên IIS hoặc Windows Service

Ưu điểm :

  • Hỗ trợ nhiều giao thức với nhiều kiểu binding khác nhau đặc biệt là HTTPS
  • Hỗ trợ nhiều định dạng dữ liệu XML, ATOM…

Nhược điểm :

  • Cấu hình rất phức tạp và rối rắm, chắc chắn các lập trình viên mới dùng không thể cấu hình được nếu không sử dụng Configuration Tool & Google
  • Kiến trúc rất phức tạp và cồng kềnh

WCF REST (.NET 3.5 trở lên)

WCF REST Service

  1. Là bản nâng cấp đáng giá của WCF với việc trên .NET 3.5 Microsoft bổ sung webHttpBinding để hỗ trợ RESTful service
  2. Hỗ trợ 2 HTTP verb GET, POST để truyền nhận dữ liệu với 2 thuộc tính tương ứng là WebGetWebInvoke
  3. Muốn sử dụng các HTTP verb khác như PUT, DELETE cần cấu hình thêm trên IIS
  4. Hỗ trợ các định dạng dữ liệu XML, ATOM, JSON

Ưu điểm :

  • Bổ sung hỗ trợ RESTful service với định dạng dữ liệu JSON nhẹ hơn SOAP với dữ liệu XML rất nhiều
  • Cho phép cấu hình tham số WebGet qua URI sử dụng UriTemplate

Nhược điểm:

  • Chưa hoàn toàn phải là RESTful service, mới chỉ hỗ trợ mặc định GET, POST
  • Cấu hình khó nhớ (cố hữu của WCF)

Nếu bạn muốn biết phương pháp kiến thiết xây dựng một service dạng này từng bước như thế nào, hãy xem qua bài viết sau :

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

WEB API

  1. Đây là một framework mới giúp cho việc xây dựng các HTTP service rất đơn giản và nhanh chóng
  2. Open Source và có thể được sử dụng bởi bất kì client nào hỗ trợ XML, JSON
  3. Hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers, caching, versioning, content formats
  4. Có thể host trong ứng dụng hoặc trên IIS
  5. Kiến trúc lý tưởng cho các thiết bị có băng thông giới hạn như smartphone, tablet
  6. Định dạng dữ liệu có thể là JSON, XML hoặc một kiểu dữ liệu bất kỳ

Ưu điểm :

  • Cấu hình hết sức đơn giản khi so với WCF
  • Performance cao
  • Hỗ trợ RESTful đầy đủ
  • Hỗ trợ đầy đủ các thành phần MVC như: routing, controller, action result, filter, model binder, IoC container, dependency injection, unit test
  • Open Source

Nhược điểm :

  • Còn rất mới nên chưa có nhiều đánh giá về nhược điểm của Web API

Nếu bạn muốn biết phương pháp kiến thiết xây dựng một service dạng này từng bước như thế nào, hãy xem qua bài viết sau :

Vậy tôi nên lựa chọn framework nào để phát triển HTTP Service?

Câu vấn đáp sẽ tùy thuộc vào nhu yếu việc làm đơn cử của bạn như thế nào ?

Web Service:

  1. Lựa chọn khi bạn chỉ cần xây dựng một service đơn giản

WCF là lựa chọn số một khi xây dựng:

  1. Service cần hỗ trợ những ngữ cảnh đặc biệt như: message queue, duplex communication…
  2. Service sử dụng những kênh truyền dữ liệu ở tầng thấp cho nhanh như: TCP, Named Pipes, UDP…

WCF Rest, Web API được sử dụng khi xây dựng:

  1. Service RESTful hỗ trợ đầy đủ các thành phần HTTP: URI, request/response headers, caching, versioning, content formats
  2. Service cung cấp dữ liệu cho nhiều client khác nhau với băng thông giới hạn như: browser, mobile, tablet…

Kết luận

Qua bài viết này tất cả chúng ta đã có một cái nhìn tổng quan hơn về 4 công nghệ tiên tiến tương hỗ tạo HTTP service trên nền tảng. NET : Web Service, WCF, WCF REST, Web API. Với sự tăng trưởng vũ bão của những thiết bị smartphone, tablet như lúc bấy giờ những công nghệ tiên tiến WCF REST và mới gần đây nhất là WEB API đang nổi lên là những công nghệ tiên tiến lý tưởng nhất cho việc thiết kế xây dựng những ứng dụng điện toán đám mây. Việc chớp lấy được những công nghệ tiên tiến này là nhu yếu cấp thiết của những lập trình viên thế cho nên trong những bài viết sau tất cả chúng ta sẽ cùng khám phá chi tiết cụ thể về cách tạo và sử dụng những service này .Happy sharing. Stay tuned .

Like this:

Like

Loading …

Rate this post

Bài viết liên quan

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments